【发布时间】:2021-02-01 06:08:02
【问题描述】:
我正在尝试在菜单悬停时创建多列子菜单。
为了实现这一点,我使用了 column-count: auto; ,列宽:150px;和列填充:自动;高度固定。
但拆分列的宽度没有扩大。在示例中,白色背景不根据自动列宽进行缩放。当我使用列数时:2;由于硬编码整数工作正常,但我不想使用硬编码整数,它是基于高度的多列。
这里是小提琴链接https://jsfiddle.net/1cga0jro/2/
为什么这不扩大宽度,任何帮助,任何建议?
HTML:
.nav {
background: brown;
/*@media only screen and (max-width: 1087px) {
display: none;
}*/
}
.nav ul.main_navigation {
list-style: none;
margin: 0;
max-width: 1204px;
position: relative;
}
.nav ul.main_navigation a {
text-decoration: none;
}
.nav ul.main_navigation .sub_menu {
list-style: none;
padding: 0;
}
.nav ul.main_navigation .sub_menu li {
font-size: 15px;
font-weight: bold;
line-height: 16px;
letter-spacing: 0.3px;
max-width: 213px;
}
.nav ul.main_navigation .sub_menu li .sub_menu {
list-style: none;
padding: 5px 0 18px;
}
.nav ul.main_navigation .sub_menu li .sub_menu a {
font-size: 12px;
line-height: 15px;
font-weight: normal;
color: #000;
padding-bottom: 5px;
display: block;
}
.nav ul.main_navigation>li {
display: inline-block;
font-size: 16px;
font-weight: bold;
line-height: normal;
letter-spacing: 0.4px;
padding: 30px 10px;
margin: 0 5px;
}
.nav ul.main_navigation>li>a {
color: #fff;
}
/*.nav ul.main_navigation>li>.main_sub_menu {
display: none;
}*/
.nav ul.main_navigation>li:hover {
background: #ededed;
}
.nav ul.main_navigation>li:hover>a {
color: #000;
}
.nav ul.main_navigation>li:hover .main_sub_menu {
display: block;
}
.nav ul.main_navigation>li>.main_sub_menu {
position: absolute;
top: 81px;
list-style: none;
max-width: 999px;
padding: 0;
background: #ededed;
z-index: 9;
}
.nav ul.main_navigation>li>.main_sub_menu .grid {
padding: 20px;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
max-height: 250px;
}
.column-auto {
-webkit-column-count: auto;
-moz-column-count: auto;
column-count: auto;
-webkit-column-fill: auto;
-moz-column-fill: auto;
column-fill: auto;
-webkit-column-width: 150px;
-moz-column-width: 150px;
column-width: 150px;
}
.nav ul.main_navigation>li>.main_sub_menu .grid .column:last-child {
margin-right: 0;
}
.nav ul.main_navigation>li>.main_sub_menu .grid .col-1,
.nav ul.main_navigation>li>.main_sub_menu .grid .col-2,
.nav ul.main_navigation>li>.main_sub_menu .grid .col-3 {
padding: 10px 10px 0;
background: #fff;
border-radius: 5px;
margin-right: 10px;
}
.center {
left: 50%;
-webkit-transform: translateX(-50%);
-ms-transform: translateX(-50%);
transform: translateX(-50%);
}
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
<div class="nav">
<ul class="main_navigation">
<li><span href="">PRODUCT</span>
<ul class="main_sub_menu sub_menu">
<div class="grid">
<div class="column col-1">
<li><span>Mobile</span>
<ul class="sub_menu">
<li><a href="">Mobile 1</a></li>
<li><a href="">Mobile 2</a></li>
<li><a href="">Mobile 3</a></li>
</ul>
</li>
</div>
<div class="column col-2 column-auto">
<li><span>Mobile</span>
<ul class="sub_menu">
<li><a href="">Mobile 1</a></li>
<li><a href="">Mobile 2</a></li>
<li><a href="">Mobile 3</a></li>
</ul>
</li>
<li><span>Mobile</span>
<ul class="sub_menu">
<li><a href="">Mobile 1</a></li>
<li><a href="">Mobile 2</a></li>
<li><a href="">Mobile 3</a></li>
</ul>
</li>
<li><span>Mobile</span>
<ul class="sub_menu">
<li><a href="">Mobile 1</a></li>
<li><a href="">Mobile 2</a></li>
<li><a href="">Mobile 3</a></li>
</ul>
</li>
</div>
</div>
</ul>
</li>
</ul>
</div>
</body>
</html>
【问题讨论】:
-
你是
div,就在ul之后,你不应该那样做。 -
@MaxiGui 我尝试将
div更改为ul和li但仍然存在问题....这是小提琴jsfiddle.net/1cga0jro/3