2011-10-17 52 views
2

在此示例中,是否可以將樣式應用於外部div,僅使用CSS和存在類「error」的內部div的事實?將樣式應用於包含某個類的div的div

<div> 
    <div class = "error"> 
    </div> 
</div> 

我知道我可以用javascript來做。

編輯

因爲它是不可能在純CSS,是不是真的低效的做這樣的事情?有更清潔的方法嗎?我不能輕易改變dom。對於後臺,錯誤類自動包裹在標籤/輸入軌道,但我想樣式包含DIV。

$(".error").parent().addClass("error-wrapper"); 
+0

編號CSS沒有冒泡備份到父級的方法。這只是一個自頂向下的系統。 –

+0

可能的重複[是否有CSS父選擇器?](http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector) – zzzzBov

+0

@spike,如果你打算問一個新問題,請創建一個新問題。 – zzzzBov

回答

2

僅使用CSS是不可能的。 沒有辦法在DOM樹中找到父元素。

但很容易使用像jQuery的東西。

+0

謝謝,看我的編輯 – spike

+0

那麼使用純JS和遠離jQuery會更有效率。或者甚至更好,如果你的錯誤包裝類是在一個ID /類的另一個div內,你可以使用該div來添加樣式作爲其子。 – 472084

+0

對不起,我沒有看到你的JS片段之前,我加了一個我的問題。對我來說似乎是最好的方式。 – spike

1

使用JavaScript的問題是隻有啓用它的人才會看到整體變化。如果這只是對頁面外觀的一點修改,那就去做吧。禁用JavaScript的普通用戶甚至不會注意到樣式丟失。如果這是一個主要的修改,如果JavaScript被禁用,元素將隨機出現在頁面周圍,那麼這不是一個很好的選擇。

最終,以這種方式使用JavaScript是一個壞習慣。實際上,如果你在後端去做這件事,那麼你只需要爲該部門增加一個班級。讓服務器做到這一點,而不是用戶。這就像告訴客戶去你的後座區域尋找更多數量的物品,而不是單單去貨架上。

+0

我同意這不是理想的,但它將是一個巨大的痛苦,我將它修復在服務器上,它是一個純粹的包裝div的裝飾背景風格,用戶沒有JS不需要看到。 – spike

+0

@spike:我總是告訴程序員現在要改變它,因爲稍後會有更多改變*。但是,如果它只是您添加的背景,我沒有看到使用JavaScript應用它的巨大問題。 – animuson

相關問題