Тип тире в стиле списка
Есть ли способ создать стиль списка в HTML с тире (т.е. - или – –
или — —
) i.e.
<ul>
<li>abc</li>
</ul>
Выведение:
- abc
Мне пришло в голову сделать что-то вроде li:before { content: "-" };
, хотя я не знаю минусов этой опции (и будет очень благодарен за обратную связь).
В более общем плане я бы не прочь узнать, как использовать общие символы для элементов списка.
Ответы
Ответ 1
Вы можете использовать :before
и content:
с учетом того, что это не поддерживается в IE 7 или ниже. Если вы в порядке с этим, это ваше лучшее решение. См. Могу ли я использовать или QuirksMode Таблицы совместимости CSS для получения полной информации.
Немного более неприятное решение, которое должно работать в старых браузерах, - использовать изображение для точки маркера и просто сделать изображение похожим на тире. Смотрите примеры W3C list-style-image
.
Ответ 2
Существует легкое исправление (text-indent) для сохранения эффекта с отступом в псевдо-классе :before
.
ul {
margin: 0;
}
ul.dashed {
list-style-type: none;
}
ul.dashed > li {
text-indent: -5px;
}
ul.dashed > li:before {
content: "-";
text-indent: -5px;
}
Some text
<ul class="dashed">
<li>First</li>
<li>Second</li>
<li>Third</li>
</ul>
<ul>
<li>First</li>
<li>Second</li>
<li>Third</li>
</ul>
Last text
Ответ 3
Используйте это:
ul
{
list-style: square inside url('data:image/gif;base64,R0lGODlhBQAKAIABAAAAAP///yH5BAEAAAEALAAAAAAFAAoAAAIIjI+ZwKwPUQEAOw==');
}
Ответ 4
Здесь версия без какой-либо позиции относительная или абсолютная и без текстового отступа:
ul.dash {
list-style: none;
margin-left: 0;
padding-left: 1em;
}
ul.dash > li:before {
display: inline-block;
content: "-";
width: 1em;
margin-left: -1em;
}
Наслаждайтесь;)
Ответ 5
ul {
list-style-type: none;
}
ul > li:before {
content: "–"; /* en dash */
position: absolute;
margin-left: -1.1em;
}
демонстрационная скрипка
Ответ 6
Позвольте мне также добавить мою версию, в основном для меня, чтобы снова найти свое собственное предпочтительное решение:
ul {
list-style-type: none;
/*use padding to move list item from left to right*/
padding-left: 1em;
}
ul li:before {
content: "–";
position: absolute;
/*change margin to move dash around*/
margin-left: -1em;
}
<!--
Just use the following CSS to turn your
common disc lists into a list-style-type: 'dash'
Give credit and enjoy!
-->
Some text
<ul>
<li>One</li>
<li>Very</li>
<li>Simple Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</li>
<li>Approach!</li>
</ul>
Ответ 7
ul {
margin:0;
list-style-type: none;
}
li:before { content: "- ";}
Ответ 8
Вот моя fiddle версия:
Класс (modernizr) .generatedcontent
on <html>
практически означает IE8 + и любой другой здравомыслящий браузер.
<html class="generatedcontent">
<ul class="ul-dash hanging">
<li>Lorem ipsum dolor sit amet stack o verflow dot com</li>
<li>Lorem ipsum dolor sit amet stack o verflow dot com</li>
</ul>
CSS
.ul-dash {
margin: 0;
}
.ul-dash {
margin-left: 0em;
padding-left: 1.5em;
}
.ul-dash.hanging > li { /* remove '>' for IE6 support */
padding-left: 1em;
text-indent: -1em;
}
.generatedcontent .ul-dash {
list-style: none;
}
.generatedcontent .ul-dash > li:before {
content: "–";
text-indent: 0;
display: inline-block;
width: 0;
position: relative;
left: -1.5em;
}
Ответ 9
В моем случае добавление этого кода в CSS
ul {
list-style-type: '- ';
}
было достаточно. Простой, как есть.
Ответ 10
Мое решение заключается в добавлении дополнительного тега span с mdash в нем:
<ul class="mdash-list">
<li><span class="mdash-icon">—</span>ABC</li>
<li><span class="mdash-icon">—</span>XYZ</li>
</ul>
и добавление в css:
ul.mdash-list
{
list-style:none;
}
ul.mdash-list li
{
position:relative;
}
ul.mdash-list li .mdash-icon
{
position:absolute;
left:-20px;
}
Ответ 11
Я не знаю, есть ли лучший способ, но вы можете создать настраиваемый маркер точки, изображающий тире, а затем пусть браузеру известно, что вы хотите использовать его в своем списке с помощью list-style-type. Пример на этой странице показывает, как использовать графику в качестве пули.
Я никогда не пытался использовать: до того, как у вас есть, хотя это может сработать. Недостатком является то, что он не будет поддерживаться некоторыми более старыми браузерами. Моя реакция кишки заключается в том, что это все еще достаточно важно, чтобы принять во внимание. В будущем это может быть не так важно.
EDIT: Я провел небольшое тестирование с помощью подхода OP. В IE8 я не мог заставить технику работать, поэтому она определенно не является кросс-браузером. Кроме того, в Firefox и Chrome установка типа list-style-type в none не будет проигнорирована.
Ответ 12
Вместо использования lu li используется dl (definition list) and dd
.
<dd>
может быть определен с использованием стандартного стиля css, такого как {color:blue;font-size:1em;}
, и использовать в качестве маркера любой символ, который вы помещаете после тега html. Он работает как ul li, но позволяет вам использовать любой символ, вам просто нужно отступать его, чтобы получить эффект с отступом, который вы обычно получаете с помощью ul li
.
CSS:
dd{text-indent:-10px;}
HTML
<dl>
<dd>- One</dd>
<dd>- Two</dd>
<dd>- Three</dd></dl>
Дает вам более чистый код! Таким образом, вы можете использовать любой тип персонажа в качестве маркера! Отступ примерно -10px
, и он отлично работает!
Ответ 13
Другой способ:
li:before {
content: '\2014\00a0\00a0'; /* em-dash followed by two non-breaking spaces*/
}
li {
list-style: none;
text-indent: -1.5em;
padding-left: 1.5em;
}
Ответ 14
CSS
li:before {
content: '— ';
margin-left: -20px;
}
li {
margin-left: 20px;
list-style: none;
}
HTML:
<ul>
<li>foo</li>
<li>bar</li>
</ul>
Ответ 15
Для тех, кто сегодня имеет эту проблему, решение просто:
list-style: "-"
Ответ 16
Что для меня работало
<ul>
<li type= "none"> – line 1 </li>
<li type= "none"> – line 2 </li>
<li type= "none"> – line 3 </li>
</ul>