Łączę trochę responsywnych arkuszy CSS dla witryny, którą buduję. Ciekawi mnie, czy mogę użyć CSS do wymuszenia na obrazach renderowania jako tekstu zastępczego zamiast obrazów. Wyświetlamy logo cosponsorów, ale ze względu na ich zmienny rozmiar trudno jest je pewnie dopasować do responsywnego projektu. Z tego powodu chcielibyśmy zapisać nazwę firmy jako tekst alternatywny i renderować ją zamiast tego. Oczywiście możemy umieścić nazwę w osobnym elemencie i przełączać widoczność za pomocą CSS, ale użycie tekstu alt wydaje się DRYER.Responsive CSS: Czy mogę wymusić renderowanie tekstu alternatywnego?
Odpowiedz
Mogłeś zapisać, że w danych atrybut zamiast tekstu alt, a następnie zrobić coś like this:
<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;
}
}
Powód nie można to zrobić tylko z CSS i znacznik img
że img
oznacza, że są one replaced elements, co oznacza, że pseudo nie działa z nimi, a zatem używanie :before
nie działa z nimi.
Innym podejściem, biorąc pod uwagę to byłoby 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;
}
}
Jeśli pytasz mnie, lubię drugie podejście o wiele więcej.
Oba podejścia są obiecujące. Jedynym nieporozumieniem jest to, że te logotypy cosponsor zostaną dodane za pomocą CMS, więc chcę odejść od jakiegokolwiek rozwiązania wykorzystującego CSS dla sponsora (: przed lub obraz tła). Przez wzgląd na czas opracowałem strategię dwóch elementów: – GenuineSmile29
Nadal musisz podać co najmniej pusty atrybut "alt" na 'img', aby nie pojawiły się błędy sprawdzania poprawności. – BoltClock
Drugie podejście nie jest dobre, jeśli zależy ci na SEO, ponieważ google nie indeksuje obrazów z właściwości css '' '(nie ma też tekstu alternatywnego dla tego obrazu). – xorinzor
Wybraliśmy się z:
<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>
Za pomocą CSS, aby przełączać widoczność img lub „sponsora” na podstawie reagujących pułapki.
Oba podejścia Nico wyglądają dobrze. Jedynym ograniczeniem jest to, że te logotypy cosponsor zostaną dodane za pomocą CMS, więc chcę oderwać się od każdego rozwiązania wykorzystującego CSS w poszczególnych przypadkach (: before lub background-image). Przez wzgląd na czas opracowałem powyższą strategię dwóch elementów.
Zobacz moją aktualizację, miałem zamiar użyć' treści : attr (data-alt); ', a nie stały fragment tekstu. w ten sposób możesz umieścić swój "alt" w atrybucie danych – bevacqua
(odpowiedział za wszystkich innych szukających roztwór)
Ważne bok: Pamiętaj cel alt: wyświetlanie istotnych informacji Alternatywny (jeśli obraz nie ładuje). - w związku z tym każda implementacja nie powinna się zepsuć ... (zła pod względem dostępności, SEO2).
To powiedziawszy ... Jeśli obraz się nie załaduje, zostanie wyświetlony alt. Tak (untested), ale możesz spróbować zepsuć atrybut src przez javascript ... powinno to spowodować wyświetlanie przez przeglądarkę alt, ponieważ obraz się nie załaduje. - może ci się przydać takie podejście wraz z lazyload.
również zauważyć: złamany img nie zachowują się jak obraz, dzięki czemu można zastosować IMG: zanim reguły css (i wykorzystać w ciekawy zawartość: (alt))
- 1. CSS Center Responsive DIV
- 2. Czy mogę wymusić zawijanie wszystkich elementów za pomocą CSS flexbox?
- 3. CSS, Responsive, Ułóż pływające pudełka w stosie
- 4. React.js renderowanie tekstu jako HTML
- 5. Czy istnieje reset tekstu css?
- 6. Responsive "table"
- 7. Howto wymusić wygładzanie tekstu Java?
- 8. Zakrzywione renderowanie tekstu w matplotlib
- 9. Renderowanie tekstu iOS po powiększeniu
- 10. Czy mogę wymusić zależności gem w gemfile?
- 11. Czy mogę wymusić dodatkowy przebieg zaplanowanego wykonania?
- 12. Czy mogę wymusić debugowanie pythona w AssertionError?
- 13. Bootstrap Responsive Nav Bar
- 14. Czy mogę wymusić przeskok strony w druku HTML?
- 15. Google maps responsive resize
- 16. gradient tekstu css
- 17. Responsive CSS Image Anchor tags - Image Maps style
- 18. Jak wymusić ponowne renderowanie komponentu w Angular 2?
- 19. Czy mogę wybrać puste teksty z CSS?
- 20. Jak wymusić renderowanie IE9 w trybie dokumentu IE9?
- 21. Stylizacja tekstu wejściowego CSS
- 22. Jak warunkowo renderowanie klasę css z knockoutjs
- 23. React Responsive design
- 24. Wybierz węzeł tekstu z CSS
- 25. Wymusić div, aby przewinąć, jeśli tekst przepełnia HTML/CSS?
- 26. Wymiana ramy konfiguracyjne, szukając alternatywnego
- 27. Czy mogę zakończyć renderowanie widoku w asp.net mvc
- 28. jQuery Cycle 2 Responsive w/Centered Slides
- 29. Czy mogę wymusić pip, aby ponownie zainstalować obecną wersję?
- 30. Czy mogę wymusić kolejność atrybutów XML przy użyciu schematu?
Jesteś prawdopodobnie lepiej zamiast tego używają podpisów z rysunkami. – BoltClock