2013-05-10 2 views
0

Здесь идет код:Css поплавка недостатки

<style> 
    .thumbnail 
    { 
    float:left; 
    width:110px; 
    height:90px; 
    margin:5px; 
    } 
</style> 
    <body> 
    <img src="klematis_small.jpg" style="width:107px; height:140px"> 
    <img class="thumbnail" src="klematis_small.jpg" style="width:107px; height:150px"> 

Запутанный почему второй IMG, который плавал appering перед первым img.If мы размещаем первый IMG на второй IMG все работает, как ожидалось.

ответ

1

плавал элементы вынимают из normal document flow:

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

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

Содержания поплавков складываются так, как если бы поплавки генерировали новые контексты стекирования, за исключением того, что любые позиционированные элементы и элементы, которые фактически создают новые контексты стекирования, принимают участие в контексте родительского стека float. Поплавок может перекрывать другие ячейки в нормальном потоке (например, когда нормальный блок потока рядом с поплавком имеет отрицательные поля). Когда это происходит, поплавки отображаются перед незанятыми блоками в потоке, но за встроенными потоками.

раздел на поплавках в Visual Formatting Model полезно, если вы заинтересованы в изучении специфики


Ссылки: Section 9.4, Floats, CSS 2.1 Specification

+0

Не могли бы вы объяснить на примере, _when сталкиваясь с элементами уровня блока в потоке, но он появится за всеми строками. .. пример. – dkjain

0

Да. Это нормально и ожидается. Если вы хотите сначала сначала, вам нужно их поплавать.

1

Вы копируете пример из W3Schools, но не читал:

Как элементы Поплавок элементы размещаются горизонтально, это означает, что элемент может всплывать только влево или вправо, а не вверх или вниз.

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

+0

lol thank u для этой информации –

+0

Если бы мой ответ был полезным, отметьте его как хороший ответ. Спасибо. – WooCaSh

+0

означает ли это, что он займет позицию любого другого элемента –

0

Я бы не использовал поплавки, просто используйте дисплей: встроенный блок; который будет отображать ваши объекты точно в том же порядке, что и код.

Смежные вопросы