Как задать ширину текста в html
Перейти к содержимому

Как задать ширину текста в html

  • автор:

Ширина блока

Любой блочный элемент состоит из набора свойств, подобно капустным листам накладываемых друг на друга. Основой блока выступает его контент (это может быть текст, изображение и др.), ширина которого задаётся свойством width , а высота через height ; вокруг контента идут поля ( padding ), они создают пустое пространство от контента до внутреннего края границ; затем идут собственно сами границы ( border ) и завершают блок отступы ( margin ), невидимое пустое пространство от внешнего края границ. Ширина блока это комплексная величина и складывается из нескольких значений свойств:

  • width — ширина контента, т.е. содержимого блока;
  • padding-left и padding-right — поле слева и справа от контента;
  • border-left и border-right — толщина границы слева и справа;
  • margin-left и margin-right — отступ слева и справа.

Какие-то свойства могут отсутствовать и в этом случае на ширину не оказывают влияние. Общая ширина показана на рис. 1 в виде чёрной пунктирной линии.

Ширина блока

Рис. 1. Ширина блока

Если значение width не задано, то оно по умолчанию устанавливается как auto . В этом случае ширина блока будет занимать всю доступную ширину при сохранении значений полей, границ и отступов. Под доступной шириной в данном случае подразумевается ширина контента у родительского блока, а если родителя нет, то ширина контента браузера.

Допустим, для слоя написан следующий стиль.

width: 300px; /* Ширина слоя */ margin: 7px; /* Значение отступов */ border: 4px solid black; /* Параметры границы */ padding: 10px; /* Поля вокруг текста */

Ширина слоя согласно этой записи будет равна 342 пиксела, эта величина получается складыванием значения ширины контента плюс отступ слева, граница слева и поле слева, плюс поле справа, граница справа и отступ справа. Суммируем все числа.

Ширина = 300 + 7 + 7 + 4 + 4 + 10 + 10 = 342

Надо отметить, что блочная модель с формированием ширины несет в себе кучу неудобств. Постоянно приходится заниматься вычислениями, когда требуется задать определенную ширину блока. Также начинаются проблемы при сочетании разных единиц измерения, в частности, процентов и пикселов. Предположим, что ширина контента задана как 90%, если сюда приплюсовать поля и границы, заданные в пикселах, то нельзя вычислить суммарную ширину блока, поскольку проценты напрямую в пикселы не переводятся. В итоге может получиться так, что общая ширина блока превысит ширину веб-страницы, что приведет к появлению горизонтальной полосы прокрутки. Выходов из подобной ситуации два — поменять алгоритм блочной модели и воспользоваться вложенными слоями.

Алгоритм блочной модели

Как уже упоминалось, ширина блока формируется из ширины контента и значений полей, границ и отступов. В браузере Internet Explorer в режиме совместимости алгоритм меняется автоматически и ширина всего блока устанавливается равной width . Остальные браузеры так просто не меняют алгоритм, к тому же вы знаете, что режим совместимости это зло. В CSS3 есть замечательное свойство box-sizing , которое нам и пригодится. При значении border-box ширина начинает включать поля и границы, но не отступы. Таким образом, подключая box-sizing со значением border-box к своему стилю, мы можем задавать ширину в процентах и спокойно указывать border и padding , не боясь, что изменится ширина блока. К сожалению, с этим свойством связана небольшая проблема, как обычно относящаяся к браузерам — не все браузеры его понимают. Радует, что браузеры хотя бы поддерживают специфические для каждого браузера свойства. В табл. 1 приведена поддержка браузерами.

Табл. 1. Поддержка браузерами свойства box-sizing

Браузер Internet Explorer Chrome Opera Safari Firefox
Версия 8.0+ 2.0+ 7.0+ 3.0+ 1.0+
Свойство box-sizing -webkit-box-sizing box-sizing -webkit-box-sizing -moz-box-sizing

Как видно из таблицы, в свойствах разброд и шатание, поэтому придется делать гибрид и указывать все три свойства (пример 1).

Пример 1. Ширина блока

HTML5 CSS3 IE Cr Op Sa Fx

    Ширина блока   
Ширина слоя 100%

Данный пример будет работать во всех браузерах, указанных в табл. 1, однако невалиден в CSS3 из-за применения нестандартных свойств начинающихся на -moz и -webkit. Ширина блока составляет 100% с учетом значений padding . Без свойства box-sizing в браузере появится горизонтальная полоса прокрутки.

Вложенные слои

Использование свойства box-sizing всем хорошо, кроме того, что не работает в старых версиях IE. Если вы верстаете сайт с учетом IE7 и IE6, вам подойдет старый проверенный метод с вложением слоев. Идея простая — для внешнего блочного элемента задаётся только необходимая ширина, а для вложенного блока всё остальное — поля, границы и отступы. Поскольку по умолчанию ширина блока равна доступной ширине родителя, получится, что блоки в каком-то смысле накладываются друг на друга, при этом фактическая ширина такого комбинированного элемента будет чётко задана. В примере 2 показано использование вложенных слоев.

