html - css3 仅选项卡预选选项卡

标签 html css tabs pseudo-class

我正在尝试使用 :target 伪类创建一个仅限 CSS3 的选项卡

HTML:

<div class="tabs_wrapper" style="">
    <article class="tabs">
        <section id="tab1">
            <h2><a href="#tab1">Tab 1</a></h2>
            <p>This content appears on tab 1.</p>
        </section>

        <section id="tab2">
            <h2><a href="#tab2">Tab 2</a></h2>
            <p>This content appears on tab 2.</p>
        </section> 
    </article>
</div>

CSS:
article.tabs section:target h2
{
    color: #f2f2f2;
    background-color:#b8b63e;

}
article.tabs section:target{
    z-index: 2;
}

fiddle :https://jsfiddle.net/vchawla26/gxt708e7/

一切都完成了。

只面临一个问题:如果没有单击选项卡并且目标为空,则最初在加载时不会突出显示该选项卡:(

最佳答案

您可以使用单选按钮和 :checked 来创建它。类(class)。

它不使用 :target所以不会有任何页面跳转。

正如您在下面的代码示例中看到的,每个选项卡都包含一个单选按钮(用于功能),它被 display:none 隐藏起来。 , 标签为选项卡和内容 div .

HTML

<div class="tabs_wrapper">
   <div class="tabs">

   <div class="tab">
       <input type="radio" id="tab-1" name="tab-group-1" checked>
       <label for="tab-1">Tab 1</label>

       <div class="content">
           <p>This content appears on tab 1.</p>
       </div> 
   </div>

   <div class="tab">
       <input type="radio" id="tab-2" name="tab-group-1">
       <label for="tab-2">Tab 2</label>

       <div class="content">
           <p>This content appears on tab 2.</p>
       </div> 
   </div>

    <div class="tab">
       <input type="radio" id="tab-3" name="tab-group-1">
       <label for="tab-3">Tab 3</label>

       <div class="content">
           <p>This content appears on tab 3.</p>
       </div> 
   </div>

</div>

内容区域彼此顶部,绝对定位且检查单选按钮时,使内容区域坐在顶部,Z索引。

CSS
.tabs {
  position: relative;   
  min-height: 200px; /* This part sucks */
  clear: both;
  margin: 25px 0;
}
.tab {
  float: left;
}
.tab label {
  background: #eee; 
  padding: 10px; 
  border: 1px solid #ccc; 
  margin-left: -1px; 
  position: relative;
  left: 1px; 
}
.tab [type=radio] {
  display: none;   
}
.content {
  position: absolute;
  top: 28px;
  left: 0;
  background: white;
  right: 0;
  bottom: 0;
  padding: 20px;
  border: 1px solid #ccc; 
}
[type=radio]:checked ~ label {
  background: white;
  border-bottom: 1px solid white;
  z-index: 2;
}
[type=radio]:checked ~ label ~ .content {
  z-index: 1;
}

DEMO

关于html - css3 仅选项卡预选选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37490849/

相关文章:

html - z-index 在位置固定元素内不起作用

jquery - 如何在点击时不让下方内容向下移动的情况下使下拉菜单正常工作

tabs - 在选项卡项目之间滑动,onsen-ui

java - TabHost 与其内容之间的通信

html - 下拉菜单不会水平

html - 表单元格大小未缩放到图像

javascript - 如果在隐藏的 div 中呈现,图表会消失

html - Bootstrap 悬停链接问题

html - 如何让绝对定位的元素响应?

JavaScript 在新标签页中打开,而不是 Chrome 浏览器中的窗口