Existe uma maneira de criar um estilo de lista em HTML com um traço (ou seja - ou - –
ou - —
) ou seja
<ul>
<li>abc</li>
</ul>
Saída:
- abc
Ocorreu-me fazer isso com algo do tipo li:before { content: "-" };
, embora eu não conheça os contras dessa opção (e seria muito obrigado pelo feedback).
Mais genericamente, eu não me importaria em saber como usar caracteres genéricos para itens de lista.
html
css
xhtml
html-lists
Brian M. Hunt
fonte
fonte
Respostas:
Você pode usar
:before
econtent:
tendo em conta que esta não é suportado no IE 7 ou abaixo. Se você não concorda com isso, então esta é sua melhor solução. Consulte as tabelas de compatibilidade Can I Use ou QuirksMode CSS para obter detalhes completos.Uma solução um pouco mais desagradável que deve funcionar em navegadores mais antigos é usar uma imagem para o marcador e apenas fazer com que a imagem pareça um traço. Veja a página do W3C
list-style-image
para exemplos.fonte
:before
é que, quando os itens da lista abrangem várias linhas, o recuo na segunda linha começa onde está o traço, arruinando o efeito da lista recuada. Você precisa usar recuos pendurados para evitar isso. Veja isto: alistapart.com/articles/taminglistscontent
usocontent: "\2014\a0"
Existe uma correção fácil (recuo do texto) para manter o efeito da lista recuada com a
:before
pseudo classe.fonte
list-style-type: none;
o<ul>
elemento.ul li:before{ content:"- ";}
display: block; float: left;
aoli:before
que pode retirá-lo mais facilmente do fluxo de conteúdo, caso contrário, é muito difícil / complicado obter as primeiras linhas e as linhas subsequentes alinhadas corretamente. Ou a resposta de Keyan Zhang também faz isso com posicionamento absoluto.list-style-type dash
não faz parte do CSS jáAqui está uma versão sem qualquer posição relativa ou absoluta e sem recuo de texto:
Aproveitar ;)
fonte
display: block; float: left;
aoli:before
que pode retirá-lo mais facilmente do fluxo de conteúdo, caso contrário, é muito difícil / complicado obter as primeiras linhas e as linhas subsequentes alinhadas corretamente. Ou a resposta de Keyan Zhang também faz isso com posicionamento absoluto..active
classe de navegação comli:before { visibility: hidden; }
eli.active:before { visibility: visible; }
Usa isto:
fonte
violino de demonstração
fonte
Deixe-me adicionar minha versão também, principalmente para encontrar novamente minha solução preferida:
https://codepen.io/burningTyger/pen/dNzgrQ
fonte
No meu caso, adicionando este código ao CSS
foi o suficiente. Simples como é.
fonte
Uma das principais respostas não funcionou para mim, porque, após um pouco de tentativa e erro, o li: before também precisava da exibição da regra css: bloco inline.
Portanto, esta é uma resposta totalmente funcional para mim:
fonte
fonte
Aqui está a minha versão do violino :
O (Modernizr) classe
.generatedcontent
em<html>
praticamente significa IE8 + e todos os outros navegadores são.CSS:
fonte
Não sei se existe uma maneira melhor, mas você pode criar um gráfico de marcador personalizado representando um traço e informar o navegador que você deseja usá-lo em sua lista com a propriedade do tipo de estilo de lista . Um exemplo nessa página mostra como usar um gráfico como marcador.
Eu nunca tentei usar: antes do jeito que você tem, embora possa funcionar. A desvantagem é que ele não será suportado por alguns navegadores mais antigos. Minha reação intestinal é que isso ainda é importante o suficiente para ser levado em consideração. No futuro, isso pode não ser tão importante.
EDIT: Eu fiz alguns testes com a abordagem do OP. No IE8, não consegui fazer a técnica funcionar, por isso definitivamente ainda não é entre navegadores. Além disso, no Firefox e Chrome, definir o estilo de lista como nenhum em conjunto parece ser ignorado.
fonte
Minha solução está em adicionar tag de extensão extra com mdash:
e adicionando ao css:
fonte
Outra maneira:
fonte
CSS:
HTML:
fonte
Em vez de usar lu li, usado
dl (definition list) and dd
.<dd>
pode ser definido usando o estilo CSS padrão{color:blue;font-size:1em;}
e, como marcador, qualquer símbolo que você colocar após a tag html. Funciona como ul li, mas permite que você use qualquer símbolo, basta recuá-lo para obter o efeito de lista recuada com que você normalmente se encontraul li
.Dá um código muito mais limpo! Dessa forma, você pode usar qualquer tipo de personagem como marcador! Recuar é sobre
-10px
e funciona perfeito!fonte
Para quem está com esse problema hoje, a solução é simplesmente:
estilo da lista: "-"
fonte
O que funcionou para mim foi
fonte