Как добавить нижний отступ к div, который содержит плавающие div?

У меня есть div, содержащий другие плавающие div:

<div id = "parent">
<div style = "float: left;"> текст </div>
<div style = "float: left;"> текст </div>
<div style = "float: right;"> текст </div>
</div>

Как я могу добавить нижний отступ к родительскому div и заставить его работать в IE6 (или, другими словами, избежать ошибок в IE6)?

Спасибо

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
3
0
11 467
5

Ответы 5

Попробуйте переместить родительский div.

коробочная модель взлома, в основном обеспечивающий заполнение IE, должно помочь

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
 "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<title>demo</title>

<style type = "text/css">
<!-- 
div {
height:100px;
border:1px solid black;
padding-bottom:10px;
}
div {
\height: 140px;
h\eight: 100px;
}  
-->
</style>

</head>
<body>

<div id = "parent" style = "float:left;">
  <div style = "float:left;">text</div>
  <div style = "float:left;height:100px">text</div>
  <div style = "float:right;">text</div>
</div>
</body>
</html>

IE, похоже, не вычисляет высоту родителя, когда все дочерние элементы плавают. Если вам удастся применить фиксированную высоту к родительскому элементу, вы сможете добавить нижний отступ.

Если вы не можете исправить высоту родительского элемента, следующее, что я сделаю, это посмотрю, есть ли способ удалить float из самого высокого дочернего div. Это даст родительскому div фактическую высоту, а затем должно появиться нижнее заполнение.

В моем файле сброса CSS есть код "clearfix":

.clearfix:after {
    content:".";
    display:block;
    height:0;
    clear:both;
    visibility:hidden;
}
.clearfix {display:inline-block;}
/* Hide from IE Mac \*/
.clearfix {display:block;}
/* End hide from IE Mac */
* html .clearfix {height:1px;}

Выглядит странно, но отлично работает во ВСЕХ распространенных браузерах: IE6 / 7, FF2 / 3, Opera, Safari.

Как использовать?

Что-то вроде этого:

<div class = "clearfix">
    <div class = "floatLeft">
        left div
    </div><!-- /.floatLeft-->

    <div class = "floatRight">
        right div
    </div><!-- /.floatRight-->
</div><!-- /.clearfix-->

ВНИМАНИЕ! Используйте НЕТ класс clearfix в нижних колонтитулах (или, наконец, в элементе на странице), иначе у вас будет некрасивое пространство под всем содержимым.

Как и один из других ответов, этот работал у меня в Firefox и использует немного меньше кода. Я думаю, что это хорошо работает и в других браузерах, но вы должны подтвердить.

.clearFix::after{
content: '';
display: block;
clear: both;
}

Другие вопросы по теме