Возможно ли переносить элементы LI на новую строку при выходе за пределы блока?
Вложений: 2
Есть некий список. Чтобы соответствовать логической структуре документа для его форматирования используется соответствующий HTML тег - UL с элементами списка LI. Традиционно списки располагаются сверху вниз, где каждый элемент LI находится на новой строке. В моем конкретном случае это не подходит, поэтому они, с помощью CSS выстроены в горизонтальную линию (см. код).
Проблема в том, что когда элементов списка становится много, они выходят за пределы содержащего их блока и получается полная ерунда. Сейчас в HTML коде это выглядит так:
<!DOCTYPE html>
<html>
<head>
<style>
.test1 {
width: 20%;
border: 1px solid #ccc;
}
.arch {
display: inline-block;
}
.arch li {
display: inline;
margin-left: 10px;
}
</style>
<title>Example</title>
</head><body>
<div class="test1">
<p class="arch">List:</p>
<ul class="arch">
<li><a href="/21/">21</a></li><li><a href="/20/">20</a></li><li><a href="/19/">19</a></li><li><a href="/18/">18</a></li><li><a href="/17/">17</a></li><li><a href="/16/">16</a></li><li><a href="/15/">15</a></li><li><a href="/14/">14</a></li><li><a href="/13/">13</a></li><li><a href="/12/">12</a></li><li><a href="/11/">11</a></li><li><a href="/10/">10</a></li><li><a href="/9/">9</a></li><li><a href="/8/">8</a></li><li><a href="/7/">7</a></li><li><a href="/6/">6</a></li><li><a href="/5/">5</a></li><li><a href="/4/">4</a></li><li><a href="/3/">3</a></li><li><a href="/2/">2</a></li><li><a href="/1/">1</a></li>
</ul>
</div>
</body></html>
На картинке (для наглядности граница блока выделена рамкой) это выглядит так: а должно выглядеть так: Поскольку дизайн адаптивный и ширина DIV на разных устройствах разная, то и переносы строки могут быть в разных местах. Главное, чтобы они не выходили за границу DIV'а и выстраивались на 2-ю, 3-ю и 100500-ю строчку в зависимости от длины списка. |
javascript_pupil,
<!DOCTYPE html>
<html>
<head>
<style>
.test1 {
width: 20%;
border: 1px solid #ccc;
}
.arch {
display: flex;
flex-wrap: wrap;
list-style: none;
}
.arch li {
margin-left: 16px;
}
</style>
<title>Example</title>
</head>
<body>
<div class="test1">
<p class="arch">List:</p>
<ul class="arch">
<li><a href="/21/">21</a></li>
<li><a href="/20/">20</a></li>
<li><a href="/19/">19</a></li>
<li><a href="/18/">18</a></li>
<li><a href="/17/">17</a></li>
<li><a href="/16/">16</a></li>
<li><a href="/15/">15</a></li>
<li><a href="/14/">14</a></li>
<li><a href="/13/">13</a></li>
<li><a href="/12/">12</a></li>
<li><a href="/11/">11</a></li>
<li><a href="/10/">10</a></li>
<li><a href="">9</a></li>
<li><a href="">8</a></li>
<li><a href="">7</a></li>
<li><a href="">6</a></li>
<li><a href="">5</a></li>
<li><a href="">4</a></li>
<li><a href="">3</a></li>
<li><a href="">2</a></li>
<li><a href="">1</a></li>
</ul>
</div>
</body>
</html>
|
Очень круто! Спасибо! Я пробовал с "flex", но видимо что-то не дописал. Самое главное, что сохраняется логическая структура документа, а именно: список. Некоторые на это плюют, но мне кажется это важным т.к. "чем дальше в лес", тем больше влияние это будет оказывать на ранжирование, ведь хоть и смотрит на страницу человек, выдачу ранжируют алгоритмы.
Еще один вопрос: возможно ли к этой замечательной конструкции каким-то образом "прикрутить" overflow? Чтобы, например, 3-я или 4-я строчка плавно или не плавно становилась невидимой. Строчек этих в реальности может быть очень много. Открыть её (и все остальные), при необходимости, можно будет с помощью javascript типа: *.style.display = "block" если кто-то захочет |
javascript_pupil,
ищите что-то подобное https://javascript.ru/forum/misc/849...tml#post550561 |
| Часовой пояс GMT +3, время: 04:15. |