繁体   English   中英

如何使用纯HTML / CSS制作标签

[英]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)对您有用吗?

所做的更改:

  1. 移除display: table; 来自ul.tabs
  2. 从ul.tabs li的中删除了float:left
  3. 向ul.tabs li's添加了display:inline-block

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM