Как говорили другие, в этом случае вы должны использовать float.Я думаю, что если вы посмотрите на код позже, вам будет гораздо легче понять, если вы используете плавающие элементы.
Я предлагаю вам использовать жидкую разметку для этого, не устанавливая ширину сечения на постоянное значение px: http://jsfiddle.net/9j5jd/
Преимущества этого решения:
- В секциях используется
100%-(width of status text)
ширина контейнера - Порядок элементов html неизменен
Вы можете установить ширину состояния на %
или em
, я использовал 150px
.Я не установил постоянную высоту для секций, вы можете сделать это, если хотите.
Коды (такие же, как jsfiddle): HTML:
<div class="section">
<div class="header"><h1>This is a section title</h1></div>
<div class="status">approved</div>
<div class="author">chris</div>
<div class="content"><div class="inner">
<p>This is some text. Lorem ipsum.This is some text. Lorem ipsum.This is some text. Lorem ipsum.This is some text. Lorem ipsum.This is some text. Lorem ipsum.This is some text. Lorem ipsum.</p>
<p>Lorem ipsum.</p>
</div></div>
</div>
<div class="section">
<div class="header"><h1>Different section title</h1></div>
<div class="status">rejected</div>
<div class="content"><div class="inner">
<p>Lorem ipsum.</p>
</div></div>
</div>
CSS:
/* Position */
.header, .content {
float: right;
width: 100%;
margin-left: -150px;
}
h1, .inner {
margin-left: 150px;
}
h1 {
clear: both;
}
.status, .author {
float: left;
width: 130px;
clear: left;
text-align: right;
padding-right: 20px;
}
/* Decoration */
h1 {
color: #365F91;
font-size: 1.2em;
margin-bottom: 0.3em;
font-weight: bold;
}
.status, .author {
font-size: 0.8em;
}
.status:before {
content:"(status: ";
}
.author:before {
content:"(author: ";
}
.status:after, .author:after {
content:")";
}
.section {
float: left;
margin-top: 0.5em;
}