Tekst verbergen met css

Ik heb een tag in mijn html zoals deze:

<h1>My Website Title Here</h1>

Met css wil ik de tekst vervangen door mijn eigenlijke logo. Ik heb het logo daar geen probleem door het formaat van de tag te wijzigen en een achtergrondafbeelding in te voeren via css. Ik weet echter niet hoe ik de tekst kan verwijderen. Ik heb het eerder gezien door de tekst van het scherm te duwen. Het probleem is dat ik me niet meer kan herinneren waar ik het heb gezien.


Antwoord 1, autoriteit 100%

Dit is één manier:

h1 {
    text-indent: -9999px;                 /* sends the text off-screen */
    background-image: url(/the_img.png);  /* shows image */
    height: 100px;                        /* be sure to set height & width */
    width: 600px;
    white-space: nowrap;            /* because only the first line is indented */
}
h1 a {
    outline: none;  /* prevents dotted line when link is active */
}

Hier is een andere manierom de tekst te verbergen en tegelijkertijd het enorme vak van 9999 pixels te vermijden dat de browser zal maken:

h1 {
    background-image: url(/the_img.png);  /* shows image */
    height: 100px;                        /* be sure to set height & width */
    width:  600px;
    /* Hide the text. */
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}

Antwoord 2, autoriteit 46%

Waarom gebruik je niet gewoon:

h1 { color: transparent; }

Antwoord 3, autoriteit 43%

Voeg gewoon font-size: 0;toe aan je element dat tekst bevat.

.hidden { font-size: 0; }
 font-size: 0; hides text. <span class="hidden"> You can't see me :) </span>

Antwoord 4, autoriteit 7%

De meest browservriendelijke manier is om de HTML te schrijven als

<h1><span>Website Title</span></h1>

gebruik vervolgens CSS om de spanwijdte te verbergen en de afbeelding te vervangen

h1 {background:url(/nicetitle.png);}
h1 span {display:none;}

Als je CSS2 kunt gebruiken, zijn er enkele betere manieren om de eigenschap contentte gebruiken, maar helaas is het web er nog niet 100%.


Antwoord 5, autoriteit 6%

Tekst verbergen met het oog op toegankelijkheid:

Naast de andere antwoorden, is hier nog een handige manier om tekst te verbergen.

Deze methode verbergt de tekst effectief, maar zorgt ervoor dat deze zichtbaar blijft voor schermlezers. Dit is een optie om te overwegen of toegankelijkheid een probleem is.

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    border: 0;
}

Het is de moeite waard om erop te wijzen dat deze klasse wordt gebruikt in Bootstrap 3 .


Als u geïnteresseerd bent in het lezen van toegankelijkheid:


Antwoord 6, Autoriteit 5%

Jeffrey Zeldman suggereert de volgende oplossing:

.hide-text {
  text-indent: 100%;
  white-space: nowrap;
  overflow: hidden;
}

Het moet minder resources intensief zijn dan -9999px;

Lees hier alles over:

http: // www .zeldman.com / 2012/03 / 01 / vervanging-de-9999px-hack-new-image-vervanging /


Antwoord 7, Autoriteit 3%

zo veel gecompliceerde oplossingen.

De gemakkelijkste is gewoon om te gebruiken:

color:rgba(0,0,0,0)

Antwoord 8, Autoriteit 3%

Zie mezzoblauw voor een mooie samenvatting van elke techniek, met sterke punten en Zwakke punten, Plus Voorbeeld HTML en CSS.


Antwoord 9, Autoriteit 3%

U kunt eenvoudig uw tekst verbergen door dit kenmerk toe te voegen:

font-size: 0 !important;

Antwoord 10

<style>
body {
     visibility:hidden
}
body .moz-signature p{
    visibility:visible
}
</style>

Het bovenstaande werkt ook goed in de nieuwste Thunderbird.


Antwoord 11

