大家好,这对许多人来说似乎很容易,但我就是不明白为什么当我单击单选按钮显示隐藏的侧导航时
所以我只使用html和css创建侧导航,我发现“我可以使用”单选按钮作为显示和隐藏内容的一种方式。我完成了显示和隐藏部分,但是我决定放一个
下面是我的代码片段
null
*{
padding: 0;
margin: 0;
}
.nav {
display: none;
height: 100%;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: #111;
overflow-x: hidden;
transition: 5s ease-in;
padding-top: 60px;
color: white;
}
#show:checked ~ .nav {
display: block;
z-index: 1;
width: 250px;
-webkit-transition: all 1s linear;
-moz-transition: all 1s linear;
-ms-transition: all 1s linear;
-o-transition: all 1s linear;
transition: all 1s linear;
}
#close:checked ~ .nav {
display: none;
background: rgb( 40, 44, 47 );
opacity: 0.7;
-webkit-transition: all 1s linear;
-moz-transition: all 1s linear;
-ms-transition: all 1s linear;
-o-transition: all 1s linear;
transition: all 1s linear;
}
<header class="header">
<input type="radio" name="side" id="show">show
<nav class="nav">
<ul>
<input type="radio" name="side" id="close">close
<li>Home</li>
<li>About</li>
<li>Task sheets</li>
<li>Poftfolio</li>
<li>Contacts</li>
</ul>
</nav>
</header>
<h1>Hello</h1>
null
没有转换,因为您在隐藏元素时对其使用
此时DOM中不存在该元素。然后给它一个宽度
null
*{
padding: 0;
margin: 0;
}
.header {
transition: 2s ease-in-out all;
}
.nav {
height: 100%;
width: 0;
position: fixed;
z-index: 1;
top: 0;
left: 0;
background-color: #111;
overflow-x: hidden;
transition: all 1s ease-in-out;
padding-top: 60px;
color: white;
}
#show:checked ~ .nav {
display: block;
z-index: 1;
width: 250px;
}
#close:checked ~ .nav {
display: none;
background: rgb( 40, 44, 47 );
opacity: 0.7;
}
<header class="header">
<input type="radio" name="side" id="show">show
<nav class="nav">
<ul>
<input type="radio" name="side" id="close">close
<li>Home</li>
<li>About</li>
<li>Task sheets</li>
<li>Poftfolio</li>
<li>Contacts</li>
</ul>
</nav>
</header>
<h1>Hello</h1>
它实际上并不起作用,因为您使用的
此外,为了防止dbl单击,可以使用
我为你创建了一个小代码笔,让你真正了解正在发生的事情。https://codepen.io/snoh666/pen/vwkrber
试试看:
null
*{
padding: 0;
margin: 0;
}
.nav {
height: 100%;
width: 250px;
position: fixed;
z-index: 1;
top: 0;
left: -100%;
background-color: #111;
overflow-x: hidden;
-webkit-transition: 1s;
-moz-transition: 1s;
-ms-transition: 1s;
-o-transition: 1s;
transition: 1s;
padding-top: 60px;
color: white;
}
#show:checked ~ .nav {
left: 0;
z-index: 1;
}
<header class="header">
<input type="radio" name="side" id="show">show
<nav class="nav">
<ul>
<input type="radio" name="side" id="close">close
<li>Home</li>
<li>About</li>
<li>Task sheets</li>
<li>Poftfolio</li>
<li>Contacts</li>
</ul>
</nav>
</header>
<h1>Hello</h1>