Rambler's Top100
Максим Покровский

— Привет, меня зовут Максим Покровский. Вы находитесь в моем рабочем кабинете. Поскольку я фрилансер, будем считать, что именно так он и выглядит. Здесь я пишу много интересных вещей, и если вы почувствовали, что я именно тот человек, который вам нужен, то я всегда открыт для контакта.



Сейчас работаю над:


  • Техническая поддержка popsop.ru( url )

    Текущий статус - изменнение функционала шаблона.

  • Разработка интерфейса для Korv ( url, design )

    Текущий статус - мелкие доработки графического интерфейса.

Заказать мне работу
07.11

Контейнер для float - блоков

Комментарии (16) CSS

“Зафлоаченные” элементы изымаются из родительского блока, и “папа” “схлоповается”. Чтобы этого не происходило, я использую следующий стиль :

<ul>
    <li>Туда</li>
    <li>Здесь</li>
    <li>Сюда</li>
</ul>
ul{
   overflow:hidden; /*Лекарство*/
   _height:1%; /*оно же для IE*/
   border:solid 1px red;
   list-style:none;
   padding:5px;
   }
   
   ul li{
      float:left;
      border:solid 1px blue;
      padding:5px;
      margin:0 5px;
      }

non-float

Хак для самизнаетекакогобраузера неплохобы вынести самизнаетекуда самизнатезачем
В принципе всем (ну почти) достаточно overflow:hidden;, а вот для IE6 нужно задать width, а это как вы понимаете не всегда возможно.
А как делаете Вы?

Метки:,

Комментарии

  1. 1
    agat (08.11.2007) #

    Для ie6 ul{zoom: 1;}

  2. 2
    Nikita (08.11.2007) #

    А я или точно устанавливаю высоту контейнера, или просто не заморачиваюсь.

  3. 3
    pepelsbey (08.11.2007) #

    Это называется hasLayout и его включение, делаю zoom:1…

  4. 4
    Zigzag (08.11.2007) #

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

  5. 5
    Dimox (08.11.2007) #

    С недавнего времени стал делать так же. Однако этот способ срабатывает не всегда, поэтому в некоторых случаях приходится применять старый - пустой div со свойством clear:both.

  6. 6
    le`Mur (08.11.2007) #

    2agat, pepelsbey, zoom у меня в опале. Причем абсолютно не заслуженной, просто про height:1%; я узнал раньше. А преимуществ zoom`a не нашел. :)

    2Nikita
    Очень часто высоту нельзя задавать, а обхватывать должен. Например для background`a

    2Zigzag, Dimox
    Я вместо пустого

    div

    ставлю


    И работает все как надо, и я рад за семантику. Float контейнерам ставить не люблю. Приходится либо добавлять width:100%; возможность доавления которого встречается редко. Либо соседним блокам ставть clear

  7. 7
    Nikita (09.11.2007) #

    Очень часто нельзя задавать высоту, если неправильно использовать padding и margin, а так, проблемных случаев не припомню.

  8. 8
    le`Mur (09.11.2007) #

    Очень часто нельзя задавать высоту, если неправильно использовать padding и margin, а так, проблемных случаев не припомню.

    Я имею ввиду когда у контейнера стоит

    background:url('картинка.jpg') repeat-x 0 100%;

    , а его содержимое динамической высоты.

  9. 9
    ulmen (12.11.2007) #

    спасибо большое, пригодилось :)

  10. 10
    mex (20.11.2007) #

    А я чаще всего использую :after для браузеров + height и min-height для 6 и 7 соответственно.
    Для данного случая получается примерно так:
    ul{
    min-height:1%;
    border:solid 1px red;
    list-style:none;
    padding:5px;
    }
    ul:after {
    display:block;
    content:”.”;
    visibility:hidden;
    clear:both;
    height:0;
    }
    * html ul {height:1%;}

    ul li{
    float:left;
    border:solid 1px blue;
    padding:5px;
    margin:0 5px;
    }

    Хотя с overflow - тоже очень гут

  11. 11
    le`Mur (20.11.2007) #

    А зачем так много ненужных строк? ;)

  12. 12
    mex (21.11.2007) #

    Если с нуля делать, то оно, конечно, бессмысленно. А если толстый проект, уже куча цсс понаписана, то всё это множество строк описано в стиле, скажем, .wrapper. Минимально прописываешь стилей для отображения и докидываешь до кучи .wrapper )))

  13. 13
    мухомор (23.11.2007) #

    Про не знал.
    Спасибо - пригодится

  14. 14
    Bonusov (15.01.2008) #

    спасибо большое, пригодилоcЬ и не в одном месте

  15. 15
    rmaksim (30.01.2008) #

    это конечно минимально что можно придумать не вмешиваясь в html код

    overflow:hidden; /*Лекарство*/ _height:1%; /*оно же для IE*/

    но как сказал Zigzag по обстоятельствам, потому как для выпадающей менюшки при overflow:hidden; соотв. ничего не выпадет

  16. 16
    sinvlad (05.05.2008) #

    Я программист, но версткой интересуюсь).
    Попробовал вместо

    ul{
       overflow:hidden; /*Лекарство*/
       _height:1%; /*оно же для IE*/

    поставить

    ul{
    position:absolute;
    .... и
       ul li{
    position:relative;

    и вроде работает.

Оставить комментарий

Вы можете использовать простые теги форматирования HTML (вроде <a>, <ul> and others). Чтобы вставить пример код, используйте
<code lang="php">$a = "hello";</code> (поддерживаемые языки: ruby, php, yaml, html, css, csharp, javascript). Также Вы можете использовать <code>$a = "hello";</code>, синтаксис не будет подсвечен. Если вы не хотите использовать тег <code>, замените символ < на &lt;



— Люди делятся на заказчиков и тех, кто может ими стать.
(девиз успешного фрилансера)