我需要你的帮助! 我有一张图片来显示我的问题
我想使用 CSS 来完成此操作,并且不再使用 div 或元素,因为我是在 ASP.NET 中编写此代码的。每个项目都从数据库中显示。
示例: ASP代码:
<ul id="vitravleNav" name="vitravleNav">
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:dulich %>"
SelectCommand="SELECT top(8) [tenmenu], [urlhinh] FROM [menu] WHERE anhien=1">
</asp:SqlDataSource>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<li>
<a href="<%# Eval("urlhinh") %>" title="<%# Eval("tenmenu") %>" ><im<%#Eval("tenmenu") %></a>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
CSS代码:
#vitravleNav
{
margin: 0px 0px;
list-style: none;
letter-spacing: -0.5px;
font-size: 16px;
text-shadow: 0 -1px 3px #202020;
width: 100%;
height: 100%;
}
#vitravleNav li
{
display: block;
float: left;
border-right: 1px solid white;
border-left: 1px solid white;
width: 12.3%;
height: 100px;
text-align:center;
vertical-align:middle;
background-color: #0099FF;
}
#vitravleNav li:hover
{
box-shadow: inset 0 1px 4px 4px white;
}
#vitravleNav li a
{
color: white;
text-decoration: none;
text-align: center;
display: block;
line-height: 50px;
outline: none;
padding-top:40px;
}
这是 HTML 输出图像:http://i1265.photobucket.com/albums/jj507/mabonblog/3_zps02c6598a.png
您可以使用 nth-of-type-pseudo 选择器来做到这一点:在 w3.org 上
#vitravleNav li {
position: absolute
...
}
#vitravleNav li:nth-of-type(3) {
left: 25%
}
#vitravleNav li:nth-of-type(5) {
left: 50%
}
#vitravleNav li:nth-of-type(6) {
left: 70%
}
您可以在此处找到演示:dabblet 或 dabblet 上的代码。
代码为 github 上的 gist。
由于没有
HTML
可以继续,我将根据我的评论来发展想法。
您看起来想要将元素包装在行和列中,并尽可能多地填充空间。
物品似乎有预定义的尺寸。
对于
column-width
+ height
的想法,请参阅此演示,其中图像最多位于 200 像素的正方形上。
开始的基本规则:
li, img {
float:left;
display:block;/* kills bullet*/
}
ul, li {
margin:0;
padding:0;
}
ul {
column-width:200px;
height:200px;
}
否则,
您有带有选项的砌体脚本:
http://masonry.desandro.com/options.html
这也可以是一个提示。