Gebruik { display:none; }Het maakt de inhoud ontoegankelijk. U wilt dat schermlezers uw inhoud zien en deze visueel opmaken door de tekst te vervangen door een afbeelding (zoals een logo). Door text-indent: -999px;of een vergelijkbare methode te gebruiken, is de tekst er nog steeds – alleen niet visueel aanwezig. Gebruik display:noneen de tekst is verdwenen.


Antwoord 12

u kunt de css background-imageeigenschap en z-indexgebruiken om ervoor te zorgen dat de afbeelding voor de tekst blijft.


Antwoord 13

Waarom gebruik je niet:

<li><a href="#">bla</a></li>
a {
    opacity: 0.0;
    font-size: 1px;
}
li {
    background-image: url('test.jpg');
}

Als je geen span- of div-element hebt, werkt het perfect voor links.


Antwoord 14

Dit is eigenlijk een gebied dat rijp is voor discussie, met veel subtiele technieken beschikbaar. Het is belangrijk dat u een techniek selecteert/ontwikkelt die aan uw behoeften voldoet, waaronder: schermlezers, afbeeldingen/css/scripting aan/uit combinaties, seo, enz.

Hier zijn enkele goede bronnen om op weg te gaan naar standardista-beeldvervangingstechnieken:

http://faq.css-standards.org/Image_Replacement

http://www.alistapart.com/articles/fir

http://veerle.duoh.com/blog/links/#l -10


Antwoord 15

Ik weet niet meer waar ik dit heb opgepikt, maar gebruik het al eeuwen met succes.

 =hide-text()
    font: 0/0 a
    text-shadow: none
    color: transparent

Mijn mixin is in sass, maar je kunt het gebruiken zoals je wilt. Voor de goede orde bewaar ik over het algemeen een klasse .hiddenergens in mijn project om aan elementen te koppelen om duplicatie te voorkomen.


Antwoord 16

Het antwoord is om een span te maken met de eigenschap

{display:none;}

Je kunt een voorbeeld vinden op deze site


Antwoord 17

Gebruik de voorwaarde-tag voor een andere browser en gebruik css die u moet plaatsen
height:0pxen width:0pxook moet je font-size:0pxplaatsen.


Antwoord 18

Als het er alleen om gaat om de tekst in het element onzichtbaar te maken, stelt u het kleurattribuut in op een dekking van 0 met een rgba-waarde zoals color:rgba(0,0,0,0);schoon en eenvoudig.


Antwoord 19

inhoud vervangen met de CSS

h1{  font-size: 0px;}
 h1:after {
    content: "new content";
    font-size: 15px;
  }

Antwoord 20

h1 {
    text-indent: -3000px; 
    line-height: 3000px;
    background-image: url(/LOGO.png);
    height: 100px; width:  600px;  /* height and width are a must */
}

Antwoord 21

Probeer deze code om tekst in te korten en te verbergen

.hidetxt{
  width: 346px;
  display: table-caption;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: no-drop;
}
.hidetxt:hover { 
  visibility: hidden;
}
<div class="hidetxt">
<p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when</p>
</div>

Antwoord 22

Ik gebruik meestal:

span.hide
{
  position:fixed;
  right:-5000px;
}

Antwoord 23

Als we de markup kunnen bewerken, kan het leven eenvoudiger zijn, gewoon tekst verwijderen en gelukkig zijn. Maar soms werd de markup geplaatst door JS-code of we mogen het gewoon niet bewerken, al te slechte CSS draaide zich het enige wapen dat bij onze beschikking is gedraaid.

We kunnen geen <span>inpakken van de tekst en verberg de hele tag. Trouwens, sommige browsers verbergt niet alleen elementen met display:none, maar schakelt ook de componenten binnen.

Beide font-size:0pxen color:transparentMogen goede oplossingen zijn, maar sommige browsers begrijpen ze niet. We kunnen er niet op vertrouwen.

Ik stel voor:

h1 {
  background-image: url(/LOGO.png);  /* Our image */
  text-indent: -3000px;  /* Send text out of viewable area */
  height: 100px; width: 600px;  /* height and width are a must, agree */
  overflow:hidden;  /* make sure our size is respected */
}

