Preciso usar, por exemplo, o símbolo de estrela (★) como marcador para um item da lista.
Eu li o módulo CSS3: Listas , que descreve como usar texto personalizado como marcadores, mas não está funcionando para mim. Eu acho que os navegadores simplesmente não suportam o::marker
pseudo elemento.
Como posso fazer isso sem usar imagens?
html
css
html-lists
AntonAL
fonte
fonte
Respostas:
EDITAR
Eu provavelmente não recomendaria mais usar imagens. Eu manteria a abordagem de usar um caractere Unicode, como este:
RESPOSTA ANTIGA
Eu provavelmente escolheria um fundo de imagem, eles são muito mais
eficientes,versáteis e compatíveis com vários navegadores.Aqui está um exemplo:
fonte
<li>
texto quebra: o marcador não fica sem recuo e acaba parecendo o início de um parágrafo de texto. Esta resposta corrige esse problema: stackoverflow.com/a/14301918/1450294Usando texto como marcadores
Use
li:before
com uma Entidade HTML Hex de escape (ou qualquer texto simples).Exemplo
Meu exemplo produzirá listas com marcas de seleção como marcadores.
CSS :
Compatibilidade do navegador
Não testei a mim mesmo, mas deve ser suportado a partir do IE8. Pelo menos é o que dizem os truques quirksmode e CSS .
Você pode usar comentários condicionais para aplicar soluções mais antigas / mais lentas, como imagens ou scripts. Melhor ainda, use ambos com
<noscript>
para as imagens.HTML :
Sobre imagens de fundo
As imagens de fundo são realmente fáceis de manusear, mas ...
background-size
é, na verdade, apenas a partir do IE9.list-style
(a escolha mais lógica) mais fácil.Aproveitar.
fonte
li
elemento for dividido em várias linhas; essas linhas quebradas não serão indentadas corretamente.float: left; margin-left: -12px;
no: antes para cuidar disso, @RichardEverettVocê pode construí-lo:
fonte
'\21B3'
! Obrigado! Funcionou melhor do que as outras respostas aqui. Também alterei opadding-left
em meu design para1em
, que se adapta bem quando os níveis da árvore mudam de tamanho.Esta é a solução W3C. Você pode usá-lo em 3012!
https://drafts.csswg.org/css-lists/#text-markers
fonte
li:before
solução.As imagens não são recomendadas, pois podem aparecer pixeladas em alguns dispositivos (dispositivos Apple com tela Retina) ou quando ampliadas. Com um personagem, sua lista fica sempre incrível.
Aqui está a melhor solução que encontrei até agora. Funciona muito bem e é compatível com vários navegadores (IE 8+).
O importante é ter o caractere em um bloco flutuante com largura fixa para que o texto permaneça alinhado se for muito longo para caber em uma única linha. 1.2em é a largura que você deseja para o seu personagem, altere-o de acordo com suas necessidades. Não se esqueça de redefinir o preenchimento e a margem dos elementos ul e li.
EDIT: Esteja ciente de que o tamanho "1.2em" pode variar se você usar uma fonte diferente em ul e li: before. É mais seguro usar pixels.
fonte
Para adicionar uma estrela, use o caractere Unicode
22C6
.Eu adicionei um espaço para fazer uma pequena lacuna entre a
li
e a estrela. O código para o espaço éA0
.fonte
Um exemplo mais completo da resposta de 222 :
Incluí propriedades star-hack para restaurar os estilos de lista padrão em versões mais antigas do IE. Você pode retirá-los e incluí-los em uma inclusão condicional, se desejar, ou substituí-los por uma solução baseada em imagem de plano de fundo. Minha humilde opinião é que os estilos de marcadores especiais implementados dessa maneira devem degradar normalmente nos poucos navegadores que não oferecem suporte a pseudoeletores.
Testado no Firefox, Chrome, Safari e IE8-10 e renderiza corretamente em todos.
fonte
text-indent: -1em;
é uma propriedade importante se você tiver itens de lista de várias linhas. Sem ele, a segunda linha e as subsequentes se alinham com o marcador em vez da linha anterior.fonte
Verifiquei toda a lista e há elementos parcialmente corretos e parcialmente incorretos até 2020.
Descobri que o recuo e o deslocamento eram o maior problema ao usar UTF-8, então estou postando isso como uma solução CSS compatível com 2020 usando o marcador "triângulo vertical" como meu exemplo.
use
em
como unidade para evitar conflito com o tamanho da fontefonte
Experimente este código ...
fonte
Este tópico pode ser antigo, mas aqui está uma solução rápida
ul {list-style:outside none square;}
ouul {list-style:outside none disc;}
, etc ...em seguida, adicione preenchimento esquerdo ao elemento da lista
fonte