Ich habe ein Tag in meinem HTML wie folgt:
<h1>My Website Title Here</h1>
Mit CSS möchte ich den Text durch mein eigentliches Logo ersetzen. Ich habe das Logo dort kein Problem durch Ändern der Größe des Tags und Einfügen eines Hintergrundbildes über CSS. Ich kann jedoch nicht herausfinden, wie ich den Text loswerden kann. Ich habe es schon einmal gesehen, indem ich den Text vom Bildschirm gestoßen habe. Das Problem ist, ich kann mich nicht erinnern, wo ich es gesehen habe.
Antworten:
Dies ist eine Möglichkeit:
Hier ist eine andere Möglichkeit , den Text auszublenden und gleichzeitig die riesige 9999-Pixel-Box zu vermeiden, die der Browser erstellt:
quelle
Warum nicht einfach verwenden:
quelle
color: transparent;
funktioniert mituser-select: none;
, es sei denn, Sie überschreiben die Farbe.Fügen
font-size: 0;
Sie einfach zu Ihrem Element hinzu, das Text enthält.quelle
Die browserübergreifendste Methode ist das Schreiben von HTML als
Verwenden Sie dann CSS, um die Spanne auszublenden und das Bild zu ersetzen
Wenn Sie CSS2 verwenden können, gibt es einige bessere Möglichkeiten, die
content
Eigenschaft zu verwenden, aber leider ist das Web noch nicht zu 100% vorhanden.quelle
Ausblenden von Text unter Berücksichtigung der Barrierefreiheit:
Neben den anderen Antworten finden Sie hier einen weiteren nützlichen Ansatz zum Ausblenden von Text.
Diese Methode verbirgt den Text effektiv, lässt ihn jedoch für Bildschirmleser sichtbar. Dies ist eine Option, die Sie in Betracht ziehen sollten, wenn die Barrierefreiheit ein Problem darstellt.
Es sei darauf hingewiesen, dass diese Klasse derzeit in Bootstrap 3 verwendet wird .
Wenn Sie über Barrierefreiheit lesen möchten:
Web Accessibility Initiative (WAI)
Dokumentation zur MDN-Barrierefreiheit
quelle
Jeffrey Zeldman schlägt die folgende Lösung vor:
Es sollte weniger ressourcenintensiv sein als
-9999px;
Bitte lesen Sie hier alles darüber:
http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/
quelle
In Mezzoblue finden Sie eine schöne Zusammenfassung der einzelnen Techniken mit Stärken und Schwächen sowie Beispiel für HTML und CSS.
quelle
So viele komplizierte Lösungen.
Am einfachsten ist es einfach zu benutzen:
quelle
Sie können Ihren Text einfach ausblenden, indem Sie dieses Attribut hinzufügen:
quelle
!important
Klausel in Ihrem Fall tatsächlich benötigt wird. In meinem Fall hat es auch ohne gut funktioniert.Nicht verwenden
{ display:none; }
Es macht den Inhalt unzugänglich. Sie möchten, dass Screenreader Ihre Inhalte sehen und visuell gestalten, indem Sie den Text durch ein Bild (wie ein Logo) ersetzen. Mittext-indent: -999px;
einer ähnlichen Methode ist der Text immer noch vorhanden - nur nicht visuell. Verwenden Siedisplay:none
, und der Text ist weg.quelle
Das obige funktioniert auch im neuesten Thunderbird gut.
quelle
Sie können die CSS-
background-image
Eigenschaft verwenden undz-index
sicherstellen, dass das Bild vor dem Text bleibt.quelle
z-index
giltbackground-image
.Warum benutzt du nicht:
Wenn Sie kein span- oder div-Element haben, funktioniert es perfekt für Links.
quelle
Die Antwort besteht darin, eine Spanne mit der Eigenschaft zu erstellen
{display:none;}
Ein Beispiel finden Sie auf dieser Seite
quelle
Dies ist tatsächlich ein Bereich, der zur Diskussion reif ist und in dem viele subtile Techniken zur Verfügung stehen. Es ist wichtig, dass Sie eine Technik auswählen / entwickeln, die Ihren Anforderungen entspricht, einschließlich: Bildschirmleseprogramme, Bilder / CSS / Scripting-Ein / Aus-Kombinationen, SEO usw.
Im Folgenden finden Sie einige gute Ressourcen für den Einstieg in die Standardista-Bildersetzungstechniken:
http://faq.css-standards.org/Image_Replacement
http://www.alistapart.com/articles/fir
http://veerle.duoh.com/blog/links/#l-10
quelle
Verwenden Sie das Bedingungs-Tag für einen anderen Browser und verwenden Sie CSS, das Sie platzieren müssen,
height:0px
undwidth:0px
Sie müssen auch platzierenfont-size:0px
.quelle
Wenn es nur darum geht, den Text innerhalb des Elements unsichtbar zu machen, setzen Sie das Farbattribut mit einem rgba-Wert wie
color:rgba(0,0,0,0);
sauber und einfach auf 0 Deckkraft .quelle
Ich erinnere mich nicht, wo ich das aufgenommen habe, aber ich benutze es seit Ewigkeiten erfolgreich.
Mein Mixin ist in Sass, aber Sie können es verwenden, wie Sie es für richtig halten. Im Allgemeinen behalte ich eine
.hidden
Klasse irgendwo in meinem Projekt, um sie an Elemente anzuhängen, um Doppelarbeit zu vermeiden.quelle
quelle
Versuchen Sie diesen Code, um Text zu kürzen und auszublenden
oder um die Verwendung in Ihrer CSS-Klasse zu verbergen
.hidetxt { visibility: hidden; }
quelle
Repalce-Inhalte mit dem CSS
quelle
Ich benutze normalerweise:
quelle
Wenn wir das Markup bearbeiten können, kann das Leben einfacher sein. Entfernen Sie einfach Text und seien Sie glücklich. Aber manchmal wurde das Markup durch JS-Code platziert oder wir dürfen es überhaupt nicht bearbeiten. Schade, dass CSS die einzige Waffe war, die uns zur Verfügung stand.
Wir können
<span>
den Text nicht umbrechen und das gesamte Tag ausblenden. Übrigens verstecken einige Browser nicht nur Elemente mit,display:none
sondern deaktivieren auch die darin enthaltenen Komponenten.Beides
font-size:0px
undcolor:transparent
vielleicht gute Lösungen, aber einige Browser verstehen sie nicht. Wir können uns nicht auf sie verlassen.Ich schlage vor:
Die Verwendung
overflow:hidden
erzwingt unsere Breite und Höhe. Einige Browser (nennen sie nicht ... IE ) lesen möglicherweise Breite und Höhe alsmin-width
undmin-height
. Ich möchte verhindern, dass die Box vergrößert wird.quelle
Die Verwendung des Nullwerts für
font-size
undline-height
im Element macht den Trick für mich:quelle
Um Text vor HTML auszublenden, verwenden Sie die Eigenschaft text-indent in css
/ * Für dynamischen Text müssen Sie Leerzeichen hinzufügen, damit Ihr angewendetes CSS nicht stört. nowrap bedeutet, dass Text niemals in die nächste Zeile umgebrochen wird. Der Text wird in derselben Zeile fortgesetzt, bis ein
<br>
Tag gefunden wirdquelle
Ich erreiche dies unter anderem mit
:before
oder:after
. Ich habe diesen Ansatz mehrere Jahre lang verwendet und arbeite besonders gut mit Glyphenvektorsymbolen.quelle
Dies funktionierte bei mir mit span (Knockout-Validierung).
quelle
Eine Lösung, die für mich funktioniert:
HTML
CSS
quelle
Die beste Antwort funktioniert für kurzen Text, aber wenn der Text umbrochen wird, wird er nur im Bild angezeigt.
Eine Möglichkeit besteht darin, Fehler mit einem JQuery-Handler abzufangen. Versuchen Sie, ein Bild zu laden. Wenn dies fehlschlägt, wird ein Fehler ausgegeben.
Siehe BEISPIELCODE
quelle
quelle