2011-09-20 299 views
3

我有一個CSS類:CSS-爲什麼這不起作用?

.ImageBorder 
{ 
border-style:solid; border-color:Black; 
} 

我然後設置CSS類到一個asp.net圖片:

<asp:Image ID="Image3" runat="server" Height="150px" 
       ImageUrl="~/Photos/defaultA.jpg" CssClass="ImageBorder" /> 

但它不工作。它會工作,如果我把圖像在div標籤,然後設置div CSS類,但我寧願不這樣做?是什麼賦予了?

+0

你是否試圖做一個查看源,並實際上看看生成的標記?它有一類ImageBorder嗎? –

回答

5

在其他的答案指出,應指定邊框寬度。但是,您可能會遇到額外的「陷阱」:asp圖像可能具有「邊框寬度:0」內聯樣式。在這種情況下,您的規則將需要的重要聲明重寫它:!

.ImageBorder 
{ 
border: 1px solid black !important; 
} 

重要聲明忽略了CSS如下優先級的一般規則。通常,內聯樣式優先於嵌入式樣式表或外部樣式表,它們優先於用戶代理的樣式。一個重要的財產將優先於所有非重要財產,無論它在哪裏被宣佈。

然而,使用!重要可能會導致一些挫敗感。假設你想有一個圖像的所有相同的品質爲您的ImageBorder圖像,但與100的寬度可以編寫

<img src="superBorderedImage.png" class="ImageBorder" style="border-width:100"/> 

...但是,這是行不通的。您非常重視指定ImageBorder圖像的寬度爲1,因此您的「超級邊界圖像」不會有其特殊的粗邊框。出於這個原因,只有當你確定你以後不需要重寫它時,你才應該使用!重要的。

+0

這似乎解決了這個問題,雖然我從未聽說過重要的標籤。我會做額外的研究。謝謝 – broke

6

先給邊框寬度:

border: 1px solid black; 
+0

不需要http://jsfiddle.net/ZDCH8/ –

3

正如大衛指出,你不指定任何寬度你的邊界,這意味着它有沒有寬度,因此,你不能看到它。

您可以使用速記:

.ImageBorder 
{ 
    border: 1px solid black; 
} 

或手寫方式:

.ImageBorder 
{ 
    border-style: solid; 
    border-color: Black; 
    border-width: 1px; 
} 
+0

這可以在div內工作,但如果設置了圖像CSS屬性,它仍不會顯示。 – broke

+0

correct ..asp圖像的默認值是border-width:0px,這就是爲什麼它沒有和div .. –

+0

不是真正的http://jsfiddle.net/ZDCH8/ –