У меня есть панель навигации, где длина символов каждого элемента списка существенно варьируется. Я предпочитаю визуальный эффект оставления ширины на авто и добавления отступов для определения одинаковой ширины для каждого элемента.
Я хочу, чтобы мои раскрывающиеся списки наследовали ширину родительских элементов списка. Вместо этого они так же широки, как их собственный контент.
Определение ширины каждого раскрывающегося списка вручную кажется действительно не элегантным решением, хотя я пробовал это. Это также не особенно отзывчиво.
Я также пытался установить ul ul ul width для наследования, но безрезультатно.
HTML:
<div id="nav"> <!--nestled in div to provide full view-width bar-->
<ul>
<li>Item 1 is medium
<ul>
<li><a>Section 1</a></li>
<li><a>Section 2</a></li>
<li><a>Section 3</a></li>
</ul>
</li>
<li>Item 2 is medium
<ul>
<li><a>Section 1</a></li>
<li><a>Section 2</a></li>
<li><a>Section 3</a></li>
</ul>
</li>
<li>Item 3 is very long
<ul>
<li><a>Section 1</a></li>
<li><a>Section 2</a></li>
<li><a>Section 3</a></li>
</ul>
</li>
<li>Item 4 is short
<ul>
<li><a>Section 1</a></li>
<li><a>Section 2</a></li>
<li><a>Section 3</a></li>
</ul>
</li>
</ul>
</div>
CSS:
#nav {
background-color: #181818;
width: 100vw;
}
ul {
height: 60px;
margin-left: 7em;
margin-top: 0;
padding: 0;
list-style: none;
font-family: 'Open Sans', sans-serif;
}
ul li {
float: left;
line-height: 60px;
text-align: center;
color: #dcdcdc;
padding-left: 1em;
padding-right: 1em;
}
ul li a {
text-decoration: none;
}
ul li ul {
width: inherit;
}
ul li ul li {
background-color: #181818;
margin-left: -7em;
display: none;
}
ul li:hover ul li {
display: block;
}
Есть ли лучшее решение для установки раскрывающихся списков на ширину их родительских элементов списка, чем ручное определение ширины каждого раскрывающегося списка?