Masquer le texte à l'aide de css
J'ai une balise dans mon html comme ceci:
<h1>My Website Title Here</h1>
À l'aide de css je veux remplacer le texte avec mon logo actuel. J'ai le logo il n'y pas de problème via le redimensionnement de la balise et de mettre une image d'arrière-plan via css. Cependant, je ne peux pas comprendre comment se débarrasser du texte. Je l'ai vu faire avant que, fondamentalement, en poussant le texte en dehors de l'écran. Le problème est que je ne me souviens pas où je l'ai vu.
- il y a beaucoup de vieilles réponses ici: considérons upvoting la plus récente réponse de stackoverflow.com/a/27769435/2586761 pour l'exposer
Vous devez vous connecter pour publier un commentaire.
De cette manière:
Ici est une autre façon pour cacher le texte, tout en évitant l'énorme 9999 pixels que le navigateur va créer:
<br/>
s, le texte après ces pauses rester visiblePourquoi ne pas simplement utiliser:
color: transparent;
travaille avecuser-select: none;
, à moins de remplacer la couleur.Juste ajouter
font-size: 0;
à votre élément qui contient du texte.CSS:
HTML:
.myElement
quand je l'ai essayé.La plupart de la croix-navigateur de manière conviviale est d'écrire le code HTML comme
ensuite utiliser CSS pour cacher la durée et de remplacer l'image
Si vous pouvez utiliser CSS2, alors il ya quelques meilleures façons à l'aide de la
content
bien, mais malheureusement, le web n'est pas à 100% encore là.Jeffrey Zeldman suggère la solution suivante:
Il devrait être moins gourmand en ressource que
-9999px;
Veuillez lire tout ça ici:
http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/
Cacher du texte dans un souci d'accessibilité:
En plus des autres réponses, voici une autre approche utile pour cacher le texte.
Cette méthode dissimule efficacement le texte, mais qui lui permet de rester visible pour les lecteurs d'écran. C'est une option à envisager si l'accessibilité est un sujet de préoccupation.
Il est intéressant de souligner que cette classe est actuellement utilisé dans Bootstrap 3.
Si vous êtes intéressé à la lecture de l'accessibilité:
Web Accessibility Initiative (WAI)
MDN Accessibilité de la documentation
Voir mezzoblue pour un bon résumé de chaque technique, avec les forces et les faiblesses, en plus de html et css.
Donc de nombreuses solutions extrêmement complexes.
Le plus simple est tout simplement à utiliser:
Ne pas utiliser
{ display:none; }
Il rend le contenu inaccessible. Vous voulez que les lecteurs d'écran pour voir votre contenu, et visuellement style en remplaçant le texte par une image (comme un logo). En utilisanttext-indent: -999px;
ou une méthode similaire, le texte est toujours là — seulement, pas visuellement là. Utilisationdisplay:none
, et le texte a disparu.Ci-dessus fonctionne bien dans la dernière Thunderbird aussi.
vous pouvez utiliser le css
background-image
propriété etz-index
pour s'assurer que l'image reste devant le texte.Pourquoi n'utilisez-vous pas:
Si vous n'avez pas un span ou div élément, il fonctionne parfaitement pour les liens.
La réponse est de créer un span avec la propriété
{display:none;}
Vous pouvez trouver un exemple à ce site
C'est en fait une zone mûrs pour la discussion, avec de nombreuses et subtiles techniques disponibles. Il est important que vous sélectionnez/développer une technique qui répond à vos besoins, y compris: les lecteurs d'écran, les images/css/scripts/désactivation de combinaisons, seo, etc.
Voici quelques bonnes ressources pour commencer en bas de la route de standardista image des techniques de remplacement:
http://faq.css-standards.org/Image_Replacement
http://www.alistapart.com/articles/fir
http://veerle.duoh.com/blog/links/#l-10
D'utilisation de la balise pour les différents navigateur et l'utilisation de css, vous devez placer
height:0px
etwidth:0px
aussi, vous devez placerfont-size:0px
.Si le point est simplement de rendre le texte à l'intérieur de l'élément invisible, définissez l'attribut de couleur de 0 opacité à l'aide d'une valeur rgba comme
color:rgba(0,0,0,0);
propre et simple.Essayer ce code pour raccourcir et masquer le texte
CSS:
HTML:
ou de masquer les utiliser dans votre classe css
.hidetxt { visibility: hidden; }
Je ne me souviens pas où j'ai pris cette place, mais ont été de l'utiliser avec succès pour les âges.
Mon mixin est en sass cependant, vous pouvez l'utiliser de la manière qui vous convient. Pour faire bonne mesure j'ai généralement de garder un
.hidden
classe quelque part dans mon projet pour fixer les éléments à éviter les doubles emplois.repalce contenu avec le CSS
vous pouvez simplement masquer votre texte par ajouter cet attribut:
J'ai l'habitude d'utiliser:
Si nous pouvons modifier le balisage, la vie peut être plus facile, il suffit de retirer le texte et d'être heureux. Mais parfois, le balisage a été placé par le code JS ou nous ne sont pas autorisés à modifier, à tous, dommage que le css s'est avéré être la seule arme mis à notre disposition.
Nous ne pouvons pas mettre un
<span>
habillage du texte et de cacher l'ensemble de l'étiquette. Par ailleurs, certains navigateurs ne sont pas seulement les peaux les éléments avecdisplay:none
mais également désactive les composants à l'intérieur.Les deux
font-size:0px
etcolor:transparent
peut-être de bonnes solutions, mais certains navigateurs ne les comprends pas. Nous ne pouvons pas compter sur eux.Je suggère:
À l'aide de
overflow:hidden
applique notre largeur & de la hauteur. Certains navigateurs (ne sera pas les nommer... IE) peut lire la largeur et la hauteur quemin-width
etmin-height
. Je veux éviter que la boîte doit être agrandie.À l'aide de la valeur zéro pour
font-size
etline-height
dans l'élément de la fait le truc pour moi:À masquer le texte de html utiliser text-indent propriété en css
/* pour le texte dynamique, vous devez ajouter un espace blanc, de sorte que votre appliquées css va pas le déranger. nowrap signifie que le texte ne sera jamais un retour à la ligne, le texte continue sur la même ligne jusqu'à ce qu'un
<br>
balise est rencontréL'un des moyens que j'y parvenir est d'utiliser
:before
ou:after
. J'ai utilisé cette approche pour plusieurs années, et en particulier fonctionne très bien avec le glyphe de vecteur d'icônes.Cela a fonctionné pour moi avec span (knock-out de validation).
Une solution qui fonctionne pour moi :
HTML
CSS
La meilleure réponse travaille pour le texte court, mais si le texte passe, il s'affiche dans l'image.
Une façon de le faire est de déceler les erreurs avec un jquery gestionnaire. Essayez de charger une image, si elle échoue, elle renvoie une erreur.
Voir EXEMPLE DE CODE