Divs布局类似于网格

时间:2013-02-07 09:13:04

标签: html css

所以我有这样的html布局:

<h1>Title</h1>
<div class="info">Extra info</div>
<img src="image.jpg" />
<div class="summary">Short summary</div>

如何将其显示为:

<img src="image.jpg" /> <h1>Title</h1>
                        <div class="info">Extra info</div>
                        <div class="summary">Short summary</div>

我尝试使用浮动,但它显示为:

                        <h1>Title</h1>
<img src="image.jpg" /> <div class="info">Extra info</div>
                        <div class="summary">Short summary</div>

我尝试了位置(相对和绝对),我得到了我想要的东西,不幸的是它在IE中不能很好地工作,如果简短的摘要文本很短,那么图像隐藏在其他元素后面。我不知道图像高度(动态高度),所以身高:xxx px;不适合这里。

任何帮助都会很棒。

修改: 在这种情况下,我不能包装所有(右侧)元素。

3 个答案:

答案 0 :(得分:0)

<img src="image.jpg" class="left-image" />
<div class="right-col">
    <h1>Title</h1>
    <div class="info">Extra info</div>
    <div class="summary">Short summary</div>
</div>

CSS

.left-image {
    float: left;
}
.right-col {
    margin-left: <width-of-image> px;
}

答案 1 :(得分:0)

要在不向代码中添加其他div的情况下完成此操作,请添加以下CSS

img{float:left}
div{display:table-row}

<强> DEMO 2


使用position:absolute

<h1>Title</h1>
  <div class="info">Extra info</div>
 <img src="image.jpg" width="40" />
   <div class="summary">Short summary</div>

<强> CSS

img{float:left; top:0; position:absolute; left:0}
div, h1{display:block; margin-left:40px /*Add image width value as margin-left*/ }

<强> DEMO 3

答案 2 :(得分:0)

这个怎么样:http://jsfiddle.net/xpq2m/

CSS

body {
    padding-left: 100px;
}
img#s { 
    position: absolute;
    top: 0;
    left: 0;
}