2011-04-26 36 views
0

基本上就是罐頭中所說的內容。CSS:選擇一個標籤,它是我想要的類的標籤的父項的父項

我有一個輸入標籤和獨立的JavaScript來控制它。當用戶插入數據時,它會自動更改其某個類的某個類,以便通過在其他地方定義的CSS更改其顏色,直到此時一切正常。下一步:我希望包含該輸入的整個div能夠更改顏色,以便在出現問題時警告用戶。這裏有一個問題:我怎樣才能選擇我想選擇只使用CSS的div? 下面是一些代碼,對於輸入的工作原理:

input.wrongVal { 
    border-color: red; 
    background-color: red; 
} 
input.wrongVal:active{ 
    background-color: white; 
} 

下面是從頁面的相關代碼:

<div class="infoinputContainer"> 
    <p class="inputLine"> 
     <span> 
      <input type="text" id="data"> 
      <label for="data">Data info</label> 
     </span> 

    </p> 

</div> 

我如何,只用CSS,選擇造型這裏顯示的DIV(沒有其他股利),例如,另一個背景?

+0

可能重複http://stackoverflow.com/questions/45004/complex-css-selector-for-parent -of-active-child) – 2011-04-26 15:53:20

回答

2

你不能用CSS做到這一點。然而,你可以做的是使用Javascript來改變div容器的類或將div容器包裝到另一個div中。

<div class="infoinputContainer invalid"> 
    <p class="inputLine"> 
     <span> 
      <input type="text" id="data"> 
      <label for="data">Data info</label> 
     </span> 

    </p> 
</div> 

或:

<div class="invalidInput"> 
    <div class="infoinputContainer"> 
    <p class="inputLine"> 
     <span> 
      <input type="text" id="data"> 
      <label for="data">Data info</label> 
     </span> 

    </p> 
    </div> 
</div> 
[複雜CSS選擇活動子的父(的
+0

我會嘗試更改JavaScript,以便它搜索具有特定類的父級並控制它。 – brunoais 2011-04-26 15:32:31

0

你不能只用css。

當用戶輸入信息時,你用什麼來改變班級?如果是javascript,則可以使用它來更改父級(或祖父級)的類。

+0

javascript是一個通用代碼。如果它不是輸入元素,它不知道它應該應用於哪個類。似乎必須改變js代碼。這意味着CSS真的沒有辦法? – brunoais 2011-04-26 15:26:45

+0

@brunoais不,你不能用css選擇父元素,你必須修改你的javascript /添加一些新的JavaScript。 – jeroen 2011-04-26 15:28:00

2

你不行。不是純粹的CSS。

CSS選擇器只能選擇/目標子女或子孫性能的目的:如果你能目標:parent(如在jQuery)瀏覽器將不得不等待渲染頁面的任何直到它處理所有子節點。

您必須改用JavaScript。