Сбрасываем обтекание содержания с помощью свойства overflow

  • Главная»
  • Уроки»
  • CSS»
  • Сбрасываем обтекание содержания с помощью свойства overflow

Одной из обычных задач, которые возникают при создании шаблонов на основе плавающих блоков, является то, что контейнер не расширяется по высоте своих плавающих элементов наследников. Типовым решение задачи является добавление дополнительного элемента со сброшенным обтеканием после плавающих элементов или использование псевдокласса :after со сброшенным обтеканием для контейнера. Но для решения задачи можно также использовать свойство overflow. Это достаточно старый трюк и в данном уроке мы вернемся к нему, дополнив несколькими замечаниями.

 

Демонстрационная страница №1 показывает проблему с родительским контейнером во всей красе. Для решения мы просто добавляем overflow: auto; или overflow: hiddden; к родительскому контейнеру.

.container {
	overflow: auto;
}

Свойство overflow: hiddden; также можно использовать для предотвращения обтекания содержания вокруг плавающего элемента. Допустим, вы разрабатываете лист комментариев. По устоявшейся традиции у вас будет плавающая иконка аватара, прижимающаяся влево, и плавающий блок комментария, прижимающийся вправо. Для предотвращения обтекания текстом комментария иконки аватара нужно просто добавить overflow: hiddden; контейнеру комментария. Преимуществом такого метода является то, что контейнеру комментария не нужно устанавливать свойство width или float. Комментарий будет автоматически выравниваться за плавающим аватаром.

.image {
	float: left;
}

.text {
	overflow: hidden;
}

 

Хотя данный метод является отличным решением задачи, у него есть некоторые недостатки:

  • Использование overflow: auto; приводит к появлению полоски прокрутки, если содержание  выходит за пределы контейнера. Например, если у вас есть длинный непрерывающийся текст (например, длинный адрес URL) или большое изображение.
  • Можно было бы использовать свойство overflow: hiddden;. но такое решение приведет к скрытию содержания, которое выходит за рамки контейнера.

Демонстрационная страница №2 показывает такую ситуацию.

Для решения задачи с длинным текстом нужно просто добавить свойство  word-wrap: break-word; контейнеру, что вызовет принудительный перенос текста на новую строку.

.container {
	word-wrap: break-word;
}

А для предотвращения выхода большого изображения за границы контейнера нужно использовать свойство max-width: 100%;, которое изменит размеры изображения до максимальной ширины контейнера.

.container img {
	max-width: 100%;
	height: auto;
}

Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/8NOmBjiBXGA/lessons.php

Читать комменты и комментировать

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



Защитный код
Обновить

Сбрасываем обтекание содержания с помощью свойства overflow | | 2012-06-19 12:08:24 | | Статьи Web-мастеру | | Главная» Уроки» CSS» Сбрасываем обтекание содержания с помощью свойства overflow Одной из обычных задач, которые возникают при создании шаблонов на основе плавающих блоков, является то, что контейнер | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: