Html 选项卡式导航
我很难想出如何做到以下几点: 我想有两个标签(水平,彼此相邻),一个用于搜索(并标记为这样),另一个用于发布(标记为这样)。选择“搜索”选项卡时,我希望显示一个搜索框;选择“发布”选项卡时,我希望显示另一个搜索框。我不希望搜索框被隐藏。我猜它本质上是使用CSS的标签导航,但我一辈子都不知道如何让它工作 这是我到目前为止使用的html(我是新手,所以请提供任何建议)Html 选项卡式导航,html,css,Html,Css,我很难想出如何做到以下几点: 我想有两个标签(水平,彼此相邻),一个用于搜索(并标记为这样),另一个用于发布(标记为这样)。选择“搜索”选项卡时,我希望显示一个搜索框;选择“发布”选项卡时,我希望显示另一个搜索框。我不希望搜索框被隐藏。我猜它本质上是使用CSS的标签导航,但我一辈子都不知道如何让它工作 这是我到目前为止使用的html(我是新手,所以请提供任何建议) 这是纯css的最佳选择 /// Markup <ul class="tabs"> &
这是纯css的最佳选择
/// Markup
<ul class="tabs">
<li tabindex="1">
<a>Search</a>
<div class="tab-content">
Search : <input type="text" />
</div>
</li>
<li tabindex="1">
<a>Post</a>
<div class="tab-content">
Post: <input type="text" />
</div>
</li>
</ul>
/// CSS
html,
body {
height: 100%;
width: 100%;
margin: 0;
overflow: hidden;
}
ul.tabs li {
float: left;
margin: 20px 0 5px 10px;
list-style: none;
width: 100px;
}
ul.tabs li a {
display: block;
background-color: #ccc;
padding: 5px 10px;
cursor: pointer;
text-align: center;
}
ul.tabs li a:hover {
background-color: #7cc6fb;
}
ul.tabs li:focus {
outline: none;
}
ul.tabs li:focus > a {
background-color: #0094ff;
}
ul.tabs li:focus .tab-content {
z-index: 100;
}
ul.tabs li .tab-content {
position: absolute;
left: 20px;
top: 70px;
right: 20px;
bottom: 20px;
z-index: 10;
padding: 50px;
background-color: #fff;
border: 1px solid #999;
}
///标记
-
搜寻
搜索:
-
邮递
职位:
///CSS
html,
身体{
身高:100%;
宽度:100%;
保证金:0;
溢出:隐藏;
}
李先生{
浮动:左;
利润率:20px 0 5px 10px;
列表样式:无;
宽度:100px;
}
ul.lia{
显示:块;
背景色:#ccc;
填充物:5px10px;
光标:指针;
文本对齐:居中;
}
ul.a:悬停{
背景色:#7cc6fb;
}
李:聚焦{
大纲:无;
}
ul.tabs li:焦点>a{
背景色:#0094ff;
}
ul.tabs li:焦点。选项卡内容{
z指数:100;
}
ul.tabs li.选项卡内容{
位置:绝对位置;
左:20px;
顶部:70像素;
右:20px;
底部:20px;
z指数:10;
填充:50px;
背景色:#fff;
边框:1px实心#999;
}
这是如何使用:target
伪类实现的
加成
使用纯css还有另一种方法。难点在于保留选项卡的“活动”状态,这可以通过使用选项卡按钮上的
单选输入来实现。这有点粗俗,但效果很好
html将如下所示:
<ul class="tabs">
<li class="tabs-page">
<input type='radio' name='tab' id='tab-search' checked/>
<label for='tab-search'>Search</label>
<div class="content">
<h2>The search page</h2>
</div>
</li>
<li class="tabs-page">
<input type='radio' name='tab' id='tab-post' />
<label for='tab-post'>Post</label>
<div class="content">
<h2>The post page</h2>
</div>
</li>
</ul>
input[name='tab'] {
display: none;
}
input[name='tab'] ~ .content {
display: none;
}
input[name='tab']:checked ~ .content {
display: block;
}
通过组合:checked
选择器(检测“选项卡按钮”的状态)和同级~
选择器,您可以确定应该显示哪个选项卡页面
我也为您树立了一个小榜样:
很抱歉我上一篇文章。我稍微修改了Danield的选项卡式视图,现在它的可扩展性和可靠性更高了
丹克斯·丹尼尔
li {
display: inline-block;
margin-right: 10px;
list-style: none;
}
.frame {
display: none;
}
.frame:target {
display: block;
}
/// Markup
<div id="navigation">
<ul class="nav">
<li><a href="#tab1">Tab1</a></li>
<li><a href="#tab2">Tab2</a></li>
<li><a href="#tab3">Tab3</a></li>
<li><a href="#tab4">Tab4</a></li>
</ul>
</div>
<div id="tab1" class="frame">
<p>
Tab 1
</p>
</div>
<div id="tab2" class="frame">
<p>
Tab 2
</p>
</div>
<div id="tab3" class="frame">
<p>
Tab 3
</p>
</div>
<div id="tab4" class="frame">
<p>
Tab 4
</p>
</div>
li{
显示:内联块;
右边距:10px;
列表样式:无;
}
.框架{
显示:无;
}
.帧:目标{
显示:块;
}
///加价
表1
表2
表3
表4
请为我们提供一些代码(例如,via)以及您目前所获得的内容。您可以使用纯css和:target伪类来实现这一点,但这通常是通过javascript实现的。上面的一个有很多限制。您可以很容易地使用:目标选择器和设置或覆盖z索引值、显示或可见性等来创建选项卡式视图。与:目标选择器类似,您可以使用id属性锚定选项卡内容框架。i、 e并使用id=“search”定义一个元素,以便浏览器本身知道该做什么。然后可以捕获“onhashchange”事件并相应地切换元素。但这需要一点javascript。(最多10行)您明确表示不希望在任何帧上显示:无。这就是为什么这个黑客。
<ul class="tabs">
<li class="tabs-page">
<input type='radio' name='tab' id='tab-search' checked/>
<label for='tab-search'>Search</label>
<div class="content">
<h2>The search page</h2>
</div>
</li>
<li class="tabs-page">
<input type='radio' name='tab' id='tab-post' />
<label for='tab-post'>Post</label>
<div class="content">
<h2>The post page</h2>
</div>
</li>
</ul>
input[name='tab'] {
display: none;
}
input[name='tab'] ~ .content {
display: none;
}
input[name='tab']:checked ~ .content {
display: block;
}
li {
display: inline-block;
margin-right: 10px;
list-style: none;
}
.frame {
display: none;
}
.frame:target {
display: block;
}
/// Markup
<div id="navigation">
<ul class="nav">
<li><a href="#tab1">Tab1</a></li>
<li><a href="#tab2">Tab2</a></li>
<li><a href="#tab3">Tab3</a></li>
<li><a href="#tab4">Tab4</a></li>
</ul>
</div>
<div id="tab1" class="frame">
<p>
Tab 1
</p>
</div>
<div id="tab2" class="frame">
<p>
Tab 2
</p>
</div>
<div id="tab3" class="frame">
<p>
Tab 3
</p>
</div>
<div id="tab4" class="frame">
<p>
Tab 4
</p>
</div>