Как ограничить ширину поля в процентах от экрана

У меня есть набор полей, который я хочу занять 25% окна браузера.

html, body {
  padding: 0px;
  margin: 0px;
  box-sizing: border-box;
  height: 100%;
}

body:not(:-moz-handler-blocked) fieldset {
  display: table-cell;
}

fieldset {
  box-sizing: border-box;
  margin: 0;
}

fieldset#rx {
  width: 25%;
  max-width: 25%;
  float:left;
  height:100%;
  overflow-y: scroll;
  overflow-x: scroll;
}

Хотя набор полей пуст, он правильно занимает 25% ширины окна.

Как только добавляется какое-то широкое содержимое, набор полей расширяется до размера своего содержимого, а не остается на уровне 25%.

Как я могу заставить набор полей занимать 25% ширины браузера, даже если он имеет контент?


Обновление: @rajuGT написал скрипку, иллюстрирующую проблему: https://jsfiddle.net/of4dmkmk/2


person fadedbee    schedule 24.09.2015    source источник
comment
Не могли бы вы также включить свою разметку?   -  person TylerH    schedule 24.09.2015
comment
вы пробовали изменить размер: нет;   -  person Sari Rahal    schedule 24.09.2015
comment
@SariRahal resize широко не поддерживается   -  person hungerstar    schedule 24.09.2015
comment
Привет, ты попробуй со всеми элементами добавить проценты   -  person step    schedule 24.09.2015
comment
Я не могу отделаться от мысли, что вы злоупотребляете fieldset здесь. Я думаю, нам нужно увидеть настоящую разметку — developer.mozilla. org/en-US/docs/Web/HTML/Element/fieldset   -  person Paulie_D    schedule 24.09.2015
comment
Добавьте, пожалуйста, ваш HTML-код в сообщение.   -  person hungerstar    schedule 24.09.2015
comment
@TylerH скрипка jsfiddle.net/of4dmkmk/2 прекрасно воссоздает проблему (для меня, используя FF) .   -  person fadedbee    schedule 24.09.2015
comment
@hungerstar - есть сотни строк HTML, нет смысла публиковать мой HTML, поскольку скрипка (выше) демонстрирует проблему.   -  person fadedbee    schedule 24.09.2015
comment
@Paulie_D извините, как указано выше.   -  person fadedbee    schedule 24.09.2015
comment
Ну хотя бы уменьшенный корпус. Скрипт JS на самом деле не объясняет, почему вы используете здесь набор полей. Обычно он не используется изолированно в качестве оболочки для текста.   -  person Paulie_D    schedule 24.09.2015
comment
@chrisdew вам не нужно публиковать все это, просто фрагмент / раздел, который вызывает у вас проблемы. Если эта скрипка исчезнет, ​​никто не узнает, что такое разметка, на которую вы ссылаетесь в будущем. Не ленись. Поместите это в свой пост.   -  person hungerstar    schedule 24.09.2015


Ответы (2)


Что ж, набор полей имеет значение минимальной ширины по умолчанию (min-width: min-content;)

Изменить: эх, эта совместимость с браузером :( Вот: http://jsfiddle.net/of4dmkmk/4/

Хром и фф ведут себя по разному. Включить минимальную ширину для набора полей chrome wrap в div для ff

Старый ответ. для вашего #rx также используйте это:

fieldset#rx {
  width: 25%;
  max-width: 25%;
  min-width: 25%; // I have added this
  float:left;
  height:100%;
  overflow-y: scroll;
  overflow-x: scroll;
}
person Remigijus    schedule 24.09.2015
comment
@chrisdew работает с текстовым контентом. и если я удалю свойство css, упомянутое Ремигиусом, размер набора полей увеличится. Но я не знаю, как это работает. ! - person rajuGT; 24.09.2015
comment
@rajuGT ваша скрипка показывает набор полей, который занимает 40-50% ширины окна. Я использую ФФ. Комментирование min-width: 25%; для меня не имеет значения. - person fadedbee; 24.09.2015
comment
Как насчет этого jsfiddle.net/of4dmkmk/4 . min-width работал для хрома, но не для firefox - person Remigijus; 24.09.2015
comment
Хорошо. Но я не ожидал даже такого поведения от браузера после установки свойства min-width. без разницы. - person rajuGT; 24.09.2015
comment
Большое спасибо, jsfiddle.net/of4dmkmk/4 сделал свое дело - минимальная ширина: наследование было решение. - person fadedbee; 24.09.2015

Почему бы вам просто не поместить набор полей в DIV, а затем установить ширину div на 25% и установить скрытое переполнение?

person David P    schedule 24.09.2015
comment
Я уже отказался от этого подхода — в результате получился набор полей, правая часть которого, включая поле, становилась скрытой при добавлении содержимого. - person fadedbee; 24.09.2015