我是新手&我正在尝试制作我提到的导航。我在这里得到了一个教程http://www.mattboldt.com/building-great-navbars-toolbars-display-table/。不幸的是,它使用了我不知道的SCSS,而不是纯CSS。
我的代码 - http://codepen.io/rsing4dev/pen/LNqvVN
<p>Please refer to my codepen for the code.
I don't want to paste too much here & make the question big.
问题 - 当我将鼠标悬停在“服务”菜单上时,其子项或子菜单应显示为垂直列表,而不是水平列表。为什么不发生这种情况,我该如何解决?
谢谢!
PS - 我更喜欢不使用内联块和浮动而不是制作我的导航菜单。
答案 0 :(得分:1)
内联块通常是最简单的方法。
内联块和表格单元格之间的主要区别在于您调整浏览器大小。如果您使用块调整浏览器的大小,那么它们将落在另一个下面 - 因为默认情况下表格单元格不会。
此处示例(调整输出窗口大小):
https://jsfiddle.net/dv7k720s/
您还可以查看haltersweb提供的解决方案以使用表格。
否则我也会按照w3schools教程快速重新制作你的菜单,你可以看看并尝试理解。
https://jsfiddle.net/LmLbefts/1/
<ul>
<li class="dropdown">
<a href="#" class="dropbtn">Services</a>
<div class="dropdown-content">
<a href="#">Our Services</a>
<a href="#">Client List</a>
</div>
</li>
<li><a href="#resources">Resources</a></li>
<li><a href="#contact">Contact Us</a></li>
<li><a href="#company">Company</a></li>
<li><a href="#">
<form class="searchbar" action="http://www.google.com/search" name="f" target="_blank" style="margin: 0px">
<input type="hidden" name="any selected">
<input size="10" name="q" value="" class="searchform" placeholder="Web Search">
<input type="submit" value="Go!" name="btnG" class="searchbutton"><br>
</form>
</a></li>
</ul>
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-image: linear-gradient(to top, rgba(9, 9, 44, 0.9), rgba(82, 82, 115, 0.9));
line-height: 2em;
text-align: center;
vertical-align: middle;
}
li {
display:inline;
margin-left:2%;
margin-right:2%;
}
li a, .dropbtn {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover, .dropdown:hover .dropbtn {
/* To edit if you want a hover color */
/*background-color: red;*/
}
li.dropdown {
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.dropdown-content a:hover {background-image: linear-gradient(to top, rgba(9, 9, 44, 0.9), rgba(82, 82, 115, 0.9)); color:white;}
.dropdown:hover .dropdown-content {
display: block;
}
在这里使用基本的CSS,W3School有一个简单的教程,解释了如何创建垂直或水平导航栏:
链接:http://www.w3schools.com/css/css_navbar.asp
这里还有一个关于下拉菜单如何工作的教程:
答案 1 :(得分:1)
(参见仍在使用css表格显示的更新代码(如下)。)
您遇到的问题是:
1)您将top nav和subnav分配为表格,将所有单元格分配为table-cell。您只需要topnav及其列表项。
3)你需要能够让你的subnav“逃离”top-nav容器的范围,否则容器会增长到包含sub-nav。
看看我下面的例子,看看我是如何使用表格显示的,另外还使用绝对位置(与位置相对的父级 - 非常重要)来放置我的子空间。
#nav {
background-image: linear-gradient(to top, rgba(9, 9, 44, 0.9), rgba(82, 82, 115, 0.9));
line-height: 2em;
width: 100%;
}
#nav ul {
list-style: none;
padding: 0;
margin: 0;
}
.main-nav-menu {
display: table;
width: 100%;
}
.main-nav-menu-item {
display: table-cell;
padding: 0;
margin: 0;
text-align: center;
width: 20%;
border-right: 1px solid #131332;
position: relative;
}
.sub-nav-menu {
background-color: gray;
left: 0;
position: absolute;
width: 100%;
}
#nav a {
text-decoration: none;
color: #CFCFE0;
}
/*
CSS For the submenus of the main navigation menu.
*/
.sub-nav-menu {
display: none;
}
.main-nav-menu:hover .sub-nav-menu {
display: block;
}
<div id="nav">
<ul class="main-nav-menu">
<li class="main-nav-menu-item">
<a href="#Services" class="nav-tab selected">Services</a>
<ul class="sub-nav-menu">
<li class="sub-nav-menu-item"><a href="#our-services">Our Services</a></li>
<li class="sub-nav-menu-item"><a href="#client-list">Client List</a></li>
</ul>
</li>
<li class="main-nav-menu-item">
<a href="#Resources" class="nav-tab">Resources</a>
<ul>
<li></li>
<li></li>
</ul>
</li>
<li class="main-nav-menu-item">
<a href="#Contact-Us" class="nav-tab">Contact Us</a>
<ul>
<li></li>
</ul>
</li>
<li class="main-nav-menu-item">
<a href="#Company" class="nav-tab">Company</a>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</li>
<li class="main-nav-menu-item">
<form class="searchbar" action="http://www.google.com/search" name="f" target="_blank" style="margin: 0px">
<input type="hidden" name="any selected">
<input size="10" name="q" value="" class="searchform" placeholder="Web Search">
<input type="submit" value="Go!" name="btnG" class="searchbutton"><br>
</form>
</li>
</ul>
</div>