css :目标选择器一个 link 目标两个 div?
css :target selector one link targeting two div's?
我正在尝试仅使用 CSS 制作一个简单的移动菜单切换。通过显示和隐藏两个具有不同 link 到 类 的按钮,显示或隐藏导航菜单。
这是对本教程的编辑 link,但现在我希望将关闭和打开按钮放在一个单独的 div 中(header div ) 并且我在定位要显示或隐藏的导航时遇到问题。
不知何故我无法获得 link 定位菜单的权利。
所以工作部分是我有一个 div 至极包含两个 link,它们像切换按钮一样显示和隐藏彼此 link
现在我希望他们也显示和隐藏菜单。我从教程中更改的是切换按钮不再位于相同的 div 中,现在我无法让它们定位导航。所以这是我遇到的 HTML/CSS 标记问题。
这就是我目前所掌握的,我想这是一件简单的事情,但如有任何帮助,我们将不胜感激。
提前致谢!
<style>
#header {
width: 100%;
height:100px;
}
/* Hide Menu*/
#mainmenu{
display: none;
}
#buttons-container a.close-menu-primary{
display: none;
}
/* Display Menu Items */
#header:target #mainmenu{
display: block;
}
#buttons-container a.close-menu-primary{
display: none;
}
/* Hide Open Toggle Link */
#header:target #buttons-container a.open-menu-primary{
display: none;
}
/* Show Close Toggle Link */
#header:target #buttons-container a.close-menu-primary{
display: block;
}
</style>
HTML代码
<div class="header-div" id="header">
<div id="buttons-container" >
<a href="#header" class="open-menu-primary"><span>menu</a>
<a href="#" class="close-menu-primary"><span>close</span></a>
</div>
</div>
<nav class="navigation" id="navigation">
<ul class="mainmenu" id="mainmenu">
<li><a href="">main1</a></li>
<li><a href="">main2</a>
<ul id="submenu">
<li><a href="#">sub1</a></li>
<li><a href="#">sub2/a></li>
</ul>
</li>
<li><a href="">main3</a></li>
</ul>
</nav>
这里是Fiddle
小更新,本教程使用 :target 选择器,这里是 w3school 描述:带有 # 后跟锚点名称的 URL,link 到文档中的某个元素。 link编辑到的元素是目标元素。 :target 选择器可用于设置当前活动目标元素的样式。 w3schools.com/cssref/sel_target.asp
你有兴趣做一个dropdown menu
(这个只创建了一个常规的 css 下拉菜单并在 CSS 中使用了常规的过渡:)
* {transition:all 0.3s;-webkit-transition:all 0.3s;font-family: 'Roboto', sans-serif;}
.header-nav {position:relative;float:left;margin:0 auto;}
.header-nav ul {position:absolute;float:left;list-style:none;margin:0;padding:0;}
.header-nav ul li {position:relative;float:left;border-left:4px solid rgba(224, 52, 106, 1);}
.header-nav ul li ul {margin-left:-4px;}
.header-nav > ul {position:relative;}
.header-nav > ul > li:last-child {border-right:4px solid rgba(224, 52, 106, 1);}
或 toggle button 菜单?
(这个使用转换和 HTML 复选框来创建切换按钮:)
.spinner-master input[type=checkbox]:checked ~ .spinner-spin > .horizontal {opacity: 0;}
.spinner-master input[type=checkbox]:checked ~ .spinner-spin > .diagonal.part-1 {transform:rotate(405deg);-webkit-transform:rotate(405deg);margin-top:10px;}
.spinner-master input[type=checkbox]:checked ~ .spinner-spin > .diagonal.part-2 {transform:rotate(-405deg);-webkit-transform:rotate(-405deg);margin-top:-16px;}
您真的可以简化代码。对于这种情况,您不需要 divs。你只需要一个 link 来切换菜单 - 为什么要将一个 link 放在 div 中?见下文
label {
cursor: pointer;
}
#menu {
display: none; /* hide the checkbox */
}
.mainmenu {
display: none;
}
#menu:checked + .mainmenu {
display: block;
}
nav{display:none;}
label{color:blue;text-decoration:underline;}
<label for="menu">Menu</label>
<input type="checkbox" id="menu">
<ul class="mainmenu" id="mainmenu">
<li><a href="">main1</a>
</li>
<li id="hover-sub"><a href="javascript:void(0)">main2</a>
<ul id="submenu">
<li class="menu-item"><a href="#">sub1</a>
</li>
<li class="menu-item"><a href="#">sub2</a>
</li>
</ul>
</li>
<li><a href="" class="con">main3</a>
</li>
</ul>
一如既往,答案比您最初想到的要简单。因此,我将包含我想要定位的两个目标的元素作为目标。查看代码和 Fiddle.
CSS代码:
.wrap {
width:100%;
height:100%;
}
}
.header {
width: 100%;
height:100px;
}
#buttons-container {
background-color: #006cad;
text-align:right;
padding:16px;
}
/* Hide Menu*/
#mainmenu{
display: none;
}
#buttons-container a.close-menu-primary{
display: none;
}
/* Display Menu Items */
#wrap:target .navigation #mainmenu{
display: block;
}
#buttons-container a.close-menu-primary{
display: none;
}
/* Hide Open Toggle Link */
#wrap:target #buttons-container a.open-menu-primary{
display: none;
}
/* Show Close Toggle Link */
#wrap:target #buttons-container a.close-menu-primary{
display: block;
}
HTML代码:
<div id="wrap">
<div class="header" id="header">
<div id="buttons-container" >
<a href="#wrap" class="open-menu-primary"><span>menu</a>
<a href="#" class="close-menu-primary"><span>close</span></a>
</div>
</div>
<nav class="navigation" id="navigation">
<ul class="mainmenu" id="mainmenu">
<li><a href="">main1</a></li>
<li id="hover-sub"><a href="javascript:void(0)">main2</a>
<ul id="submenu">
<li class="menu-item"><a href="#">sub1</a></li>
<li class="menu-item"><a href="#">sub2</a></li>
</ul>
</li>
<li><a href="" class="con">main3</a></li>
</ul>
</nav>
</div>
这是一个Fiddlelink
我正在尝试仅使用 CSS 制作一个简单的移动菜单切换。通过显示和隐藏两个具有不同 link 到 类 的按钮,显示或隐藏导航菜单。
这是对本教程的编辑 link,但现在我希望将关闭和打开按钮放在一个单独的 div 中(header div ) 并且我在定位要显示或隐藏的导航时遇到问题。
不知何故我无法获得 link 定位菜单的权利。
所以工作部分是我有一个 div 至极包含两个 link,它们像切换按钮一样显示和隐藏彼此 link
现在我希望他们也显示和隐藏菜单。我从教程中更改的是切换按钮不再位于相同的 div 中,现在我无法让它们定位导航。所以这是我遇到的 HTML/CSS 标记问题。
这就是我目前所掌握的,我想这是一件简单的事情,但如有任何帮助,我们将不胜感激。
提前致谢!
<style>
#header {
width: 100%;
height:100px;
}
/* Hide Menu*/
#mainmenu{
display: none;
}
#buttons-container a.close-menu-primary{
display: none;
}
/* Display Menu Items */
#header:target #mainmenu{
display: block;
}
#buttons-container a.close-menu-primary{
display: none;
}
/* Hide Open Toggle Link */
#header:target #buttons-container a.open-menu-primary{
display: none;
}
/* Show Close Toggle Link */
#header:target #buttons-container a.close-menu-primary{
display: block;
}
</style>
HTML代码
<div class="header-div" id="header">
<div id="buttons-container" >
<a href="#header" class="open-menu-primary"><span>menu</a>
<a href="#" class="close-menu-primary"><span>close</span></a>
</div>
</div>
<nav class="navigation" id="navigation">
<ul class="mainmenu" id="mainmenu">
<li><a href="">main1</a></li>
<li><a href="">main2</a>
<ul id="submenu">
<li><a href="#">sub1</a></li>
<li><a href="#">sub2/a></li>
</ul>
</li>
<li><a href="">main3</a></li>
</ul>
</nav>
这里是Fiddle
小更新,本教程使用 :target 选择器,这里是 w3school 描述:带有 # 后跟锚点名称的 URL,link 到文档中的某个元素。 link编辑到的元素是目标元素。 :target 选择器可用于设置当前活动目标元素的样式。 w3schools.com/cssref/sel_target.asp
你有兴趣做一个dropdown menu
(这个只创建了一个常规的 css 下拉菜单并在 CSS 中使用了常规的过渡:)
* {transition:all 0.3s;-webkit-transition:all 0.3s;font-family: 'Roboto', sans-serif;}
.header-nav {position:relative;float:left;margin:0 auto;}
.header-nav ul {position:absolute;float:left;list-style:none;margin:0;padding:0;}
.header-nav ul li {position:relative;float:left;border-left:4px solid rgba(224, 52, 106, 1);}
.header-nav ul li ul {margin-left:-4px;}
.header-nav > ul {position:relative;}
.header-nav > ul > li:last-child {border-right:4px solid rgba(224, 52, 106, 1);}
或 toggle button 菜单?
(这个使用转换和 HTML 复选框来创建切换按钮:)
.spinner-master input[type=checkbox]:checked ~ .spinner-spin > .horizontal {opacity: 0;}
.spinner-master input[type=checkbox]:checked ~ .spinner-spin > .diagonal.part-1 {transform:rotate(405deg);-webkit-transform:rotate(405deg);margin-top:10px;}
.spinner-master input[type=checkbox]:checked ~ .spinner-spin > .diagonal.part-2 {transform:rotate(-405deg);-webkit-transform:rotate(-405deg);margin-top:-16px;}
您真的可以简化代码。对于这种情况,您不需要 divs。你只需要一个 link 来切换菜单 - 为什么要将一个 link 放在 div 中?见下文
label {
cursor: pointer;
}
#menu {
display: none; /* hide the checkbox */
}
.mainmenu {
display: none;
}
#menu:checked + .mainmenu {
display: block;
}
nav{display:none;}
label{color:blue;text-decoration:underline;}
<label for="menu">Menu</label>
<input type="checkbox" id="menu">
<ul class="mainmenu" id="mainmenu">
<li><a href="">main1</a>
</li>
<li id="hover-sub"><a href="javascript:void(0)">main2</a>
<ul id="submenu">
<li class="menu-item"><a href="#">sub1</a>
</li>
<li class="menu-item"><a href="#">sub2</a>
</li>
</ul>
</li>
<li><a href="" class="con">main3</a>
</li>
</ul>
一如既往,答案比您最初想到的要简单。因此,我将包含我想要定位的两个目标的元素作为目标。查看代码和 Fiddle.
CSS代码:
.wrap {
width:100%;
height:100%;
}
}
.header {
width: 100%;
height:100px;
}
#buttons-container {
background-color: #006cad;
text-align:right;
padding:16px;
}
/* Hide Menu*/
#mainmenu{
display: none;
}
#buttons-container a.close-menu-primary{
display: none;
}
/* Display Menu Items */
#wrap:target .navigation #mainmenu{
display: block;
}
#buttons-container a.close-menu-primary{
display: none;
}
/* Hide Open Toggle Link */
#wrap:target #buttons-container a.open-menu-primary{
display: none;
}
/* Show Close Toggle Link */
#wrap:target #buttons-container a.close-menu-primary{
display: block;
}
HTML代码:
<div id="wrap">
<div class="header" id="header">
<div id="buttons-container" >
<a href="#wrap" class="open-menu-primary"><span>menu</a>
<a href="#" class="close-menu-primary"><span>close</span></a>
</div>
</div>
<nav class="navigation" id="navigation">
<ul class="mainmenu" id="mainmenu">
<li><a href="">main1</a></li>
<li id="hover-sub"><a href="javascript:void(0)">main2</a>
<ul id="submenu">
<li class="menu-item"><a href="#">sub1</a></li>
<li class="menu-item"><a href="#">sub2</a></li>
</ul>
</li>
<li><a href="" class="con">main3</a></li>
</ul>
</nav>
</div>
这是一个Fiddlelink