Так что я возился с CSS и плыл на днях и наткнулся на странное поведение (честно говоря, я удивлен, что раньше с этим не сталкивался).Я был озадачен причиной этого (а также тем, почему я еще не знал ...).
Если у вас есть div (назовем его Боб), и вы попытаетесь отпустить его следующимдля другого div (Джимми), это работает, только если
- Джимми тоже плавающий
- Джимми приходит после Боба
Так что если у нас есть:
<div class="container">
<div id="one">Main Content 1</div>
<div id="two">Sidebar 1</div>
</div>
с
.container {
overflow:hidden; /* this essentially clears the floats. You could remove it and add a clearfloat div instead */
margin-bottom:10px;
}
#one {
background-color:red;
margin-right:50px;
}
#two {
width:50px;
float:right;
background-color:blue;
}
получаем; но если мы просто поменяем #one
и #two
, сохранив тот же CSS:
<div class="container">
<div id="two">Sidebar 2</div>
<div id="one">Main Content 2</div>
</div>
, мы получим:
Почему?Я уверен, что это что-то простое (что заставляет меня чувствовать себя глупо), связанное с моделью бокса и определением float, но что?
Вы можете поиграть с этим здесь