gpt4 book ai didi

html - 如何使我的 HTML5 nav li 选项卡在使用 CSS3 单击时保持事件状态?

转载 作者:太空宇宙 更新时间:2023-11-04 04:35:32 26 4
gpt4 key购买 nike

我正在学习 HTML 5 和 CSS3,但在使用选项卡式导航栏时遇到了问题。我认为 li:active css STLye 会实现我的目标,但那只是在点击时发生的,不会保持这种状态。我看过网络上的许多教程,但无法找到如何仅使用 CSS 和 HTML 来完成此操作。如果可能,我想避免使用 javascript 或 php。我在一些地方找到了关于“子”元素和使用 z-index 属性的信息,并认为这可能是一个可能的解决方案,但不明白如何实现它们。它们看起来像我想要的悬停方式,但我希望它们在我单击它们时保持那种风格以产生事件选项卡的效果。非常感谢任何建议或帮助。

我的 HTML:

    <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>

<link rel="stylesheet" href="css/style.css">
</head>

<body>

<header>
Header
</header>

<nav>
<ul id="tabs">
<li>link1</li>&nbsp;
<li>link2</li>&nbsp;
<li>link3</li>&nbsp;
<li>link4</li>&nbsp;
</ul>
</nav>

<article>
Article of Content
</article>

<aside align="right">
Aside of Content
</aside>

<footer>
<span id="cpyrt">&copy; 2013 Footer Content</span>
</footer>

</body>
</html>

我的 CSS:

    body {
top: 0;
width: 80%;
position: fixed;
margin-left: 10%;
margin-right: 10%;
box-shadow: #000 0px 0px 900px;
height: 100%;
}
header {
background-color: #06F;
height: 8%;
padding: 9px;
padding-top: 25px;
box-shadow: inset #000 0px 1px 2px;

}
nav{
background-color: #333;
box-shadow: inset #000 -10px -15px 50px;
float:left;
width: inherit;
height: 59px;
}
/*--------------Navigation Tabs Styling ----- START -----------------------------*/
nav li{
list-style-type: none;
display: inline-table;
background-color: #666;
padding-top:15px;
padding-left: 25px;
padding-right: 25px;
padding-bottom:7px;
border-top-left-radius:15px;
border-top-right-radius:15px;
text-align:center;
-webkit-transition: background-color 0.2s ease, color 0.1s linear, height 0.0s ease;
-moz-transition: background-color 0.2s ease, color 0.1s linear, height 0.0s ease;
-o-transition: background-color 0.2s ease, color 0.1s linear, height 0.0s ease;
box-shadow: #000 0px 1px 10px;
color: white;
}
nav li:hover{
list-style-type: none;
display: inline-table;
background-color:#09F;
padding-top:15px;
padding-left: 25px;
padding-right: 25px;
padding-bottom:7px;
border-top-left-radius:15px;
border-top-right-radius:15px;
color: black;
text-align:center;
box-shadow: inset #FFF 0px 1px 4px;
height: 30px;
margin-top: -3px;
}
nav li:active{
list-style-type: none;
display: inline-table;
background-color:#02F;
padding-top:15px;
padding-left: 25px;
padding-right: 25px;
padding-bottom:7px;
border-top-left-radius:15px;
border-top-right-radius:15px;
border:none;
}
/*--------------Navigation Tabs Styling ----- END -----------------------------*/
article{
padding: 5px;
float: left;
background-color: #ddd;
height: inherit;
width: inherit;
box-shadow: inset #000 0px 1px 2px;

}
aside{
top: auto;
padding: 10px;
position: fixed;
right: 10%;
background-color: #CCC;
width: 17%;
height: inherit;
float: right;
box-shadow: inset #000 0px 1px 2px;
}

footer {
position: fixed;
bottom: 0;
background-color: #06F;
width: inherit;
height:8%;
padding-top: 5px;
box-shadow: inset #000 0px 1px 2px;
margin-right: 15px;
}

最佳答案

:active 仅适用于 anchor ( <a> ) 和按钮 ( <button> , <input type="button/> ...),并且仅在它们被按下时适用。

你需要看看:target

http://jsfiddle.net/coma/ED6cH/6/

HTML

<div class="tabbed">
<a href="#dog" id="dog">
Dog
<div>
<p>This is a dog...</p>
</div>
</a>
<a href="#cat" id="cat">
Cat
<div>
<p>This is a cat...</p>
</div>
</a>
<a href="#foo" id="foo">
Foo
<div>
<p>This is a foo...</p>
</div>
</a>
</div>

CSS

div.tabbed {
position: relative;
font-size: 0;
}

div.tabbed > a {
display: inline-block;
padding: .5em;
font-size: 16px;
border-radius: 3px 3px 0 0;
background-color: #333;
color: #eee;
text-decoration: none;
line-height: 1em;
}

div.tabbed > a + a {
margin-left: .5em;
}

div.tabbed > a:target {
color: #333;
background-color: #eee;
}

div.tabbed > a > div {
position: absolute;
top: 100%;
left: 0;
width: 300px;
padding: .5em;
border-radius: 0 3px 3px 3px;
display: none;
color: #333;
background-color: #eee;
}

div.tabbed > a:target > div {
display: block;
}

:target 伪选择器将 URL 哈希 ( http://foo.com#this_is_the_hash ) 中的内容与具有该哈希字符串作为 id 的元素相匹配。

还有另一种 hackish 方法使用很长时间的转换:

http://joelb.me/blog/2012/maintaining-css-style-states-using-infinite-transition-delays/

疯狂:

http://dabblet.com/gist/2076449

关于html - 如何使我的 HTML5 nav li 选项卡在使用 CSS3 单击时保持事件状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16511723/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com