我将从我想要实现的目标的ASCII艺术插图开始:
Category title
Title Title
+-------+ +-------+
| | | |
| | | |
| Image | | Image |
| | | |
| | | |
+-------+ +-------+
Subtitle Subtitle
Category title
Title Title
+-------+ +-------+
| | | |
| | | |
| Image | | Image |
| | | |
| | | |
+-------+ +-------+
Subtitle Subtitle
所以我有这些包含项目的类别。每个项目包括标题,字幕和图像。图像大小不同。它们的宽度恒定为150px,但高度范围从150px到252px。我无法预测将来会有多大的尺寸,尽管它们应该在这个尺寸附近。您可以假设宽度恒定为150px,高度可以在150px和300px之间变化。
每个类别中的计数类别和项目当然是任意的。虽然在每个类别中都会有至少一个项目(否则我不会显示该类别)。标题和副标题的长度也是可变的,尽管它们大多数都很短。
我想要创建的效果如下:
我不关心效果是通过TABLE,DIV还是The Force实现的。我只是希望它看起来像那样。 :)这是可能的,如果是的话,怎么做?
如果没有,任何人都可以建议一个替代布局,它会封装相同的信息并且在不同的浏览器尺寸上看起来不错吗?
答案 0 :(得分:1)
更新:此代码可在Opera 9.51,FF 3.0和IE7中运行并进行测试。
我这样做会得到报酬吗? ;)
有很多方法可以实现这一目标。有一点是肯定的。你不能有不同的高度。如果图像上的高度不同,则div将无法正确对齐。这是HTML代码:
<div id="outerContainer">
<div class="container">
<div class="categoryTitle">Category title here</div>
<div class="itemTitle">Square image </div>
<div class="myImage"> <img class="myImage" src="http://upload.wikimedia.org/wikipedia/commons/thumb/archive/8/85/20060705145122!Smiley.svg/120px-Smiley.svg.png" /> </div>
<div class="subTitle">Subtitle here </div>
</div>
<div class="container">
<div class="categoryTitle">Category title here</div>
<div class="itemTitle">High Image</div>
<div class="myImage"> <img class="myImage" src="http://www.norwegianfashion.no/wp-content/uploads/fashion_shows/2009/Moods%20-%20feb/_SPS7281.jpg" /> </div>
<div class="subTitle">Subtitle here </div>
</div>
<div class="container">
<div class="categoryTitle">Category title here</div>
<div class="itemTitle">High Image </div>
<div class="myImage"> <img class="myImage" src="http://www.norwegianfashion.no/wp-content/uploads/Fashion_week/spring_09/regine_mowill/_SPS7094.jpg" /> </div>
<div class="subTitle">Subtitle here </div>
</div>
<div class="container">
<div class="categoryTitle">Category title here</div>
<div class="itemTitle">Wide Image </div>
<div class="myImage"> <img class="myImage" src="http://www.norwegianfashion.no/wp-content/uploads/Fashion_week/spring_09/pling/_SPS7181_copy.jpg" /> </div>
<div class="subTitle">Subtitle here </div>
</div>
</div>
css:
#outerContainer {
width: 350px;
border: solid 1px #777;
overflow: auto;
text-align: center;
}
.categoryTitle {
font-weight: bold;
}
.container {
float: left;
border: solid 1px #ccc;
height: 270px;
width: 150px;
margin: 10px 5px 10px 5px;
}
#outerContainer .myImage {
max-height: 200px;
max-width: 150px;
height: expression(this.height > 200 ? 200 : true);
width: expression(this.width > 150 ? 150 : true);
}
.imgContainer {
overflow: hide;
}
答案 1 :(得分:1)
标记和CSS:
<style type="text/css">
h3.category { clear: both; }
div.item { float: left; width: 83px; margin-right: 20px; }
div.item img { width: 83px; height: 125px; }
div.item h4 { margin-bottom: 3px; }
div.item h5 { margin-top: 3px; }
</style>
<h3 class="category">Category <strong>title</strong></h3>
<div class="item">
<h4>Title</h4>
<img src="http://www.freefoto.com/images/15/19/15_19_54_thumb.jpg" title="tree" />
<h5>Subtitle</h5>
</div>
<div class="item">
<h4>Longer Title</h4>
<img src="http://www.freefoto.com/images/15/19/15_19_54_thumb.jpg" title="tree" />
<h5>Longer Subtitle</h5>
</div>
<div class="item">
<h4>Very Long, Wrapping Title</h4>
<img src="http://www.freefoto.com/images/15/19/15_19_54_thumb.jpg" title="tree" />
<h5>Very Long, Wrapping Subtitle</h5>
</div>
<div class="item">
<h4>Title</h4>
<img src="http://www.freefoto.com/images/15/19/15_19_54_thumb.jpg" title="tree" />
<h5>Subtitle</h5>
</div>
<h3 class="category">Category <strong>title</strong></h3>
<div class="item">
<h4>Very Long, Wrapping Title</h4>
<img src="http://www.freefoto.com/images/15/19/15_19_54_thumb.jpg" title="tree" />
<h5>Very Long, Wrapping Subtitle</h5>
</div>
<div class="item">
<h4>Longer Title</h4>
<img src="http://www.freefoto.com/images/15/19/15_19_54_thumb.jpg" title="tree" />
<h5>Longer Subtitle</h5>
</div>
<div class="item">
<h4>Title</h4>
<img src="http://www.freefoto.com/images/15/19/15_19_54_thumb.jpg" title="tree" />
<h5>Subtitle</h5>
</div>
答案 2 :(得分:0)
支持rpflo进行跨度评论。这适用于ie7 / 8,ff3和chrome / safari。
<div class="cat">
<h2>Category 1</h2>
<span class="img">
<h3>Title 1 with a long title wider than 150px</h3>
<img src="yourimage.png" />
<h4>Subtitle 1</h4>
</span>
</div>
CSS:
div.cat {
overflow:auto;
margin-bottom:15px;
}
div.cat span.img {
display:inline-block;
vertical-align:top;
width:150px;
margin-right:15px;
text-align:center;
}
div.cat span.img h3, div.cat span.img h4 {
margin:0;
}
答案 3 :(得分:0)
我认为这种布局最简单的方法是使用css框架。简单网格布局的最佳选择是http://960.gs/
易于使用,浏览器兼容性也没有问题。