Пример 2. Вложенные слои

HTML5 CSS 2.1 IE Cr Op Sa Fx

    Ширина блока .wrap < width: 50%; /* Ширина */ >.wrap div  
Ширина слоя 100%

Результат данного примера показан на рис. 2.

Ширина блока в процентах

Рис. 2. Ширина блока в процентах

Преимуществом вложенных слоев является использование отступов ( box-sizing их не учитывает), универсальность метода, также то, что фон по желанию можно добавлять к одному или другому слою. Тем самым несколько меняется внешний вид элементов, это особенно актуально при включении фоновых рисунков. Из недостатков метода можно отметить включение дополнительного блока, который усложняет структуру кода, особенно при частом применении метода. Но это можно считать мелочью по сравнению с преимуществами.

Как задать ширину контента для текста в input

Скриншот

Как показано на скриншоте существен ширина формы для текста, как её задать не знаю. Побывал обычные padding’и, задеться ширина для input но не для ширины текста в нём. HTML код контента в блоке в котором находиться input

.page-subscribe input
 

SubscribeSignup For A Trail

Create your free account now & get 30 days free
trail No credit card required

Robot

Что такое длина Input, как изменить размер текстового поля

Lorem ipsum dolor

Важнейшим атрибутом у тега «input» является «type». Именно он определяет какое поле будет перед нами: текстовое, для пароля, чекбокс, радио и др. Поэтому, чтобы определить тег «input», как текстовое поле нужно воспользоваться вот таким синтаксисом:

Обозначив тег «input» таким образом мы получим текстовое поле в форме, но оно будет с «гибким» размером. То есть, оно растянется на всю ширину контейнера, в котором мы обозначили тег «input». Такой подход не всегда уместен. Иногда нам нужно чтобы текстовое поле было определенного размера. Мы можем это сделать, если задействовать CSS-свойство «width» для конкретного поля «input» или прямо внутри самого тега мы можем задействовать свойство «size». В свойстве «size» нужно прописать какое-то число, где число будет определять ширину поля, а обозначать количество видимых символов.

Кстати, когда говорят «длина input» – это немного не корректное высказывание, потому что правильнее будет говорить «ширина input» или «размер input».

Как выставляется ширина(длина, размер) «input» в HTML на примере

Как выставляется ширина(длина, размер) «input» в HTML на примере

Давайте сверстаем небольшую HTML-форму, где у нас будет текстовое поле «input» заданной ширины. Код будет вот таким:

Ширина текстового поля

#userForm

width: 600px; /*Определяем пиксельную ширину текстового поля с помощью CSS-свойств */

>

Введите ваше имя:

Результат этой формы можно увидеть на рисунке ниже:

Важно отметить, что размер текстового поля «input» в CSS-свойствах можно определить разными единицами измерения: в пикселях, процентах и других измерительных единицах. А в свойстве «size» можно указать только количество видимых текстовых символов в виде числа. На примере, что мы привели выше, мы указали оба варианта определения размера поля «input». На практике так делать не надо, потому что в этом случае сработает только CSS-свойство, так как оно по иерархии главнее, чем внутреннее свойство «size».

Заключение

Сегодня мы рассказали, что длина, ширина и размер текстового поля «input» в HTML – это определения одного и того же свойства и правильно его называть «ширина input». На примере мы показали, что установить размер текстового поля всегда можно при помощи CSS-свойства «width», либо использовать внутреннее свойства текстового поля «input» – «size».

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Как правильно указать высоту div?

Как правильно задать высоту родительскому block-1 так, чтобы он был минимум 100px , но мог растягиваться при наличии большего в нем контента? При этом, дочерний block-2 должен всегда иметь максимальную высоту. В настоящем исполнении, либо дочерний не растягивается в высоту на 100px , либо родителю указываем height: 100px; — дочерний растягивается, но теперь родитель у нас лишь на 100px в высоту, и рано или поздно контент вылезает за рамки.

.block-1 < background: blanchedalmond; padding: 50px 0; min-height: 100px; >.block-1 .block-2
 
test

Отслеживать
задан 18 фев 2018 в 13:29
1,552 4 4 золотых знака 18 18 серебряных знаков 32 32 бронзовых знака
Почему у вас родитель то 100рх то 200 рх минимум? Добавьте ему overflow-y:auto
18 фев 2018 в 13:41
@user202854 Опечатка, поправил. overflow-y:auto не сработал.
18 фев 2018 в 13:46

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Вариант 1 — position: absolute

.block-1 < background: blanchedalmond; padding: 50px 0; min-height: 100px; position: relative; >.block-2
 
test

Вариант 2 — display: flex

.block-1 < background: blanchedalmond; padding: 50px 0; min-height: 100px; display: flex; flex-direction: column; >.block-2
 
test

Вариант 3 — display: table

.block-1 < background: blanchedalmond; padding: 50px 0; min-height: 100px; display: table; width: 100%; >.block-2
 
test

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *