2010-11-15 135 views
24

在我目前的工作中,我需要在容器上產生雙邊框。邊框樣式:double;實現這一點,但是我的客戶希望外邊框更厚&內邊框爲正常厚度。具有比內邊界更厚的外邊框的CSS雙邊框

除了創建2個div,1個嵌套在另一個外部div具有更大的厚度,或通過使用邊框圖像有什麼辦法,我可以用CSS只用1格嗎?指定border-style:double;並且仍然能夠使外邊框變粗。

回答

46

輪廓包含在CSS3規範中,並允許將邊框和輪廓應用於單個元素。

outline屬性與border命令相同。但是,額外的偏移屬性允許邊框在元素的內部或外部進一步移動。

我用輪廓給邊界2種不同的顏色,改變代碼給你的邊界2種不同的大小。

#box { 
border: 1px double #000; 
outline: 2px solid #699; 
outline-offset: -9px; 
}
+2

只要注意不同之處。例如,如果您將元素陰影應用於元素,則輪廓會跟隨陰影及其偏移量,而不是原始框。 – 2011-08-18 10:41:01

+2

概述對CSS3並不陌生 - http://www.w3.org/TR/CSS21/ui.html#dynamic-outlines – BoltClock 2012-06-24 22:44:37

+0

最後發現它... – myTerminal 2014-09-16 10:25:44

6

不,這是不可能的。 CSS邊框寬度指定邊框的總厚度,而不考慮邊框樣式。我沒有看到比將其包裝在另一個DIV中更好的方法。

編輯:你可以使用outline來破解它,但有一個subtle difference between outline and border

border: double 4px black; 
outline: solid 3px black; 

(這將產生一個1px的內部和4PX外「邊界」,如果你能叫的話)

+0

優秀的「解決方案」海事組織! – Trufa 2010-11-15 03:44:49

+0

只是偶然碰到大綱,看起來就像是工作的正確工具! :)。這標誌着我在這個網站上的第一個問題:D。 – learnjourney 2010-11-15 03:45:36

0

或者你可以在CSS3使用邊界圖像與新奇的東西,雖然它止跌在大多數目前使用的瀏覽器中不受支持。