Eu tenho uma tag no meu html assim:
<h1>My Website Title Here</h1>
Usando css, quero substituir o texto pelo meu logotipo real. Eu tenho o logotipo não há problema através de redimensionar a tag e colocar uma imagem de fundo via css. No entanto, não consigo descobrir como se livrar do texto. Eu já vi isso basicamente empurrando o texto para fora da tela. O problema é que não me lembro onde o vi.
Respostas:
Esta é uma maneira:
Aqui está outra maneira de ocultar o texto, evitando a enorme caixa de 9999 pixels que o navegador criará:
fonte
Por que não usar simplesmente:
fonte
color: transparent;
funciona juntouser-select: none;
, a menos que você substitua a cor.Basta adicionar
font-size: 0;
ao seu elemento que contém texto.fonte
A maneira mais amigável entre navegadores é escrever o HTML como
depois use CSS para ocultar a extensão e substituir a imagem
Se você pode usar CSS2, existem maneiras melhores de usar a
content
propriedade, mas infelizmente a web ainda não está 100% lá.fonte
Ocultando o texto com a acessibilidade em mente:
Além das outras respostas, aqui está outra abordagem útil para ocultar o texto.
Esse método oculta efetivamente o texto, mas permite que ele permaneça visível para os leitores de tela. Esta é uma opção para considerar se a acessibilidade é uma preocupação.
Vale ressaltar que esta classe é usada atualmente no Bootstrap 3 .
Se você estiver interessado em ler sobre acessibilidade:
Iniciativa de acessibilidade da Web (WAI)
Documentação de acessibilidade MDN
fonte
Jeffrey Zeldman sugere a seguinte solução:
Deve consumir menos recursos do que
-9999px;
Leia tudo aqui:
http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/
fonte
Veja mezzoblue para um bom resumo de cada técnica, com pontos fortes e fracos, além de exemplos de html e css.
fonte
Tantas soluções complicadas.
O mais fácil é simplesmente usar:
fonte
você pode simplesmente ocultar seu texto adicionando este atributo:
fonte
!important
cláusula é realmente necessária no seu caso. No meu caso, funcionou bem sem ele também.Não use
{ display:none; }
Torna o conteúdo inacessível. Você deseja que os leitores de tela vejam seu conteúdo e o estilizem visualmente, substituindo o texto por uma imagem (como um logotipo). Usandotext-indent: -999px;
ou um método semelhante, o texto ainda está lá - apenas não visualmente. Usedisplay:none
e o texto se foi.fonte
O acima funciona bem no Thunderbird mais recente também.
fonte
você pode usar a
background-image
propriedade css ez-index
garantir que a imagem fique na frente do texto.fonte
z-index
se aplica aobackground-image
.Por que você não usa:
Se você não possui nenhum elemento span ou div, ele funciona perfeitamente para links.
fonte
A resposta é criar uma extensão com a propriedade
{display:none;}
Você pode encontrar um exemplo neste site
fonte
Esta é realmente uma área propícia à discussão, com muitas técnicas sutis disponíveis. É importante que você selecione / desenvolva uma técnica que atenda às suas necessidades, incluindo: leitores de tela, combinações de imagens / css / scripting on / off, SEO, etc.
Aqui estão alguns bons recursos para começar o caminho das técnicas de substituição de imagem padrão:
http://faq.css-standards.org/Image_Replacement
http://www.alistapart.com/articles/fir
http://veerle.duoh.com/blog/links/#l-10
fonte
Use a tag Condição para um navegador diferente e use o css que você precisa colocar
height:0px
ewidth:0px
também precisa colocarfont-size:0px
.fonte
Se o objetivo é simplesmente tornar o texto dentro do elemento invisível, defina o atributo color para ter 0 opacidade usando um valor rgba, como
color:rgba(0,0,0,0);
limpo e simples.fonte
Não me lembro de onde peguei isso, mas o uso com sucesso há séculos.
Meu mixin é sass no entanto, você pode usá-lo da maneira que quiser. Para uma boa medida, geralmente mantenho uma
.hidden
classe em algum lugar do meu projeto para anexar aos elementos para evitar duplicação.fonte
fonte
Experimente este código para reduzir e ocultar o texto
ou ocultar o uso em sua classe css
.hidetxt { visibility: hidden; }
fonte
repalce o conteúdo com o CSS
fonte
Eu costumo usar:
fonte
Se podemos editar a marcação, a vida pode ser mais fácil, basta remover o texto e ser feliz. Mas, às vezes, a marcação foi colocada pelo código JS ou simplesmente não temos permissão para editá-la, o css ruim se tornou a única arma colocada à nossa disposição.
Não podemos colocar
<span>
o texto em forma de quebra e ocultar a tag inteira. A propósito, alguns navegadores não apenas ocultam elementos,display:none
como também desabilitam os componentes internos.Ambas
font-size:0px
ecolor:transparent
podem ser boas soluções, mas alguns navegadores não as entendem. Não podemos confiar neles.Eu sugiro:
Usar
overflow:hidden
reforça nossa largura e altura. Alguns navegadores (não os nomearão ... IE ) podem ler largura e altura comomin-width
emin-height
. Quero impedir que a caixa seja ampliada.fonte
Usar o valor zero para
font-size
eline-height
no elemento faz o truque para mim:fonte
Para ocultar o texto do html, use a propriedade indent de texto no css
/ * para texto dinâmico, é necessário adicionar espaço em branco, para que o css aplicado não seja perturbado. nowrap significa que o texto nunca será quebrado para a próxima linha, o texto continuará na mesma linha até que uma
<br>
tag seja encontradafonte
Uma das maneiras de conseguir isso é usar
:before
or:after
. Eu uso essa abordagem há vários anos e, particularmente, funciona muito bem com ícones de vetor de glifo.fonte
Isso funcionou para mim com extensão (validação de nocaute).
fonte
Uma solução que funciona para mim:
HTML
CSS
fonte
A melhor resposta funciona para textos curtos, mas se o texto for agrupado, ele aparecerá na imagem.
Uma maneira de fazer isso é capturar erros com um manipulador de jquery. Tente carregar uma imagem, se ela falhar, gera um erro.
Consulte CÓDIGO DE AMOSTRA
fonte
fonte