Конечно, width: 100%
на блочном элементе заполняет контейнер, но только если граница, отступы и маржа равны нулю. Помещение такого input
в содержащий div
с прокладкой делает трюк, но мне любопытно, почему просто input {display: block; width: auto;}
не работает. Предложения?Как ввести текстовый ввод с заполнением его контейнера
ответ
Согласен с centr0, почему width: auto
не работает.
Если вы действительно хотите, чтобы input
была полной шириной своего контейнера, то работает следующее. Дано:
<div id="Container">
<form>
<input type="text" />
</form>
</div>
ли это с помощью CSS:
form {
padding: 0 0 0 14px;
}
input {
padding: 5px;
width: 100%;
margin: 0 0 0 -14px;
}
Объяснение: Очевидно, что -14px запас на input
противодействует отступы добавленный к form
элементу. Что не так очевидно, откуда пришел 14px
. Он равен левому/правому 5px отступу input
плюс значение по умолчанию для ширины границы элемента (0x) (2px во всех проверенных вами браузерах). Итак, 2 + 5 + 5 + 2 = 14.
Чтобы быть уверенным, что вы являетесь последовательным кросс-браузерным, вам нужно явно установить ширину границы для того, что вам нужно для input
. Если вам нужна другая прокладка (или более толстые/более тонкие границы), то просто переделайте математику. 3px padding будет 10px вместо 14px, заполнение 7px будет 18px вместо 14px.
Для примера вы можете установить ширину #Container
(также может быть body
, который по умолчанию не соответствует 100% ширины страницы), что и вы хотели, а приведенный выше css должен соответствовать его ширине.
Если я правильно помню, размер ввода по умолчанию не охватывает ширину его контейнера. "width: auto;" как «возврат» стиля обратно к его значению по умолчанию.
Если вы не используете Reset CSS Stylesheet, тогда элемент ввода будет иметь определенный стиль по умолчанию, установленный браузером, это, вероятно, включает отступы и поля.
также, width:auto
предоставит браузеру по умолчанию. Попробуйте width:100%
Проблема, которая вызывает вопрос, заключается в том, что 'width: 100%' не допускает границ или дополнений, поскольку они приносят более 100%. –
Я смущен, что на самом деле вопрос? Кажется, отвечает сам. Заполнение, маржа и граница приносят более 100%, потому что это работает как [css box model] (http://www.w3.org/TR/CSS2/box.html). общая ширина = ширина + граница + край + дополнение. 'width: auto' не работает, потому что' width: auto' означает что-то другое. – Jake
Сброс прокладки контейнера устраняет проблему.
td {
padding: 0 1em;
}
- 1. Как сделать таблицу заполнением контейнера?
- 2. проблема с заполнением для контейнера (появляется прокрутка)
- 3. Angular/Breeze - Невозможно ввести десятичную точку в текстовый ввод HTML
- 4. HTML-терминал, как текстовый ввод
- 5. HTML5 - ввод текста с заполнением слишком широк
- 6. BISON - Как ввести полный ввод?
- 7. Проблемы с заполнением контейнера видео с помощью JQuery
- 8. Как ввести строку для сортировки контейнера?
- 9. Невозможно ввести ввод с помощью gdb. Помогите!
- 10. Проблема с заполнением, когда плавающие элементы внутри контейнера
- 11. Как создать текстовый ввод с помощью jQuery?
- 12. Модный текстовый ввод BlackBerry
- 13. Как ввести ввод без нажатия введите
- 14. многострочный текстовый ввод
- 15. Как проверить массив перед его заполнением
- 16. Длинные абзацы с переполнением скрытые пробежки над заполнением контейнера
- 17. Как ввести текстовый файл непосредственно в Java?
- 18. ввод текста заполняет ширину контейнера
- 19. JQuery ControlGroup текстовый ввод
- 20. Добавить текстовый ввод в гиперссылку
- 21. Текстовый ввод игры
- 22. Как ввести ввод данных в logstash
- 23. Flex: текстовый ввод, который принимает только номер
- 24. Aligning текстовый блок с верхней части контейнера
- 25. Как получить текстовый ввод (Tizen Native App)
- 26. Контейнерная директива с заполнением
- 27. Div с шириной 100%, как сделать его заполнением?
- 28. Проблемы с заполнением с помощью WPF ListBox
- 29. jquery update div как текстовый ввод изменен
- 30. Как развернуть текстовый ввод Google + стиль
Я думаю, что 'form> div.container> input' семантически лучше для большинства ситуаций. Тем не менее, это решение кажется лучшим на столе. –