Я пытаюсь разбить UL с вложенным UL в LI на два столбца, и хотя мне удалось использовать
.grid-list {
-webkit-column-count: 2;
-moz-column-count: 2;
column-count: 3;
}
Но вложенные UL ломаются (некоторые в столбце 1 и некоторые в столбце 2 в зависимости от того, где разрыв), и я хотел бы сохранить их вместе. Если вы посмотрите на скриншот ниже, вы увидите, что «Планирование и зонирование» находится внизу, и я хотел бы, чтобы он был вверху следующего столбца, если это возможно. UL, который я использую, приведен ниже. Есть идеи, как это сделать с помощью jQuery или простого CSS? Это вызов!
Вот мой код:
<div class = "mega-menu">
<ul class = "sub-nav">
<li>
<a href = "#" id = "Village Council" target = "">Village Council</a>
<ul>
<li>
<a href = "#" id = "Agendas & Minutes" target = "">Agendas & Minutes</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Boards" target = "">Boards</a>
<ul>
<li>
<a href = "#" id = "Planning Board" target = "">Planning Board</a>
</li>
<li>
<a href = "#" id = "Board of Adjustment" target = "">Board of Adjustment</a>
</li>
<li>
<a href = "#" id = "Parks, Recreation, and Greenways Board" target = "">Parks, Recreation, and Greenways Board</a>
</li>
<li>
<a href = "#" id = "Committees" target = "">Committees</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Ordinances" target = "">Ordinances</a>
</li>
<li>
<a href = "#" id = "Finance & Tax" target = "">Finance & Tax</a>
<ul>
<li>
<a href = "#" id = "Budgets & Reports" target = "">Budgets & Reports</a>
</li>
<li>
<a href = "#" id = "Taxes" target = "">Taxes</a>
</li>
<li>
<a href = "#" id = "Contact Finance" target = "">Contact Finance</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Planning & Zoning" target = "">Planning & Zoning</a>
<ul>
<li>
<a href = "#" id = "Maps" target = "">Maps</a>
</li>
<li>
<a href = "#" id = "Land Use" target = "">Land Use</a>
</li>
<li>
<a href = "#" id = "Permitting" target = "">Permitting</a>
</li>
<li>
<a href = "#" id = "Ordinances" target = "">Ordinances</a>
</li>
<li>
<a href = "#" id = "Projects" target = "">Projects</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Public Safety" target = "">Public Safety</a>
</li>
<li>
<a href = "#" id = "Parks & Recreation" target = "">Parks & Recreation</a>
<ul>
<li>
<a href = "#" id = "Marvin Efird Park" target = "">Marvin Efird Park</a>
</li>
<li>
<a href = "#" id = "Reserve the Barn" target = "">Reserve the Barn</a>
</li>
<li>
<a href = "#" id = "Trails & Greenways" target = "">Trails & Greenways</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Transportation" target = "">Transportation</a>
</li>
<li>
<a href = "#" id = "Staff Directory" target = "">Staff Directory</a>
</li>
</ul>
</div>
Вы можете использовать свойство CSS break-inside/page-break-inside, чтобы избежать разрыва столбца в середине элемента li. Оба свойства делают одно и то же, но здесь они используются в тандеме для более широкой совместимости браузеров.
body {
background-color: #777;
}
.mega-menu {
column-count: 2;
}
ul {
margin-top: 0;
}
li {
list-style-type: none;
}
li a {
color: #9d9;
text-decoration: none;
}
li li a {
color: #fff;
}
li {
page-break-inside: avoid;
break-inside: avoid-column;
}
<div class = "mega-menu">
<ul class = "sub-nav">
<li>
<a href = "#" id = "Village Council" target = "">Village Council</a>
<ul>
<li>
<a href = "#" id = "Agendas & Minutes" target = "">Agendas & Minutes</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Boards" target = "">Boards</a>
<ul>
<li>
<a href = "#" id = "Planning Board" target = "">Planning Board</a>
</li>
<li>
<a href = "#" id = "Board of Adjustment" target = "">Board of Adjustment</a>
</li>
<li>
<a href = "#" id = "Parks, Recreation, and Greenways Board" target = "">Parks, Recreation, and Greenways Board</a>
</li>
<li>
<a href = "#" id = "Committees" target = "">Committees</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Ordinances" target = "">Ordinances</a>
</li>
<li>
<a href = "#" id = "Finance & Tax" target = "">Finance & Tax</a>
<ul>
<li>
<a href = "#" id = "Budgets & Reports" target = "">Budgets & Reports</a>
</li>
<li>
<a href = "#" id = "Taxes" target = "">Taxes</a>
</li>
<li>
<a href = "#" id = "Contact Finance" target = "">Contact Finance</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Planning & Zoning" target = "">Planning & Zoning</a>
<ul>
<li>
<a href = "#" id = "Maps" target = "">Maps</a>
</li>
<li>
<a href = "#" id = "Land Use" target = "">Land Use</a>
</li>
<li>
<a href = "#" id = "Permitting" target = "">Permitting</a>
</li>
<li>
<a href = "#" id = "Ordinances" target = "">Ordinances</a>
</li>
<li>
<a href = "#" id = "Projects" target = "">Projects</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Public Safety" target = "">Public Safety</a>
</li>
<li>
<a href = "#" id = "Parks & Recreation" target = "">Parks & Recreation</a>
<ul>
<li>
<a href = "#" id = "Marvin Efird Park" target = "">Marvin Efird Park</a>
</li>
<li>
<a href = "#" id = "Reserve the Barn" target = "">Reserve the Barn</a>
</li>
<li>
<a href = "#" id = "Trails & Greenways" target = "">Trails & Greenways</a>
</li>
</ul>
</li>
<li>
<a href = "#" id = "Transportation" target = "">Transportation</a>
</li>
<li>
<a href = "#" id = "Staff Directory" target = "">Staff Directory</a>
</li>
</ul>
</div>
Это потрясающе, песочница @dev и именно то, что мне было нужно. Я только что узнал что-то новое. Спасибо за помощь!