Existe-t-il un moyen de créer un style de liste en HTML avec un tiret (c'est-à-dire - ou - –
ou -—
) ie
<ul>
<li>abc</li>
</ul>
Sortie:
- abc
J'ai pensé à faire ça avec quelque chose comme li:before { content: "-" };
, même si je ne connais pas les inconvénients de cette option (et je serais très obligé de faire des commentaires).
Plus généralement, cela ne me dérangerait pas de savoir comment utiliser des caractères génériques pour les éléments de liste.
html
css
xhtml
html-lists
Brian M. Hunt
la source
la source
Réponses:
Vous pouvez utiliser
:before
etcontent:
garder à l'esprit que cela n'est pas pris en charge dans IE 7 ou inférieur. Si vous êtes d'accord avec cela, c'est votre meilleure solution. Consultez les tableaux de compatibilité CSS Puis-je utiliser ou QuirksMode pour plus de détails.Une solution un peu plus désagréable qui devrait fonctionner dans les navigateurs plus anciens consiste à utiliser une image pour la puce et à donner simplement l'image à un tiret. Voir la page W3C
list-style-image
pour des exemples.la source
:before
est que lorsque les éléments de la liste s'étendent sur plusieurs lignes, le retrait sur la 2e ligne commence là où se trouve le tiret, ruinant ainsi l'effet de liste en retrait. Vous devez utiliser des retraits suspendus pour éviter cela. Voir ceci: alistapart.com/articles/taminglistscontent
utiliser mdashcontent: "\2014\a0"
Il existe une solution simple (text-indent) pour conserver l'effet de liste en retrait avec la
:before
pseudo-classe.la source
list-style-type: none;
l'<ul>
élément à l' élément.ul li:before{ content:"- ";}
display: block; float: left;
à celi:before
qui peut le retirer plus facilement du flux de contenu, sinon c'est assez difficile / bogué d'obtenir la première ligne et les suivantes pour s'aligner correctement. Ou la réponse de Keyan Zhang le fait également avec un positionnement absolu.list-style-type dash
ne fait pas déjà partie de CSSVoici une version sans position relative ou absolue et sans retrait de texte:
Prendre plaisir ;)
la source
display: block; float: left;
à celi:before
qui peut le retirer plus facilement du flux de contenu, sinon c'est assez difficile / bogué d'obtenir la première ligne et les suivantes pour s'aligner correctement. Ou la réponse de Keyan Zhang le fait également avec un positionnement absolu..active
classe de navigation avecli:before { visibility: hidden; }
etli.active:before { visibility: visible; }
Utilisez ceci:
la source
démo violon
la source
Permettez-moi également d'ajouter ma version, principalement pour que je retrouve ma propre solution préférée:
https://codepen.io/burningTyger/pen/dNzgrQ
la source
Dans mon cas, ajouter ce code à CSS
était suffisant. C'est aussi simple que cela.
la source
L'une des meilleures réponses n'a pas fonctionné pour moi, car, après quelques essais et erreurs, le li: before avait également besoin de l'affichage de la règle css: inline-block.
C'est donc une réponse qui fonctionne pleinement pour moi:
la source
la source
Voici ma version violon :
Le (Modernizr) classe
.generatedcontent
sur<html>
signifie pratiquement IE8 + et tous les autres navigateurs sain d' esprit.CSS:
la source
Je ne sais pas s'il existe une meilleure façon, mais vous pouvez créer un graphique à puces personnalisé représentant un tiret, puis faire savoir au navigateur que vous souhaitez l'utiliser dans votre liste avec le type de style de liste propriété de . Un exemple sur cette page montre comment utiliser un graphique comme puce.
Je n'ai jamais essayé d'utiliser: avant comme vous l'avez fait, bien que cela puisse fonctionner. L'inconvénient est qu'il ne sera pas pris en charge par certains navigateurs plus anciens. Ma réaction instinctive est que cela est encore suffisamment important pour être pris en considération. À l'avenir, cela ne sera peut-être pas aussi important.
EDIT: J'ai fait un petit test avec l'approche du PO. Dans IE8, je ne pouvais pas faire fonctionner la technique, donc ce n'est certainement pas encore multi-navigateur. De plus, dans Firefox et Chrome, la définition de type de style de liste sur aucun en conjonction semble être ignorée.
la source
Ma solution consiste à ajouter une balise span supplémentaire avec mdash:
et en ajoutant à css:
la source
Autrement:
la source
CSS:
HTML:
la source
Au lieu d'utiliser lu li, utilisé
dl (definition list) and dd
.<dd>
peut être défini en utilisant un style css standard tel que{color:blue;font-size:1em;}
et utiliser comme marqueur le symbole que vous placez après la balise html. Il fonctionne comme ul li, mais vous permet d'utiliser n'importe quel symbole, il vous suffit de le mettre en retrait pour obtenir l'effet de liste en retrait que vous obtenez normalementul li
.Vous donne un code beaucoup plus propre! De cette façon, vous pouvez utiliser n'importe quel type de personnage comme marqueur! Le retrait est d'environ
-10px
et cela fonctionne parfaitement!la source
Pour toute personne ayant ce problème aujourd'hui, la solution est simplement:
style liste: "-"
la source
Ce qui a fonctionné pour moi était
la source