CSS: вызывать разрывы строк для встроенных элементов без <br /> - PullRequest
13 голосов
/ 15 апреля 2010

Как сделать так, чтобы каждый из этих элементов переносился на новые строки, но сохраняя их в виде display = inline и без тегов br ?

<div>
   <a href="element1">Element 1</a>
   <a href="element1">Element 2</a>
   <a href="element1">Element 3</a>
</div>

Ответы [ 6 ]

18 голосов
/ 15 апреля 2010

Это можно сделать, но не будет работать для всех браузеров. Вам необходимо использовать псевдоэлемент :after с white-space и content. Вот так

<html>
<head>
<style type="text/css">
    div a:after {white-space: pre;content:'\A';}
</style>
</head>
<body>
<div>
   <a href="element1">Element 1</a>
   <a href="element1">Element 2</a>
   <a href="element1">Element 3</a>
</div>
</body>
</html>

Ссылка: http://www.w3.org/TR/CSS2/generate.html#content

0 голосов
/ 21 июня 2019

Теперь это можно надежно реализовать с помощью сетки CSS

.
div {
  display: grid;
  grid-template-columns: 100%;
}

div a {
  grid-column-start: 1;
}
0 голосов
/ 16 июня 2012

Чтобы элемент блока не занимал всю строку, установите его ширину на что-то маленькое и white-space:nowrap

label
{
    width:10px;
    display:block;
    white-space:nowrap;
}
0 голосов
/ 15 апреля 2010

вы можете сделать это, определив равным width для родителя <div> и <a>. при условии, что вы применяете класс 'container' к <div>

.container { width: 100px; }
a { width: 100px; display: inline; }
0 голосов
/ 15 апреля 2010
<style type="text/css">
  div.probablyShouldPutAClassName a {
    display: block;
  }
</style>
0 голосов
/ 15 апреля 2010

Поместить их в неупорядоченный список?

Не уверен, что я действительно понимаю, что вы ищете здесь *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...