如何使下拉菜单与导航中每个 <li> 的宽度相同?
How to make dropdown menu same width as each <li> in nav?
我正在尝试创建一个下拉菜单,但出于某种原因,我无法找到使它的宽度与导航中每个 <li>
相同的方法。
/* GENERAL STYLES */
* {
margin: 0px;
padding: 0px;
}
body {
background-image: url("../img/paven.png");
}
@font-face {
font-family: "nevis";
src: url("../fonts/nevis.ttf");
}
/* MENU */
nav {
width: 100%;
height: 40px;
background-color: #333;
}
nav > div {
width: 1000px;
margin: 0px auto;
}
nav > div > ul {
float: left;
}
nav > div > ul > li {
list-style: none;
height: 40px;
padding-left: 20px;
padding-right: 20px;
border-right: 1px solid gray;
}
nav > div > ul > li > a {
display: block;
height: 40px;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
color: white;
line-height: 35px;
}
nav > div > ul > li:hover {
cursor: pointer;
background-color: #70B231;
}
/* SUBMENU */
nav > div > ul > li > ul {
position: absolute;
width: 100px;
background-color: #70B231;
}
<!-- MENU -->
<nav>
<div>
<ul>
<li><a href="#">Home</a></li>
</ul>
<ul>
<li><a href="#">Content</a></li>
</ul>
<ul>
<li><a href="#">Requirements</a></li>
</ul>
<ul>
<li>
<a href="#">Languages</a>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">HTML</a></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="#">Frameworks</a>
<ul>
<li><a href="#">Less</a></li>
<li><a href="#">Sass</a></li>
<li><a href="#">Flexbox</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#">Projects</a></li>
</ul>
<ul>
<li><a href="#">Instructor</a></li>
</ul>
<ul>
<li><a href="#">Reviews</a></li>
</ul>
<ul>
<li><a href="#">Blog</a></li>
</ul>
<ul>
<li><a href="#">Contact</a></li>
</ul>
</div>
</nav>
如您所见,我已尝试为每个 <ul>
设置宽度,但它们与它们所属的 <li>
没有很好地对齐:
我想实现这样的目标:
给你,我编辑了一些东西。
我删除了主菜单 li
元素上的 padding
并将其放在 a
上,这样子菜单就可以占据整个宽度。
已将 postition: relative;
添加到主菜单 li
,因此子菜单 postition: absolute
将相对于主菜单项
使用 width 100%
使子菜单全宽并删除列表样式。
在子菜单中添加了一些 padding
li
/* GENERAL STYLES */
* {
margin: 0px;
padding: 0px;
}
body {
background-image: url("../img/paven.png");
}
@font-face {
font-family: "nevis";
src: url("../fonts/nevis.ttf");
}
/* MENU */
nav {
width: 100%;
height: 40px;
background-color: #333;
}
nav>div {
width: 1000px;
margin: 0px auto;
}
nav>div>ul {
float: left;
}
nav>div>ul>li {
list-style: none;
height: 40px;
position: relative;
border-right: 1px solid gray;
}
nav>div>ul>li>a {
display: block;
height: 40px;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
color: white;
line-height: 35px;
padding-left: 20px;
padding-right: 20px;
}
nav>div>ul>li:hover {
cursor: pointer;
background-color: #70B231;
}
/* SUBMENU */
nav>div>ul>li>ul {
position: absolute;
width: 100%;
background-color: #70B231;
list-style: none;
}
nav>div>ul>li>ul>li {
padding: 3px 10px;
}
<!-- MENU -->
<nav>
<div>
<ul>
<li><a href="#">Home</a></li>
</ul>
<ul>
<li><a href="#">Content</a></li>
</ul>
<ul>
<li><a href="#">Requirements</a></li>
</ul>
<ul>
<li>
<a href="#">Languages</a>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">HTML</a></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="#">Frameworks</a>
<ul>
<li><a href="#">Less</a></li>
<li><a href="#">Sass</a></li>
<li><a href="#">Flexbox</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#">Projects</a></li>
</ul>
<ul>
<li><a href="#">Instructor</a></li>
</ul>
<ul>
<li><a href="#">Reviews</a></li>
</ul>
<ul>
<li><a href="#">Blog</a></li>
</ul>
<ul>
<li><a href="#">Contact</a></li>
</ul>
</div>
</nav>
我正在尝试创建一个下拉菜单,但出于某种原因,我无法找到使它的宽度与导航中每个 <li>
相同的方法。
/* GENERAL STYLES */
* {
margin: 0px;
padding: 0px;
}
body {
background-image: url("../img/paven.png");
}
@font-face {
font-family: "nevis";
src: url("../fonts/nevis.ttf");
}
/* MENU */
nav {
width: 100%;
height: 40px;
background-color: #333;
}
nav > div {
width: 1000px;
margin: 0px auto;
}
nav > div > ul {
float: left;
}
nav > div > ul > li {
list-style: none;
height: 40px;
padding-left: 20px;
padding-right: 20px;
border-right: 1px solid gray;
}
nav > div > ul > li > a {
display: block;
height: 40px;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
color: white;
line-height: 35px;
}
nav > div > ul > li:hover {
cursor: pointer;
background-color: #70B231;
}
/* SUBMENU */
nav > div > ul > li > ul {
position: absolute;
width: 100px;
background-color: #70B231;
}
<!-- MENU -->
<nav>
<div>
<ul>
<li><a href="#">Home</a></li>
</ul>
<ul>
<li><a href="#">Content</a></li>
</ul>
<ul>
<li><a href="#">Requirements</a></li>
</ul>
<ul>
<li>
<a href="#">Languages</a>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">HTML</a></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="#">Frameworks</a>
<ul>
<li><a href="#">Less</a></li>
<li><a href="#">Sass</a></li>
<li><a href="#">Flexbox</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#">Projects</a></li>
</ul>
<ul>
<li><a href="#">Instructor</a></li>
</ul>
<ul>
<li><a href="#">Reviews</a></li>
</ul>
<ul>
<li><a href="#">Blog</a></li>
</ul>
<ul>
<li><a href="#">Contact</a></li>
</ul>
</div>
</nav>
如您所见,我已尝试为每个 <ul>
设置宽度,但它们与它们所属的 <li>
没有很好地对齐:
我想实现这样的目标:
给你,我编辑了一些东西。
我删除了主菜单 li
元素上的 padding
并将其放在 a
上,这样子菜单就可以占据整个宽度。
已将 postition: relative;
添加到主菜单 li
,因此子菜单 postition: absolute
将相对于主菜单项
使用 width 100%
使子菜单全宽并删除列表样式。
在子菜单中添加了一些 padding
li
/* GENERAL STYLES */
* {
margin: 0px;
padding: 0px;
}
body {
background-image: url("../img/paven.png");
}
@font-face {
font-family: "nevis";
src: url("../fonts/nevis.ttf");
}
/* MENU */
nav {
width: 100%;
height: 40px;
background-color: #333;
}
nav>div {
width: 1000px;
margin: 0px auto;
}
nav>div>ul {
float: left;
}
nav>div>ul>li {
list-style: none;
height: 40px;
position: relative;
border-right: 1px solid gray;
}
nav>div>ul>li>a {
display: block;
height: 40px;
text-decoration: none;
font-family: Arial, Helvetica, sans-serif;
font-size: 15px;
color: white;
line-height: 35px;
padding-left: 20px;
padding-right: 20px;
}
nav>div>ul>li:hover {
cursor: pointer;
background-color: #70B231;
}
/* SUBMENU */
nav>div>ul>li>ul {
position: absolute;
width: 100%;
background-color: #70B231;
list-style: none;
}
nav>div>ul>li>ul>li {
padding: 3px 10px;
}
<!-- MENU -->
<nav>
<div>
<ul>
<li><a href="#">Home</a></li>
</ul>
<ul>
<li><a href="#">Content</a></li>
</ul>
<ul>
<li><a href="#">Requirements</a></li>
</ul>
<ul>
<li>
<a href="#">Languages</a>
<ul>
<li><a href="#">JavaScript</a></li>
<li><a href="#">CSS</a></li>
<li><a href="#">HTML</a></li>
</ul>
</li>
</ul>
<ul>
<li>
<a href="#">Frameworks</a>
<ul>
<li><a href="#">Less</a></li>
<li><a href="#">Sass</a></li>
<li><a href="#">Flexbox</a></li>
</ul>
</li>
</ul>
<ul>
<li><a href="#">Projects</a></li>
</ul>
<ul>
<li><a href="#">Instructor</a></li>
</ul>
<ul>
<li><a href="#">Reviews</a></li>
</ul>
<ul>
<li><a href="#">Blog</a></li>
</ul>
<ul>
<li><a href="#">Contact</a></li>
</ul>
</div>
</nav>