Запрет обтекания float элементов
Пусть нам надо заверстать такой блок:

Т.е. слева должна быть картинка, а справа колонкой идет текст, который не должен залезать под картинку. Т.е. нужно запретить обтекание текстом картинки. Делается это, как и всё в html css, очень легко =)
Нужно картинке оставить float:left, а тексту справа задать overflow:hidden с zoom:1 для ИЕ, или взять любой другой параметр, который включает haslayout.
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Зарпет обтекания float элементов</title> <style type="text/css"> .news{ width:700px; } .news img{ float:left; margin:0 10px 10px 0; } .news p{ overflow:hidden; zoom:1; } </style> </head> <body> <div class="news"> <a href="#"><img src="pic.jpg" alt="" /></a> <h1><a href="#">Запрет обтекания float элементов</a></h1> <p>По моему, естественно, что после долгих лет мучений, сомнений и борьбы, приходит Большой Обтекание float. Задайтесь вопросом: а откуда я знаю, что это тот самый Обтекание float? Идея, конечно, хорошая, только вряд ли теперь заинтересуешь инетчиков Обтекание float. Знаете, сколько Обтекание float в интернете? Нужно четкое определение Обтекание float, тогда Обтекание float будет интересен другим. И только Обтекание float движет этим миром. Обтекание float расширяет наши рамки и позволяет испытать доселе неизведанные эмоции. Большой Обтекание float в кармане не утаишь. Наш сосед – воспитанный и спокойный человек. За всю жизнь никому плохого слова не сказал и мухи не обидел. Но недавно берет он лом, да как фиганет в крышу новенькой соседской тачки со всей дури. Говорят, что Обтекание float виноват. Вы сейчас просто так стучите пальцами по клавиатуре или «Обтекание float» – это что-то значит? А что вы думаете о предопределении? Почему-то обычно считается, что есть лишь два варианта: либо есть свобода выбора, либо Обтекание float. Но на самом деле, мне кажется, имеет место и то и другое, причем – одновременно. Надеюсь, вам интересно со мной разговаривать. Ведь я хорошо учился в школе, и в то время даже не думал о Обтекание float. При общении с Обтекание float человеку часто кажется, что он шагнул за некую завесу, открыл неизвестную сторону обыденности. На моей практике это были довольно забавные «приходы»: ощущение «плоскости« мира (окружающее казалось прорендеренным задником, как в квестовых играх), замедление или ускорение окружающего мира, ощущение «плавания в воздухе». А вот «Taolf еинакетбо» – это Обтекание float наоборот. </p> </div> </body> </html> |
Метки: float
Комментарии (9) на “Запрет обтекания float элементов”
Оставить комментарий
Для вставки кода используйте <code> ... </code>.
Статья на Хабре про haslayout к сожалению удалена. Можете ещё что-то посоветовать на эту тему?
Если только ссылку на англ., которая на хабре, другие надо поискать. А так вкратце, если в ие какой-то непонятный глюк, включаешь haslayout, если и это не помогло, то переверстываешь. В принципе больше можно и не знать.
Можно в конце каждого float-элемента ставить брэйк с классом «clear»
соответственно добавить в стили:
.clear {clear:both;font-size:0%;line-height:0%;height:0;}
В данном случае это будет выглядеть так:
Запрет обтекания float элементов
Это конечно «костыли», но во всяком случае вопрос решает.
сорри код не отображает…
Можно в конце каждого float-элемента ставить брэйк с классом «clear»
<br class=»clear»/>
соответственно добавить в стили:
.clear {clear:both;font-size:0%;line-height:0%;height:0;}
В данном случае это будет выглядеть так:
<a href=»#»><img src=»pic.jpg» alt=»" /></a><br class=»clear»/>
<h1><a href=»#»>Запрет обтекания float элементов</a></h1>
Это конечно «костыли», но во всяком случае вопрос решает.
что-то всё усложнено неоправданно. clear!
Зачем так утруждать?)) создаем ещё один див где текст будет и пишем margin-left: сколько нам нужно, расстояние от картинки вот и всё)
Виктор, это просто еще один способ. Также он хорош, что картинку можно ставить любой ширины и не подгонять margin-left в зависимости от ширины картинки. Также, если картинки не будет, то текст встанет «вровень со стенкой» =) без левого отступа.
уже 4 статьи на сайте сохранил, имхо вышеизложенное юзабельно, полезно.
«По моему, естественно,то после долгих лет мучений, сомнений и борьбы, приходит Большой Обтекание float…» — пока читал чуть не упал со стула)))