Ich erstelle ein Responsive CSS für eine Website, die ich erstelle, und ich bin neugierig, ob ich CSS verwenden kann, um Bilder als Alt-Text anstelle von Bildern zu rendern. Wir zeigen die Logos von Cosponsoren, aber aufgrund ihrer variablen Größe ist es schwierig, sie selbstbewusst in das Responsive Design zu integrieren. Aus diesem Grund möchten wir den Firmennamen als Alt-Text speichern und stattdessen rendern. Natürlich könnten wir den Namen in ein separates Element einfügen und die Sichtbarkeit mit CSS umschalten, aber die Verwendung von altem Text scheint DRYer zu sein.Responsive CSS: Kann ich das Rendern von Alt-Text erzwingen?
Antwort
könnten Sie speichern, dass in einem Daten-Attribut anstelle der Alt-Text, und dann like this etwas tun:
<span class='responsive' data-alt='foo'>
<img src='http://www.ponyfoo.com/img/thumbnail.png' alt='' />
</span>
@media only screen and (max-width: 300px) {
.responsive:before {
content: attr(data-alt);
}
.responsive img {
display: none;
}
}
Der Grund, warum Sie das nicht nur mit CSS tun können, und ein img
-Tag ist, dass img
Tags ist, weil sie replaced elements sind, was bedeutet, Pseudo funktioniert nicht mit ihnen, und daher funktioniert die Verwendung :before
nicht mit ihnen.
Ein anderer Ansatz wäre dies unter Berücksichtigung the following:
<span class='responsive'>foo</span>
.responsive {
background-image: url('http://www.ponyfoo.com/img/thumbnail.png');
text-indent: -9999em;
overflow: hidden;
width: 180px;
height: 180px;
display: block;
}
@media only screen and (max-width: 300px) {
.responsive {
background-image: none;
text-indent: initial;
overflow: initial;
}
}
Wenn Sie mich fragen, wie ich den zweiten Ansatz viel mehr.
Beide Ansätze sind vielversprechend. Der einzige Nachteil ist, dass diese Cosponsor-Logos über ein CMS hinzugefügt werden, so dass ich jede Lösung mit sponsorspezifischem CSS (: Vorher oder Hintergrundbild) vermeiden möchte. Der Zeit halber habe ich die Strategie mit zwei Elementen fortgesetzt: – GenuineSmile29
Sie müssen immer noch mindestens ein leeres Attribut 'alt' auf dem 'img' angeben, damit Sie keine Validierungsfehler bekommen. – BoltClock
der zweite Ansatz ist nicht gut, wenn Sie sich für SEO interessieren, da Google keine Bilder von der css 'background -Eigenschaft indiziert (noch hätte es speziell einen Alt-Text für das Bild) – xorinzor
Went mit:
<div class="cobranding">
<span>Brought to you by</span>
<span class="sponsor">Joe Shmoe Inc.</span>
<img src="img/graphics/joe_shmoe_logo.jpg">
</div>
CSS Mit der Sichtbarkeit des img oder der "Sponsor" auf ansprechende Haltepunkte basierend hin- und herzuschalten.
Beide Ansätze von Nico sehen gut aus. Der einzige Nachteil ist, dass diese Cosponsor-Logos über ein CMS hinzugefügt werden, so dass ich jede Lösung vermeiden möchte, die von Fall zu Fall CSS (: Vorher oder Hintergrundbild) betrifft. Um der Zeit willen ging ich mit der obigen Zwei-Elemente-Strategie weiter.
Siehe mein Update, ich meinte' Inhalt zu verwenden : attr (daten-alt); ', kein fester Textausschnitt. Auf diese Weise können Sie Ihr "alt" in ein Datenattribut einfügen – bevacqua
(für alle anderen beantwortet Suche nach einer Lösung)
Wichtige beiseite: den Zweck alt Denken Sie daran,: sinnvolle Alternative Informationen angezeigt werden (wenn das Bild nicht geladen wird). - so sollte jede Implementierung nicht brechen ... (schlecht für die Erreichbarkeit & SEO).
Das sagte ... Wenn das Bild nicht geladen wird, wird alt angezeigt. Also (ungeprüft), aber Sie könnten versuchen, das src-Attribut durch JavaScript zu vermasseln ... das sollte dazu führen, dass der Browser die alt anzeigt, da das Bild nicht geladen wird. - Sie könnten diesen Ansatz zusammen mit Lazyload nützlich finden.
Auch zu beachten: ein gebrochenes img wie ein Bild verhält sich nicht, so können Sie eine img anwenden: vor CSS-Regel (und verwenden Inhalt: attr (alt))
- 1. Kann ich das Einwickeln aller Artikel mit CSS flexbox erzwingen?
- 2. css Positionseinstellung von Responsive Inhalt
- 3. Wie kann ich das Rendern einer 3D-Szene rendern?
- 4. Debugging responsive CSS
- 5. Responsive Webdesign CSS
- 6. Druckseitenumbrüche mit CSS erzwingen
- 7. CSS Responsive Video
- 8. Spezialgitter css responsive
- 9. css responsive: mobile Version
- 10. Responsive 4x4 CSS Gitter
- 11. CSS Columns Responsive Issues
- 12. CSS Absolut Responsive Navigation
- 13. Kann ich das Debuggen von Python auf AssertionError erzwingen?
- 14. Responsive Website, CSS Breite von Typen
- 15. Html.LabelFür das Rendern von HTML
- 16. 3 Column Responsive CSS (Bestellung von Inhaltspositionen)
- 17. Kann das Laden von CSS-Dateien über http LINK-Header verzögert werden und blockiert das Rendern
- 18. ipad css responsive website bug
- 19. Free responsive Carousal - JQuery-CSS
- 20. CSS Responsive-Medien reagieren nicht
- 21. Responsive Website, CSS Typ Breite
- 22. Responsive CSS-Probleme in mobilen
- 23. CSS-Reaktivierung erzwingen
- 24. Wie kann ich das Entladen eines Perl-Moduls erzwingen?
- 25. Smarty nicht Rendern von Bildern und CSS
- 26. Erstellen Sie ein Responsive CSS-Ribbon
- 27. Hintergrund Bild gezoomt in Responsive Design (CSS)
- 28. Kann ich das Rendern einer Ansicht in asp.net beenden. Mvc
- 29. Wie kann ich das Rendern meiner WPF-ListBox beschleunigen?
- 30. Browser erzwingen, Reflow beim Ändern von CSS auszulösen
Du bist wahrscheinlich besser dran Verwenden Sie stattdessen Bildunterschriften. – BoltClock