Css width auto with padding

width

Свойство width отвечает за ширину элемента. С его помощью мы можем увеличивать или уменьшать ширину строчно-блочных ( inline — block ) и блочных ( block ) элементов. На строчные элементы это свойство не будет иметь никакого влияния.

Строчно-блочные ( inline — block ) элементы по умолчанию подстраиваются под ширину контента, лежащего у них внутри.

Блочные ( block ) элементы по умолчанию имеют ширину 100%. Если представить сайт как документ с текстом, то блочный элемент займёт всю строку, на которой стоит.

Кроме фиксированной ширины можно задавать элементу минимальную ширину min — width или максимальную ширину max — width .

В современном CSS есть логический аналог этого свойства — inline — size .

Пример

Скопировать ссылку «Пример» Скопировано

 
Я — блочный элемент!
Я
строчно-блочный
элемент!
div class="block">Я — блочный элемент!div> div class="inline-block">Яdiv> div class="inline-block">строчно-блочныйdiv> div class="inline-block">элемент!div>

Не меняем display для .block , поскольку уже является блочным:

 .block  background-color: #2E9AFF;> .inline-block  display: inline-block; background-color: #F498AD;> .block  background-color: #2E9AFF; > .inline-block  display: inline-block; background-color: #F498AD; >      

Пример макета

Теперь любой текст будет занимать не больше, чем 50% от ширины карточки 🎉

Источник

Как изменить ширину элемента. Свойство width

CSS-свойство width определяет ширину элемента на странице. Оно позволяет управлять размером элемента и адаптировать его под разные размеры экрана.

Свойство width записывается так:

Ширина может быть автоматической — если её не указать, то она будет иметь значение auto . В этом случае браузер сам решит, какую ширину установить элементу на основе размеров родительского элемента и содержимого.

Если вы хотите управлять шириной, укажите значение — определённую вами ширину элемента. Тогда она будет постоянной или будет меняться в зависимости от всего вокруг на странице. Можно использовать единицы измерения — например, px , % , em , rem .

Вот так — в пикселях, тогда ширина будет постоянной. В этом случае — 200 пикселей.

А так — в процентах, тогда ширина будет меняться при изменении размеров окна. В этом случае — 50% от ширины родительского элемента.

В любом варианте к ширине нужно относиться внимательно, чтобы всё сошлось с макетом.

Если пока не понимаете, зачем здесь фигурные скобки — прочитайте о селекторах.

Для чего использовать свойство width

Один из вариантов — чтобы ограничить ширину текстового блока и улучшить читаемость на больших экранах. Например, когда вы делаете блог и хотите, чтобы текст не растягивался на всю ширину экрана. Как на этой странице.

Вот так мы стилизуем элемент с шириной 50%, который находится по центру экрана.

Обратите внимание на ширину и на пустые поля справа и слева

Относительные единицы измерения помогают создавать адаптивные страницы. Попробуйте сами — контейнер будет тянуться вместе с окном браузера.

Другой вариант использования — создать сетку на основе флексбоксов с фиксированными размерами колонок.

Это очень простой пример сеток, но если интересно, прочитайте наше пошаговое рукововодство по созданию адаптивных сеток.

С шириной всё вообще непросто — иногда с непривычки могут произойти странные ситуации, из-за которых придётся долго гуглить. Давайте о них поговорим.

Элемент на странице шире, чем вы задумали

Виновато свойство box-sizing , которое по умолчанию имеет значение content-box .

Почему так. Когда вы задаете ширину элемента с помощью свойства width , она применяется только к содержимому элемента и не учитывает его отступы, поля ( padding и margin ) и границы ( border ). Это может привести к тому, что общая ширина элемента будет больше, чем ожидалось.

Например, у нас есть такой элемент с классом box :

И мы применяем следующие стили — ширина 100 пикселей, отступы по 10 пикселей со всех сторон и вдобавок пятипиксельную границу.

Тогда вспоминаем математику и считаем — общая ширина элемента с заданной шириной 100px будет на самом деле равна 130px .

100px + 2 × 10px (отступы) + 2 × 5px (границы) = 130px 

Как починить. Нужно включить отступы и границы в заданную ширину элемента. Для этого используйте свойство box-sizing со значением border-box :

Теперь общая ширина элемента будет равна 100px , так как отступы и границы будут включены в указанную ширину. Такое поведение следует учитывать при вёрстке и подготовке макетов, чтобы в результате не оказалось непредвиденных сюрпризов.

Ширина элемента больше ширины родителя

Если ширина нашего элемента случайно оказалась больше, чем у родительского, то он не вместится. И будет как-то так:

Элемент выходит за пределы родительского

Создаём два вложенных элемента с классами parent и child .

И стилизуем их. У parent ширина 100 пикселей, а у child — 200.

Выше вы уже видели, что произойдёт в этом случае — элемент child с синим фоном будет выходить за пределы родительского элемента с рамкой.

Конечно, иногда так поступают специально — например, чтобы иллюстрации в блоге выходили за пределы колонки с текстом и были покрупнее.

Здесь иллюстрации намеренно шире колонки, чтобы дать возможность разглядеть подробности скриншота

Хотя если указать только width без ограничений, то при уменьшении окна картинка не вместится.

С max-width: 100% элемент не выходит за пределы родительского

Теперь дочерний элемент не будет выходить за пределы родительского элемента, даже если его ширина увеличивается.

Ну и не забывайте тестировать сайты и проверять их в разных браузерах — это важный навык для всех веб-разработчиков в любом году.

👉 Все браузеры поддерживают свойство width , так что смело пользуйтесь.

Материалы по теме

  • Не шириной единой — свойство height ещё запутаннее, но тоже важное
  • Чем отличаются margin и padding (и как их больше никогда не перепутать)
  • Как создавать адаптивные сетки

«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

Источник

Читайте также:  Парк высоких технологий html
Оцените статью