Я представил ниже marginfix
, который является элементом уровня блока, а one
и two
также являются блочным уровнем, но они плавают. Вот почему они находятся на одной строке макета, но marginfix
тоже не плавает, а элемент уровня блока должен опускаться ниже элемента, как показано ниже:
+--------------------+ +--------------------+
| | | |
+--------------------+ +--------------------+
+--------------------------+
| |
+--------------------------+
Но он работает следующим образом
+--------------------+ +--------------------------+ +--------------------+
| | | | | |
+--------------------+ +--------------------------+ +--------------------+
Это HTML
<div class="wrap">
<div class="one">one</div>
<div class="two">two</div>
<div class="marginfix">three</div>
</div>
CSS
.wrap{
width: 500px;
background-color: red;
position: relative;
margin: 0 auto;
}
.one{
width: 200px;
float: left;
}
.two{
width: 200px;
float: right;
}
.marginfix{
margin: 0 210px;
}
ОБНОВЛЕНИЕ ПРИМЕЧАНИЕ
Кто-то может сказать, что marginfix
содержит оставшееся пространство плавающих элементов. Если да, то почему это не сработает, если мы изменим порядок элемента html. Этот html не будет работать как выше html
<div class="wrap">
<div class="one">one</div>
<div class="marginfix">three</div>
<div class="two">two</div>
</div>
Итак, как работает значение поля?