Коллапс отделения после CSS плавающей

18
задан Brandon Wamboldt 15 May 2014 в 12:33
поделиться

7 ответов

Одно решение состоит в том, чтобы добавить стиль "clear:both" к элементу после последней пущенной в ход привязки, например:

<div id="nav">
  <ul id="ulListNavi">
    <li><a href="#">Home</a></li>
    <li><a href="#">Search</a></li>
    <li><a href="#">Flowers</a></li>
    <li><a href="#">My Account</a></li>
    <li><a href="#">Contact Us</a></li>
  </ul>
  <div style="clear:both;"></div>
</div>

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

15
ответ дан 30 November 2019 в 05:53
поделиться

Несколько других опций для очистки плаваний здесь:

http://www.quirksmode.org/css/clearing.html

http://www.sitepoint.com/blogs/2005/02/26/simple-clearing-of-floats/

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

5
ответ дан 30 November 2019 в 05:53
поделиться

добавьте этот код после своей ул.:

<div style="clear: both"></div> 
4
ответ дан 30 November 2019 в 05:53
поделиться

Попытайтесь пустить в ход содержание элемента налево также.

2
ответ дан 30 November 2019 в 05:53
поделиться

Добавьте любое значение переполнения , кроме visible , в ваш контейнер:

div#nav { overflow:auto; }

Затем добавьте width , чтобы восстановить ширину

div#nav { width: 100%; overflow:auto; }
36
ответ дан 30 November 2019 в 05:53
поделиться

Не беспокойтесь об очистке элементов или переполнении. Добавьте это:

#nav {
    float: left;
}

Когда вы размещаете LI, #nav больше ничего не "содержит", поэтому он сворачивается. Но если #nav также является плавающим, он содержит все, что находится внутри него, поэтому он снова расширяется.

(Также рассмотрите возможность удаления div #nav и просто применения тех же стилей к UL.)

2
ответ дан 30 November 2019 в 05:53
поделиться

Без изменения вашего HTML:

#nav
{
    width: 100%;
    overflow: auto;
    border: solid 1px red;
}
#ulListNavi
{
    margin: 0;
    padding: 0;
    list-style: none;
}
#nav #ulListNavi li
{
    float: left;
}
#nav #ulListNavi li a
{
    margin-left: 5px;
}

Работает в IE8 и FF 3.5

0
ответ дан 30 November 2019 в 05:53
поделиться