我正在爲一個網站建設一些響應CSS,我很好奇,如果我可以使用CSS強制圖像呈現爲替代文字而不是圖像。我們展示了共同贊助商的標誌,但由於它們的大小不同,很難讓他們充滿信心地適應響應式設計。出於這個原因,我們希望將公司名稱存儲爲替代文本並進行渲染。當然,我們可以將名稱放在一個單獨的元素中,並使用CSS切換可見性,但使用替代文本看起來像是DRYer。響應式CSS:我可以強制渲染替代文字嗎?
回答
你可以存儲在一個數據屬性,而不是alt文本,然後做一些事情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;
}
}
你不能只用CSS做的原因和img
標籤是img
標記是因爲它們是replaced elements,這意味着僞不能與它們一起工作,因此使用:before
不適用於它們。
另一種方法,考慮到這是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;
}
}
如果你問我,我喜歡第二種方法多很多。
這兩種方法都顯示出前景。唯一的問題是這些共同贊助商標誌將通過CMS添加,因此我想避開任何涉及贊助商特定CSS(:before或background-image)的解決方案。爲了時間的緣故,我繼續使用了兩個元素策略: – GenuineSmile29 2013-03-06 18:17:02
您仍然需要在'img'上至少提供一個空的'alt'屬性,這樣您就不會遇到驗證錯誤。 – BoltClock 2013-10-15 12:23:57
第二種方法不好,如果你關心搜索引擎優化,因爲谷歌沒有索引圖像從CSS背景屬性(也不會具有該圖像的ALT文本具體) – xorinzor 2017-01-08 21:41:40
去與:
<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來切換IMG或基於響應斷點的「贊助商」的知名度。
尼科的這兩種方法看起來都不錯。唯一的問題是,這些共同贊助商標誌將通過CMS添加,因此我想避開任何涉及逐案CSS(:before或background-image)的解決方案。爲了時間的緣故,我採用了上面的兩個元素策略。
看到我的更新,我的意思是使用內容:attr(data-alt);',不是一個固定的文本片段。這樣你可以把你的「alt」放在一個數據屬性中 – bevacqua 2013-03-06 18:52:54
(回答爲尋找一個解決方案的任何其他人)
重要的旁白: 記住ALT的宗旨:以顯示有意義的替代信息(如果圖片未加載)。 - 所以任何實施不應該打破...(壞對可訪問性&搜索引擎優化)。
那麼說... 如果圖像沒有加載,將會顯示alt。所以(未經測試),但你可以嘗試通過JavaScript搞亂src屬性...這應該會導致瀏覽器顯示alt,因爲圖像不會加載。 - 您可能會發現這種方法與lazyload一樣有用。
另外要注意:一個破碎的IMG並沒有表現得像一個形象,所以你可以申請一個IMG:CSS規則之前(和使用內容:ATTR(ALT))
- 1. 我可以強制WPF渲染層嗎?
- 2. 'to_yaml'時,我們可以強制渲染文本爲二進制文件嗎?
- 3. 替代渲染(控制器())
- 4. CSS可以用於替代字體嗎?
- 5. 可以反應渲染ejs嗎?
- 6. Xcode中的mac的OpenGL開發。我可以強制渲染軟件嗎?
- 7. JSF強制渲染值表達式
- 8. CSS顏色影響文本渲染
- 9. 我可以在Sitecore 7控制器渲染中使用VaryByCustom嗎?
- 10. 我可以把變量放入渲染控制器嗎?
- 11. 我可以在移動Safari上使用user-css替代CSS嗎?
- 12. 我們可以在PhoneGap上製作家庭替代應用嗎?
- 13. 渲染ExtJS的控制在Ajax響應
- 14. 我可以更改tpl.php文件的渲染順序嗎
- 15. 我可以強制文字完全按照單詞分解嗎?
- 16. 從不渲染布局以響應xhrs
- 17. iOS替代PDF渲染器
- 18. 你可以強制頁面渲染後加載
- 19. 我可以換裝img替代文字嗎?
- 20. 在CSS中可以使用透明的photoshop圖像渲染嗎?
- 21. HTML和CSS中的評論可以創建渲染問題嗎?
- 22. 強制tomcat以英文返回響應
- 23. 我可以強制GWT忽略默認CSS類嗎?
- 24. java可以使用openAL渲染器嗎?
- 25. 你可以將Jade渲染爲Html嗎?
- 26. 可以在本地渲染fb_all.js嗎?
- 27. 我可以強制UL成爲OL嗎?
- 28. 我可以強制斷言刷新嗎?
- 29. 我可以「強制」線程喚醒嗎?
- 30. 我可以強制.htaccess刷新嗎?
你可能會更好過改爲使用圖片標題。 – BoltClock 2013-03-06 17:39:52