2013-02-09 37 views
0

我正在尋找最簡單,最易維護的方式做到這一點:可能使用css僞內容添加圖像標題?

enter image description here

這些文本蛞蝓將在整個網站被附加到某些圖像。他們都說這個同樣的東西,但圖像是多種多樣的,來自CMS。

我知道我該怎麼做,將圖像設置爲在絕對定位的子div中定位相對和「有更好的方法」的div。

但是,因爲這需要HTML添加到每個圖像得到這種待遇,我正在尋找一種方法來做到這一點與CSS類使用:before僞元素。到目前爲止,將該類應用於包裝鏈接不起作用:

<a href="#" class="tabw"><img src="imagepath" alt=""></a> 

.tabw img:before { 
content: 'theres a better way'; 
color: red; 
font-size: 18px; 
} 

這種事情可能嗎?把所有東西放在CSS中意味着我所要做的就是讓CMS在需要時應用class屬性。

回答

0

呀,::before::after不上的圖像工作。但是你可以將它們應用到包裝 鏈接:

a{ 
    position: relative; 
} 

a, a > img{ 
    display:inline-block; 
} 

a::before{ 
    content: 'theres a better way'; 
    position: absolute;  
    left: 0; 
    top: 0;  
    width: 80%; 
    height: 20px; 
    left: 10%; 
    background: #000; 
    opacity: 0.4;  
    color: red; 
    font-size: 18px; 
} 

demo

如果你想在HTML中添加文本,你必須把真元與它在您的鏈接(和應用相同的規則,但不content

+0

我沒有意識到圖像和僞元素。這讓我瘋狂。這正是我想要做的。謝謝。 – Steve 2013-02-09 21:49:47

0

我會用jQuery做這樣的:

的Html

<div class="thumb"> 
    <img src="http://www.zupmage.eu/up/NvBtxn7LHl.png" alt="cover"/> 
    <div class="caption">My caption</div> 
</div> 

的CSS

.thumb { 
    position:relative; 
    width:230px; 
    height:230px; 
} 

.thumb img { 
    max-width:100%; 
} 

.thumb .caption { 
    display:none; 
    position:absolute; 
    top:0; 
    height:20px; 
    line-height:20px; 
    width:100%; 
    text-align:center; 
    background:rgba(255,255,255,0.5); 
} 

JQuery的

$('.thumb').hover(function() { 
    $(this).find('.caption').fadeIn(); 
}, function() { 
    $(this).find('.caption').hide(); 
}); 

fiddle

+0

謝謝,但它有點太牽扯。另外,如果我要在HTML中添加額外的div,我可以在沒有jQuery的情況下完成此操作。我正在尋找一種解決方案,將標題內容保留在CSS中。 – Steve 2013-02-09 21:50:55

0

注給任何人找到這個帖子:在Firefox 21和IE 9月10日這並沒有超大圖像的工作權利。它迫使圖像,即使在全球範圍設置爲最大寬度100%:100%

我只好跟着我選擇上面設置的標籤,以display:block而不是display:inline-block解決問題的答案。