Eu queria saber se existe uma maneira de alterar a cor nos marcadores de uma lista.
Eu tenho uma lista como esta:
<ul>
<li>House</li>
<li>Car</li>
<li>Garden</li>
</ul>
Não é possível inserir nada nos li's, como 'span' og a 'p'. Posso alterar a cor dos marcadores, mas não o texto de uma maneira inteligente?
list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 10 10"><circle fill="red" cx="5" cy="5" r="2"/></svg>');
Consegui isso sem adicionar marcação, mas usando
li:before
. Obviamente, isso tem todas as limitações do:before
(sem suporte ao IE antigo), mas parece funcionar com o IE8, Firefox e Chrome após alguns testes muito limitados. O estilo de marcador também é limitado pelo que está em Unicode.fonte
font-size:1em
obter um marcador de melhor proporção!)Podemos combinar
list-style-image
comsvg
s, que podemos embutir em css ! Este método oferece um controle incrível sobre as "balas", que podem se tornar qualquer coisa.Para obter um círculo vermelho, basta usar o seguinte css:
Mas isso é apenas o começo. Isso nos permite fazer qualquer coisa maluca que quisermos com essas balas. círculos ou retângulos são fáceis, mas qualquer coisa com que você possa desenhar
svg
pode ficar ali! Confira o exemplo bullseye abaixo:Exibir trecho de código
Atributos de largura / altura
Alguns navegadores requerem
width
eheight
atributos para ser definida no<svg>
, ou eles não apresentar nada. No momento em que este artigo foi escrito, as versões recentes do Firefox apresentavam esse problema. Eu defini ambos os atributos nos exemplos.Codificações
Um comentário recente me lembrou de codificações para o data-uri. Isso foi um ponto doloroso para mim recentemente, e posso compartilhar um pouco das informações que pesquisei.
A especificação data-uri , que faz referência à especificação URI , diz que o svg deve ser codificado de acordo com a especificação URI . Isso significa que todos os tipos de caracteres devem ser codificados, por exemplo,
<
se torna%3C
.Algumas fontes sugerem a codificação base64, que deve corrigir os problemas de codificação; no entanto, aumentará desnecessariamente o tamanho do SVG, enquanto a codificação URI não. Eu recomendo a codificação URI.
Mais informações:
suporte do navegador: > ie8
truques de css em svgs
mdn em svgs
fonte
<svg>
código "bonito" , tente executá-lo primeiro por meio de um codificador de uri.Construindo a solução de @Marc - como o caractere de marcador é renderizado de maneira diferente com diferentes fontes e navegadores, usei a seguinte técnica css3 com border-radius para fazer um marcador sobre o qual tenho mais controle:
fonte
Eu sei que esta é uma questão muito, muito antiga, mas eu estava brincando com isso e descobri uma maneira que não vi postada. Dê uma cor à lista e, em seguida, substitua a cor do texto usando o
::first-line
seletor. Não sou nenhum especialista, então talvez haja algo de errado com essa abordagem que estou perdendo, mas parece funcionar.fonte
Construindo soluções @Marc e @jessica - Esta é a solução que eu uso:
Eu uso
em
para tamanhos de fonte, então se você definir seutop
valor como sendo,.5em
ele sempre será colocado no meio da sua primeira linha de texto. Useileft:-20px
porque essa é a posição padrão dos marcadores nos navegadores: paipadding/2
fonte
Eu realmente gostei da resposta de Marc também - eu precisava de um conjunto de ULs de cores diferentes e, obviamente, seria mais fácil usar apenas uma classe. Aqui está o que usei para laranja, por exemplo:
Além disso, descobri que o código hexadecimal que usei para "conteúdo:" era diferente do de Marc (aquele círculo hexadecimal parecia um pouco alto). O que usei parece se encaixar perfeitamente no meio. Também encontrei várias outras formas (quadrados, triângulos, círculos, etc.) aqui
fonte
Para mim, a melhor opção é usar pseudoelementos CSS, portanto, para o
disc
estilo de marcador seria assim:Notas:
width
eheight
deve ter valores iguais para manter os ponteiros arredondadosborder-radius
como zero se quiser tersquare
marcadores de listaPara mais estilos de marcadores, você pode usar outras formas css https://css-tricks.com/examples/ShapesOfCSS/ (escolha esta opção que não requer pseudo elementos para funcionar, por exemplo, triângulos)
fonte
::marcador
Você pode usar o
::marker
pseudoelemento CSS para selecionar a caixa do marcador de um item da lista (ou seja, marcadores ou números).fonte
Com base na resposta de @ddilsaver. Eu queria ser capaz de usar um sprite para a bala. Isso parece funcionar:
fonte
Eu tentei isso hoje e digitei o seguinte:
Eu precisava exibir marcadores de cores em minhas listas (marcadores e números). Descobri esta dica e escrevi na minha folha de estilo com a mutualização das propriedades:
Escolhi um personagem diferente para exibir uma bala, observando aqui . Eu precisei ajustar a margem de forma adequada, talvez os valores não se apliquem com a fonte que você escolheu (os números usam sua webfont).
fonte
Tente usar isto:
fonte
Versão inline, funciona para Outlook Desktop:
JSFiddle .
fonte