我有一个4个标签,我在下面显示。它随着屏幕尺寸的变化和不同的浏览器而不断移动。每次在不同的计算机上打开它时,我都会看到 about.html ,它不会停留在单行选项卡上。我需要不断更改我的width:303px
。
实际上我需要在不同的计算机和浏览器上减少它。什么是最好的解决方法,以便它与其余选项卡保持一条线。
CSS
ul
{
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
}
li
{
float: left;
}
a:link, a:visited {
display: block;
width:303px;
font-weight: bold;
color: #FFFFFF;
background-color: #98bf21;
text-align: center;
padding: 4px;
text-decoration: none;
text-transform: uppercase;
}
HTML
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="offers.html">Offers</a></li>
<li><a href="contact.html">Contact</a><li>
<li><a href="links.html">Links</a></li>
<li><a href="about.html">About us</a></li>
</ul>
<br>
<br>
答案 0 :(得分:1)
您有几个选项会将这些 与 显式宽度(%或实际px / em等值)对齐并对齐:
CSS表格(绿色版) - Support IE8 and above
ul.table {
display: table;
table-layout: fixed;
width: 100%;
}
ul.table li {
display: table-cell;
}
Flexbox (梅花版) - Support IE10 and above
ul.flex {
display: flex;
}
ul.flex li {
flex:1;
}
两者的演示
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
margin-bottom: 1em;
}
ul.table {
display: table;
table-layout: fixed;
width: 100%;
}
ul.table li {
display: table-cell;
}
ul.flex {
display: flex;
}
ul.flex li {
flex: 1;
}
ul.flex a {
background: plum;
}
a:link,
a:visited {
display: block;
font-weight: bold;
color: #FFFFFF;
background-color: #98bf21;
text-align: center;
padding: 4px;
text-decoration: none;
text-transform: uppercase;
}
<ul class="table">
<li><a href="index.html">Home</a>
</li>
<li><a href="offers.html">Offers</a>
</li>
<li><a href="contact.html">Contact</a>
</li>
<li><a href="links.html">Links</a>
</li>
<li><a href="about.html">About us</a>
</li>
</ul>
<ul class="flex">
<li><a href="index.html">Home</a>
</li>
<li><a href="offers.html">Offers</a>
</li>
<li><a href="contact.html">Contact</a>
</li>
<li><a href="links.html">Links</a>
</li>
<li><a href="about.html">About us</a>
</li>
</ul>
注意:这不是一站式解决方案。在某些时候,屏幕可能不够宽,无法容纳所有文本。那时你需要媒体查询。
答案 1 :(得分:0)
您可以使用calc()
功能....
width: calc(100% / X);
X 是标签数量。
您也可以使用....
width: calc((100% / X) - Ypx);
Y 是标签之间所需的填充,边距或空格的总和。
因此,对于4个标签,其中margin: 0 5px;
和它们之间的1px边框,您可以使用:
width: calc((100% / 4) - 48px);