Czy istnieje sposób na utworzenie stylu listy w HTML za pomocą myślnika (tj. - lub - –
lub - —
) tj
<ul>
<li>abc</li>
</ul>
Wyjście:
- abc
Przyszło mi do głowy zrobić coś takiego li:before { content: "-" };
, chociaż nie znam wad tej opcji (i byłbym bardzo zobowiązany do uzyskania opinii).
Mówiąc bardziej ogólnie, nie miałbym nic przeciwko wiedzeniu, jak używać ogólnych znaków do elementów listy.
html
css
xhtml
html-lists
Brian M. Hunt
źródło
źródło
Odpowiedzi:
Możesz użyć
:before
icontent:
pamiętać, że nie jest to obsługiwane w IE 7 lub niższej. Jeśli nie masz nic przeciwko, to jest to najlepsze rozwiązanie. Aby uzyskać szczegółowe informacje, zobacz tabele kompatybilności CSS „ Czy mogę używać” lub QuirksMode .Nieco nieprzyjemnym rozwiązaniem, które powinno działać w starszych przeglądarkach, jest użycie obrazu jako punktu kuli i po prostu nadanie mu wyglądu kreski. Zobacz W3C
list-style-image
stronę dla przykładów.źródło
:before
polega na tym, że gdy elementy listy rozciągają się na kilka wierszy, wcięcie w drugim wierszu rozpoczyna się tam, gdzie jest myślnik, a tym samym rujnuje efekt wcięcia na liście. Aby tego uniknąć, musisz użyć wiszących wcięć. Zobacz: alistapart.com/articles/taminglistscontent
użyciucontent: "\2014\a0"
Istnieje łatwa poprawka (wcięcie tekstu), aby utrzymać efekt listy wcięć w
:before
pseudoklasie.źródło
list-style-type: none;
na<ul>
elemencie.ul li:before{ content:"- ";}
display: block; float: left;
do tego,li:before
co może łatwiej wyciągnąć go z przepływu treści, w przeciwnym razie trudno jest uzyskać błędy w ustawianiu pierwszego i kolejnych wierszy poprawnie. Lub odpowiedź Keyana Zhanga robi to również z absolutnym pozycjonowaniem.list-style-type dash
nie jest już częścią CSSOto wersja bez pozycji względnej lub bezwzględnej i bez wcięć tekstu:
Cieszyć się ;)
źródło
display: block; float: left;
do tego,li:before
co może łatwiej wyciągnąć go z przepływu treści, w przeciwnym razie trudno jest uzyskać błędy w ustawianiu pierwszego i kolejnych wierszy poprawnie. Lub odpowiedź Keyana Zhanga robi to również z absolutnym pozycjonowaniem..active
klasy nawigacyjnej zli:before { visibility: hidden; }
ili.active:before { visibility: visible; }
Użyj tego:
źródło
skrzypce demo
źródło
Pozwól, że dodam również moją wersję, głównie po to, by ponownie znaleźć swoje preferowane rozwiązanie:
https://codepen.io/burningTyger/pen/dNzgrQ
źródło
W moim przypadku dodanie tego kodu do CSS
było wystarczająco. Proste jak to jest.
źródło
Jedna z najlepszych odpowiedzi nie działała dla mnie, ponieważ po trochę prób i błędów li: before potrzebował także wyświetlania reguły css: blok wbudowany.
To dla mnie w pełni działająca odpowiedź:
źródło
źródło
Oto moje skrzypce wersja :
The (modernizr) Klasa
.generatedcontent
na<html>
praktycznie oznacza IE8 + i każdą inną przeglądarkę sane.CSS:
źródło
Nie wiem, czy istnieje lepszy sposób, ale możesz utworzyć niestandardową grafikę punktora przedstawiającą myślnik, a następnie poinformować przeglądarkę, że chcesz go użyć na liście za pomocą właściwości list-style-type . Przykład na tej stronie pokazuje, jak używać grafiki jako punktora.
Nigdy nie próbowałem używać: wcześniej, tak jak ty, chociaż może to działać. Minusem jest to, że nie będzie obsługiwany przez niektóre starsze przeglądarki. Moja reakcja brzucha jest taka, że wciąż jest to wystarczająco ważne, aby wziąć to pod uwagę. W przyszłości może to nie być tak ważne.
EDYCJA: Przeprowadziłem małe testy z podejściem PO. W IE8 nie mogłem uruchomić tej techniki, więc na pewno nie jest to jeszcze przeglądarka. Co więcej, w Firefox i Chrome ustawienie w typie listy stylów na none w połączeniu wydaje się być ignorowane.
źródło
Moim rozwiązaniem jest dodanie dodatkowego znacznika zakresu z mdash w nim:
i dodanie do css:
źródło
Inny sposób:
źródło
CSS:
HTML:
źródło
Zamiast używać lu li, używane
dl (definition list) and dd
.<dd>
można zdefiniować przy użyciu standardowego stylu css, takiego jak{color:blue;font-size:1em;}
i użyć jako znacznika dowolnego symbolu umieszczonego po znaczniku html. Działa jak ul li, ale pozwala na użycie dowolnego symbolu, wystarczy go wciąć, aby uzyskać efekt listy wcięć, który zwykle uzyskuje sięul li
.Daje ci znacznie czystszy kod! W ten sposób możesz użyć dowolnego rodzaju postaci jako znacznika! Wcięcie jest o
-10px
i działa idealnie!źródło
Dla każdego, kto ma dzisiaj ten problem, rozwiązaniem jest po prostu:
list-style: „-”
źródło
To, co zadziałało, było dla mnie
źródło