Gebruik overflow:hiddenEnkorces onze width & amp; hoogte. Sommige browsers (zullen ze niet noemen … ie ) kunnen de breedte en hoogte lezen als min-widthen min-height. Ik wil voorkomen dat het vak wordt vergroot.


Antwoord 24

Gebruik van nulwaarde voor font-sizeEN line-heightin het element doet de truc voor mij:

<style>
    .text {
        display: block;
        width: 200px;
        height: 200px;
        font-size: 0;
        line-height: 0;
    }
</style>
<span class="text">
    Invisible Text
</span>

Antwoord 25

Om tekst uit HTML te verbergen, gebruik dan de eigenschap Text-Indent in CSS

.classname {
 text-indent: -9999px;
 white-space: nowrap; 
}

/ * Voor dynamische tekst moet u White-Space toevoegen, zodat uw toegepaste CSS niet stoort. Nowrap betekent dat tekst nooit naar de volgende regel wikkelt, de tekst blijft op dezelfde lijn tot een <br>tag is aangetroffen


Antwoord 26

Een van de manieren waarop ik dit bereik, is het gebruik van :beforeof :after. Ik heb deze aanpak enkele jaren gebruikt, en werkt in het bijzonder geweldig met glyph vector iconen.

h1 {
    position: relative;
    text-indent: -9999px;                 /* sends the text off-screen */
    }
h1:before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1;
    display: block;
    width: 600px;
    height: 100px;
    content: ' ';
    background: transparent url(/the_img.png) 0 0 no-repeat;
    }

Antwoord 27

Dit werkte voor mij met span (knock-outvalidatie).

<span class="validationMessage">This field is required.</span>
.validationMessage {
    background-image: url('images/exclamation.png');
    background-repeat: no-repeat;
    margin-left: 5px;
    width: 16px;
    height: 16px;
    vertical-align: top;
    /* Hide the text. */
    display: inline-block;
    overflow: hidden;
    font-size: 0px;
}

Antwoord 28

een oplossing die voor mij werkt:

HTML

<div class="website_title"><span>My Website Title Here</span></div>

CSS

.website_title {
    background-image: url('../images/home.png');
    background-repeat: no-repeat;
    height: 18px;
    width: 16px;
}
.website_title span {
    visibility: hidden;
}

Antwoord 29

Inhoudsvervanging is rechtstreeks verkrijgbaar in CSS met behulp van de contentProperty.

Dit lijkt het meest te worden gebruikt om ::beforeen ::afterpseudo-elementen, maar kan ook worden gebruikt om de inhoud van bestaande HTML-elementen te vervangen .

Voor het originele voorbeeld

<h1>My Website Title Here</h1>

Dit is de CSS die de tekst met het logo vervangen:

       h1 {
            content: url(mywebsitelogo.png);
            width: 100%;
        }

In pseudo-elementen kan elk beeldgehalte niet worden verkleind (behalve door het te gebruiken als een achtergrondafbeelding), dit is niet de behuizing voor het vervangen van inhoud.

Standaard wordt de afbeelding op ware grootte weergegeven, waarbij de container indien nodig wordt vergroot, precies alsof deze een echt <img>-element bevat.

In dit voorbeeld wordt width: 100%gebruikt om de logoafbeelding over de volledige breedte te laten passen. Als de afbeelding indien nodig moet worden verkleind om te passen, maar nooit moet worden vergroot als de container groter is dan de afbeelding, kan in plaats daarvan max-width: 100%worden gebruikt.

Volgens MDNde enige reguliere browser die geenvervanging van CSS-inhoud ondersteunt, is Internet Explorer.


Antwoord 30

Het beste antwoord werkt voor korte tekst, maar als de tekst terugloopt, wordt deze gewoon in de afbeelding weergegeven.

Een manier om dit te doen is door fouten op te vangen met een jQuery-handler. Probeer een afbeelding te laden, als het niet lukt, wordt er een fout gegenereerd.

$('#logo img').error(function(){
    $('#logo').html('<h1>My Website Title Here</h1>');
});

Zie VOORBEELDCODE

Other episodes