[英]Hide one div on hover of another div
I'm creating a sidebar navigation. 我正在创建侧边栏导航。 I want the circles (.circle-indicator) to disappear when the sidebar (.nav-sidebar) expands on hover.
我希望当边栏(.nav-sidebar)悬停扩展时,圆圈(.circle-indicator)消失。 Can this be done with CSS or do I need to use javascript?
可以使用CSS完成此操作,还是需要使用JavaScript? How would I do this?
我该怎么做?
Here's the code for the page 这是页面的代码
body { margin:-20px; } .nav-sidebar { position:fixed; width:10px; background-color:#000; color:#fff; height: 100vh; padding: 100px 20px 0 20px; white-space: nowrap; } .nav-sidebar:hover { width:300px; transition-duration:1s; } .nav-sidebar a { color:#fff; text-decoration: none; font-size: 2em; } .nav-sidebar ul { list-style:none; } .nav-sidebar sidebar-links li { padding-bottom:1em; } .nav-sidebar .circle-indicator { position:fixed; left:-33px; top:40vh; } .nav-sidebar .circle-indicator ul li { margin-bottom:1em; display:block; border:1px solid #fff; border-radius: 10px; width:10px; height:10px; padding:0; } .nav-sidebar .circle-indicator ul li a:active { background-color:#fff; }
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"/> </head> <body> <div class="nav-sidebar"> <div class="circle-indicator"> <ul> <li><a href="#" alt="Item 1"></a></li> <li><a href="#" alt="Item 2"></a></li> <li><a href="#" alt="Item 3"></a></li> <li><a href="#" alt="Item 4"></a></li> <li><a href="#" alt="Item 5"></a></li> </ul> </div> <!-- end circle-indicator --> <div class="sidebar-links"> <ul> <li><a href="#" alt="Item 1">Item 1</a></li> <li><a href="#" alt="Item 2">Item 2</a></li> <li><a href="#" alt="Item 3">Item 3</a></li> <li><a href="#" alt="Item 4">Item 4</a></li> <li><a href="#" alt="Item 5">Item 5</a></li> </ul> </div> <!-- end sidebar-links --> </div> <!-- end nav-sidebar --> </body> </html>
Use 采用
.nav-sidebar:hover .circle-indicator{
display:none;
}
body { margin:-20px; } .nav-sidebar { position:fixed; width:10px; background-color:#000; color:#fff; height: 100vh; padding: 100px 20px 0 20px; white-space: nowrap; } .nav-sidebar:hover { width:300px; transition-duration:1s; } .nav-sidebar a { color:#fff; text-decoration: none; font-size: 2em; } .nav-sidebar ul { list-style:none; } .nav-sidebar sidebar-links li { padding-bottom:1em; } .nav-sidebar .circle-indicator { position:fixed; left:-33px; top:40vh; } .nav-sidebar .circle-indicator ul li { margin-bottom:1em; display:block; border:1px solid #fff; border-radius: 10px; width:10px; height:10px; padding:0; } .nav-sidebar .circle-indicator ul li a:active { background-color:#fff; } .nav-sidebar:hover .circle-indicator{ display:none; }
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"/> </head> <body> <div class="nav-sidebar"> <div class="circle-indicator"> <ul> <li><a href="#" alt="Item 1"></a></li> <li><a href="#" alt="Item 2"></a></li> <li><a href="#" alt="Item 3"></a></li> <li><a href="#" alt="Item 4"></a></li> <li><a href="#" alt="Item 5"></a></li> </ul> </div> <!-- end circle-indicator --> <div class="sidebar-links"> <ul> <li><a href="#" alt="Item 1">Item 1</a></li> <li><a href="#" alt="Item 2">Item 2</a></li> <li><a href="#" alt="Item 3">Item 3</a></li> <li><a href="#" alt="Item 4">Item 4</a></li> <li><a href="#" alt="Item 5">Item 5</a></li> </ul> </div> <!-- end sidebar-links --> </div> <!-- end nav-sidebar --> </body> </html>
This rule will do that 这条规则可以做到
.nav-sidebar:hover .circle-indicator {
display: none;
}
Or with a transition 或过渡
.nav-sidebar:hover .circle-indicator {
opacity: 0;
transition: opacity 0.5s;
}
Sample snippet 样本片段
body { margin:-20px; } .nav-sidebar { position:fixed; width:10px; background-color:#000; color:#fff; height: 100vh; padding: 100px 20px 0 20px; white-space: nowrap; } .nav-sidebar:hover { width:300px; transition-duration:1s; } .nav-sidebar:hover .circle-indicator { opacity: 0; transition: opacity 0.5s; } .nav-sidebar a { color:#fff; text-decoration: none; font-size: 2em; } .nav-sidebar ul { list-style:none; } .nav-sidebar sidebar-links li { padding-bottom:1em; } .nav-sidebar .circle-indicator { position:fixed; left:-33px; top:40vh; } .nav-sidebar .circle-indicator ul li { margin-bottom:1em; display:block; border:1px solid #fff; border-radius: 10px; width:10px; height:10px; padding:0; } .nav-sidebar .circle-indicator ul li a:active { background-color:#fff; }
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"/> </head> <body> <div class="nav-sidebar"> <div class="circle-indicator"> <ul> <li><a href="#" alt="Item 1"></a></li> <li><a href="#" alt="Item 2"></a></li> <li><a href="#" alt="Item 3"></a></li> <li><a href="#" alt="Item 4"></a></li> <li><a href="#" alt="Item 5"></a></li> </ul> </div> <!-- end circle-indicator --> <div class="sidebar-links"> <ul> <li><a href="#" alt="Item 1">Item 1</a></li> <li><a href="#" alt="Item 2">Item 2</a></li> <li><a href="#" alt="Item 3">Item 3</a></li> <li><a href="#" alt="Item 4">Item 4</a></li> <li><a href="#" alt="Item 5">Item 5</a></li> </ul> </div> <!-- end sidebar-links --> </div> <!-- end nav-sidebar --> </body> </html>
Good answers by LGSon and Brad, but I'd do it with opacity
and a transition
. LGSon和Brad给出了很好的答案,但我会做到
opacity
和transition
。 You cannot transition dispay: none
您无法过渡
dispay: none
body { margin:-20px; } .nav-sidebar { position:fixed; width:10px; background-color:#000; color:#fff; height: 100vh; padding: 100px 20px 0 20px; white-space: nowrap; } .nav-sidebar:hover { width:300px; transition-duration:1s; } .nav-sidebar a { color:#fff; text-decoration: none; font-size: 2em; } .nav-sidebar ul { list-style:none; } .nav-sidebar sidebar-links li { padding-bottom:1em; } .nav-sidebar .circle-indicator { position:fixed; left:-33px; top:40vh; transition: opacity 1s; } .nav-sidebar .circle-indicator ul li { margin-bottom:1em; display:block; border:1px solid #fff; border-radius: 10px; width:10px; height:10px; padding:0; } .nav-sidebar .circle-indicator ul li a:active { background-color:#fff; } .nav-sidebar:hover .circle-indicator { opacity: 0; }
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"/> </head> <body> <div class="nav-sidebar"> <div class="circle-indicator"> <ul> <li><a href="#" alt="Item 1"></a></li> <li><a href="#" alt="Item 2"></a></li> <li><a href="#" alt="Item 3"></a></li> <li><a href="#" alt="Item 4"></a></li> <li><a href="#" alt="Item 5"></a></li> </ul> </div> <!-- end circle-indicator --> <div class="sidebar-links"> <ul> <li><a href="#" alt="Item 1">Item 1</a></li> <li><a href="#" alt="Item 2">Item 2</a></li> <li><a href="#" alt="Item 3">Item 3</a></li> <li><a href="#" alt="Item 4">Item 4</a></li> <li><a href="#" alt="Item 5">Item 5</a></li> </ul> </div> <!-- end sidebar-links --> </div> <!-- end nav-sidebar --> </body> </html>
You can create this effect with the following styles 您可以使用以下样式创建此效果
<style>
.nav-sidebar:hover .circle-indicator {
display:none;
}
</style>
body { margin:-20px; } .nav-sidebar { position:fixed; width:10px; background-color:#000; color:#fff; height: 100vh; padding: 100px 20px 0 20px; white-space: nowrap; } .nav-sidebar:hover { width:300px; transition-duration:1s; } .nav-sidebar a { color:#fff; text-decoration: none; font-size: 2em; } .nav-sidebar ul { list-style:none; } .nav-sidebar sidebar-links li { padding-bottom:1em; } .nav-sidebar .circle-indicator { position:fixed; left:-33px; top:40vh; } .nav-sidebar .circle-indicator ul li { margin-bottom:1em; display:block; border:1px solid #fff; border-radius: 10px; width:10px; height:10px; padding:0; } .nav-sidebar .circle-indicator ul li a:active { background-color:#fff; } .nav-sidebar:hover .circle-indicator { display:none; }
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1"/> </head> <body> <div class="nav-sidebar"> <div class="circle-indicator"> <ul> <li><a href="#" alt="Item 1"></a></li> <li><a href="#" alt="Item 2"></a></li> <li><a href="#" alt="Item 3"></a></li> <li><a href="#" alt="Item 4"></a></li> <li><a href="#" alt="Item 5"></a></li> </ul> </div> <!-- end circle-indicator --> <div class="sidebar-links"> <ul> <li><a href="#" alt="Item 1">Item 1</a></li> <li><a href="#" alt="Item 2">Item 2</a></li> <li><a href="#" alt="Item 3">Item 3</a></li> <li><a href="#" alt="Item 4">Item 4</a></li> <li><a href="#" alt="Item 5">Item 5</a></li> </ul> </div> <!-- end sidebar-links --> </div> <!-- end nav-sidebar --> </body> </html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.