我有一个垂直显示的下拉菜单。如何将其更改为水平显示?
我的css代码:
.menu-toggle{
display:block;
padding:10px;
margin:20px 0 0;
background:#666;
color:#fff;
cursor:pointer;
text-transform:uppercase;
font-size:20px;
}
.menu-toggle.toggled-on{
background:#0099ff;
}
.srt-menu{
display:none;
}
.srt-menu.toggled-on{
display:block;
position:relative;
z-index:10;
}
.srt-menu{
clear:both;
margin-bottom:60px;
}
.srt-menu li a {
background:#dadada;
display:block;
margin:1px 0;
padding:10px;
text-decoration:none;
}
.srt-menu li a:hover{
background:#0099ff;
color:#fff;
}
.srt-menu li li a {
background:#e8e8e8;
padding-left:40px;
}
.srt-menu li li li a {
background:#efefef;
padding-left:80px;
}
.menu-toggle{display:none;}
#menu-main-navigation{display:block;}
.srt-menu, .srt-menu * {
margin: 0;
padding: 0;
list-style: none;
}
.srt-menu ul {
position: absolute;
display:none;
width: 12em;
}
.srt-menu ul li {
width: 100%;
}
.srt-menu li:hover {
visibility: inherit;
}
.srt-menu li {
position: relative;
margin-left:1px;
}
.srt-menu li li {
margin-left:0px;
}
.srt-menu a {
display: block;
position: relative;
}
.srt-menu li:hover ul,
.srt-menu li.sfHover ul {
display:block;
left: 0;
top: 45px; /* match top ul list item height */
z-index: 99;
-webkit-box-shadow: 2px 3px 2px 0px rgba(00, 00, 00, .3);
}
ul.srt-menu li:hover li ul,
ul.srt-menu li.sfHover li ul {
top: -999em;
}
ul.srt-menu li li:hover ul,
ul.srt-menu li li.sfHover ul {
left: 12em;
top: 0;
}
ul.srt-menu li li:hover li ul,
ul.srt-menu li li.sfHover li ul {
top: -999em;
}
ul.srt-menu li li li:hover ul,
ul.srt-menu li li li.sfHover ul {
left: 10em; /* match ul width */
top: 0;
}
我的HTML代码:
<nav id="topnav" role="navigation">
<div class="menu-toggle">Menu</div>
<ul class="srt-menu" id="menu-main-navigation">
<li>
<a>Contact</a>
<ul>
<li><a href="#">Advertise with Us</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</li>
</ul>
</nav>
感谢您的帮助。
答案 0 :(得分:1)
只需为li元素添加css这两个属性:
float:left;
margin-right:30px;
答案 1 :(得分:1)
一种选择是删除width: 100%;
并将display: inline-block;
添加到.srt-menu ul li
。
修改强>
您提供的新代码需要进行其他更改。从width: 12em
移除.srt-menu ul
这将阻止子li
换行。{/ p>
.menu-toggle{
display:block;
padding:10px;
margin:20px 0 0;
background:#666;
color:#fff;
cursor:pointer;
text-transform:uppercase;
font-size:20px;
}
.menu-toggle.toggled-on{
background:#0099ff;
}
.srt-menu{
display:none;
background-color: #dadada;
}
.srt-menu.toggled-on{
display:block;
position:relative;
z-index:10;
}
.srt-menu{
clear:both;
margin-bottom:60px;
}
.srt-menu li a {
background:#dadada;
display:block;
margin:1px 0;
padding:10px;
text-decoration:none;
}
.srt-menu li a:hover {
background:#0099ff;
color:#fff;
}
.srt-menu li li a {
background:#e8e8e8;
/*padding-left:40px; Removed to tidy up output*/
}
.srt-menu li li li a {
background:#efefef;
padding-left:80px;
}
.menu-toggle {
display:none;
}
#menu-main-navigation {
display:block;
}
.srt-menu, .srt-menu * {
margin: 0;
padding: 0;
list-style: none;
}
.srt-menu ul {
left: 0;
position: absolute;
display: none;
white-space: nowrap; /*Add this to stop the li from wrapping onto new lines*/
/*width: 12em; Remove this to stop the list items from wrapping*/
}
.srt-menu ul li {
display: inline-block;
/*width: 100%;*/
}
.srt-menu li:hover {
visibility: inherit;
}
.srt-menu li {
display: inline-block; /*Add this to make parent li display inline*/
position: relative;
}
.srt-menu li li {
margin-left:0px;
}
.srt-menu a {
display: block;
position: relative;
}
.srt-menu li:hover ul,
.srt-menu li.sfHover ul {
display: block;
left: 0;
/*top: 45px; removed to stop menu from disappearing when moving mouse to it*/
z-index: 99;
-webkit-box-shadow: 2px 3px 2px 0px rgba(00, 00, 00, .3);
}
ul.srt-menu li:hover li ul, ul.srt-menu li.sfHover li ul {
top: -999em;
}
ul.srt-menu li li:hover ul, ul.srt-menu li li.sfHover ul {
left: 12em;
top: 0;
}
ul.srt-menu li li:hover li ul, ul.srt-menu li li.sfHover li ul {
top: -999em;
}
ul.srt-menu li li li:hover ul, ul.srt-menu li li li.sfHover ul {
left: 10em; /* match ul width */
top: 0;
}
<nav id="topnav" role="navigation">
<div class="menu-toggle">Menu</div>
<ul class="srt-menu" id="menu-main-navigation">
<li>
<a href="#">Contact</a>
<ul>
<li><a href="#">Advertise with Us</a></li>
<li><a href="#">Contact Us</a></li>
</ul>
</li>
<li><a href="#">More</a></li>
</ul>
</nav>
答案 2 :(得分:0)
答案:
我认为这会有所帮助。
nav ul li ul li {
float: right;
}
答案 3 :(得分:0)
更新此CSS 和演示https://jsfiddle.net/hzorn1m5/1/
.menu-toggle{display:none;}
#menu-main-navigation{display:block;}
.srt-menu, .srt-menu * {
margin: 0;
padding: 0;
list-style: none;
}
.srt-menu ul {
position: absolute;
display:none;
width: 12em;
}
.srt-menu ul li {
width: 100%;
}
.srt-menu li:hover {
visibility: inherit;
}
.srt-menu li {
position: relative;
margin-left:1px;
}
.srt-menu li li {
margin-left:0px;
}
.srt-menu a {
display: block;
position: relative;
}
.srt-menu li:hover ul,
.srt-menu li.sfHover ul {
display:block;
left: 0;
top: 45px; /* match top ul list item height */
z-index: 99;
-webkit-box-shadow: 2px 3px 2px 0px rgba(00, 00, 00, .3);
}
ul.srt-menu li:hover li ul,
ul.srt-menu li.sfHover li ul {
top: -999em;
}
ul.srt-menu li li:hover ul,
ul.srt-menu li li.sfHover ul {
left: 12em;
top: 0;
}
ul.srt-menu li li:hover li ul,
ul.srt-menu li li.sfHover li ul {
top: -999em;
}
ul.srt-menu li li li:hover ul,
ul.srt-menu li li li.sfHover ul {
left: 10em; /* match ul width */
top: 0;
}
ul.srt-menu li:hover ul{
width: 600px;
}
ul.srt-menu li ul li{
display: inline-block !important;
width: 48%;
}
&#13;