Есть ли способ создать стиль списка в HTML с тире (то есть - или - –
или - —
) т.е.
<ul>
<li>abc</li>
</ul>
Выведение:
- abc
Мне пришло в голову сделать это с чем-то вроде li:before { content: "-" };
, хотя я не знаю минусов этого варианта (и был бы очень благодарен за обратную связь).
В более общем смысле, я не прочь знать, как использовать универсальные символы для элементов списка.
html
css
xhtml
html-lists
Брайан М. Хант
источник
источник
Ответы:
Вы можете использовать
:before
иcontent:
помнить, что это не поддерживается в IE 7 или ниже. Если вы согласны с этим, то это ваше лучшее решение. См. Подробности в таблицах совместимости CSS « Могу ли я использовать» или « QuirksMode» .Немного противное решение, которое должно работать в старых браузерах, это использовать изображение для маркера и просто сделать изображение похожим на тире. Смотрите страницу W3C
list-style-image
для примеров.источник
:before
том, что когда элементы списка занимают несколько строк, отступ во 2-й строке начинается там, где находится тире, тем самым разрушая эффект списка с отступом. Вы должны использовать висячие отступы, чтобы избежать этого. Смотрите это: alistapart.com/articles/taminglistscontent
использовать mdashcontent: "\2014\a0"
Существует простое исправление (text-indent), чтобы сохранить эффект списка с отступом с помощью
:before
псевдокласса.источник
list-style-type: none;
к<ul>
элементу.ul li:before{ content:"- ";}
display: block; float: left;
к тому,li:before
что легче вытащить его из потока контента, в противном случае довольно сложно / глючно получить правильные строки первой и последующих строк. Или ответ Кейана Чжана также делает это с абсолютным позиционированием.list-style-type dash
уже не является частью CSSВот версия без какой-либо относительной или абсолютной позиции и без отступа:
Наслаждаться ;)
источник
display: block; float: left;
к тому,li:before
что легче вытащить его из потока контента, в противном случае довольно сложно / глючно получить правильные строки первой и последующих строк. Или ответ Кейана Чжана также делает это с абсолютным позиционированием..active
класс навигации сli:before { visibility: hidden; }
иli.active:before { visibility: visible; }
Использовать это:
источник
демонстрационная скрипка
источник
Позвольте мне также добавить свою версию, в основном для того, чтобы я снова нашел свое предпочтительное решение:
https://codepen.io/burningTyger/pen/dNzgrQ
источник
В моем случае добавление этого кода в CSS
было достаточно. Все просто, как есть.
источник
Один из лучших ответов у меня не сработал, потому что после нескольких проб и ошибок li: before также потребовалось отображение правила css: inline-block.
Так что это полностью рабочий ответ для меня:
источник
источник
Вот моя версия скрипки :
(Modernizr) класс
.generatedcontent
на<html>
практике это означает , IE8 + и любой другой здравомыслящий браузер.CSS:
источник
Я не знаю, есть ли лучший способ, но вы можете создать пользовательский рисунок маркера, изображающий тире, а затем сообщить браузеру, что вы хотите использовать его в своем списке со свойством list-style-type . Пример на этой странице показывает, как использовать графику в качестве маркера.
Я никогда не пытался использовать: раньше, как вы, хотя это может работать. Недостатком является то, что он не будет поддерживаться некоторыми старыми браузерами. Моя внутренняя реакция заключается в том, что это все еще достаточно важно, чтобы принять во внимание. В будущем это может быть не так важно.
РЕДАКТИРОВАТЬ: Я провел небольшое тестирование с подходом ОП. В IE8 я не мог заставить эту технику работать, поэтому она определенно не является кросс-браузерной. Более того, в Firefox и Chrome установка list-style-type на none вместе, кажется, игнорируется.
источник
Мое решение заключается в добавлении дополнительного тега span с mdash:
и добавление в css:
источник
По-другому:
источник
CSS:
HTML:
источник
Вместо использования lu li используется
dl (definition list) and dd
.<dd>
может быть определен с использованием стандартного стиля CSS, например,{color:blue;font-size:1em;}
и использовать в качестве маркера любой символ, который вы поместите после HTML-тега. Он работает как ul li, но позволяет вам использовать любой символ, вам просто нужно сделать отступ, чтобы получить эффект списка с отступами, который вы обычно получаетеul li
.Дает вам намного чище код! Таким образом, вы можете использовать любой тип персонажа в качестве маркера! Отступ около,
-10px
и он работает отлично!источник
Для тех, у кого есть эта проблема сегодня, решение просто:
Стиль списка: "-"
источник
Что сработало для меня
источник