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 content
te 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:none
en de tekst is verdwenen.
Antwoord 12
u kunt de css background-image
eigenschap en z-index
gebruiken 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 .hidden
ergens 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:0px
en width:0px
ook moet je font-size:0px
plaatsen.
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:0px
en color:transparent
Mogen 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:hidden
Enkorces onze width & amp; hoogte. Sommige browsers (zullen ze niet noemen … ie ) kunnen de breedte en hoogte lezen als min-width
en min-height
. Ik wil voorkomen dat het vak wordt vergroot.
Antwoord 24
Gebruik van nulwaarde voor font-size
EN line-height
in 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 :before
of :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 content
Property.
Dit lijkt het meest te worden gebruikt om ::before
en ::after
pseudo-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