[英]How to make tabs with pure HTML/CSS
我正在尝试使用纯HTML / CSS进行制表符,它在所有主要的浏览器中都很好用。 除IE以外,均为7和8。
如果我不将display: table
添加到ul ,则内容并不是在每个浏览器中都位于新行上。 但是,即使添加了IE,IE也不会在新行中显示它。 我该怎么办? 有没有更好的方法可以在纯HTML / CSS中制作标签?
<!DOCTYPE>
<html>
<head>
<style type="text/css">
ul.tabs {
display: table;
list-style-type: none;
margin: 0;
padding: 0;
}
ul.tabs>li {
float: left;
padding: 10px;
background-color: lightgray;
}
ul.tabs>li:hover {
background-color: yellow;
}
ul.tabs>li.selected {
background-color: orange;
}
div.content {
border: 1px solid black;
}
</style>
</head>
<body>
<ul class="tabs">
<li class="selected">One</li>
<li>Two</li>
<li>Three</li>
</ul>
<div class="content">
This should really appear on a new line.
</div>
</body>
</html>
由于<li>
元素是浮动的,因此<ul>
元素的高度为零。
尝试添加ul { overflow: auto; }
ul { overflow: auto; }
和div.content { clear: both; }
div.content { clear: both; }
到您的CSS
我使用了这种方法,效果很好。 它使用一个内联列表: http : //nontroppo.org/test/tab1.html
更新:以上已过时。 如果现在要回答这个问题,我建议使用此处概述的CSS target伪类方法: http : //www.w3.org/Style/Examples/007/target 。 还有其他方法,例如结合使用(隐藏的)单选按钮和已检查的伪类,但是使用target似乎是最干净的方法。
我总是只是“浮动” li
元素:
ul.tabs{list-style: none;}
ul.tabs li{float:left;}
这个 (jsfiddle)对您有用吗?
所做的更改:
display: table;
来自ul.tabs float:left
display:inline-block
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.