我正在为移动设备构建一个网站,因此具有流畅的布局。 我的导航列表如下所示:
<ul>
<li>home</li>
<li>about</li>
<li>work</li>
<li>contact</li>
</ul>
问题是,第一个列表项只需要是100px(总是左对齐),另外3个需要均匀分割,因此除了第一个列表项之外可以为所有列表项设置均匀宽度(不使用javascript)
答案 0 :(得分:3)
这是我能想到的最简单的方法:
ul { overflow: hidden; padding-left: 100px; position: relative; }
li { width: 33.33%; float: left; }
li:first-child { position: absolute; top: 0; left: 0; width: 100px; }
主要想法是从广告系列li
中取出第一个position: absolute
并向ul
添加填充左侧(第一个li
的空格) 。现在,如果我们为其他li
设置百分比宽度,它们将占用剩余空间。
这是一个jsFiddle Demo。我在ul
上添加了一个红色边框,表示由于百分比li
不能准确填充它。
我不确定您要支持哪些移动浏览器,但:first-child
除外(可以通过在第一个列表项上添加类来解决)我认为它们必须支持我使用的所有内容。
答案 1 :(得分:2)
<强> CSS:强>
div {
width: 90%;
margin: 0 auto;
}
ul {
margin: 0; padding: 0; list-style: none; /* reset */
float: left;
width: 100%;
}
li {
float: left;
width: 100%;
text-align: center;
}
li span {
float: left;
width: 99px;
background: #eee;
border-right: 1px solid #000;
}
ul ul {
float: none;
overflow: hidden;
width: auto;
}
li li {
width: 33%;
background: #ffe;
border-right: 1px solid #000;
}
<强> HTML:强>
<div>
<ul>
<li><span>home</span>
<ul>
<li>about</li>
<li>work</li>
<li>contact</li>
</ul>
</li>
</ul>
</div>
答案 2 :(得分:2)
对于它的价值,当我对你的问题发表评论时,这就是我的想法:
ul {
display: table;
width: 100%;
background: #ccc;
table-layout: fixed
}
li {
display: table-cell;
text-align: center;
outline: 1px dashed red
}
li:first-child {
width: 100px
}