2017-09-20 45 views
1

我目前正在嘗試修改生成的HTML頁面的CSS。我無權在此頁面上運行腳本或更改基本HTML。CSS,修改與焦點輸入不相鄰的標籤

形式具有輸入和我想爲他們創造浮動標籤,我通常做這樣的事情:但是生成的

input:focus + label { top: 100%; } 

<input id="email"> 
<label for="email">E-mail</label> 

使用CSS這樣的事HTML的結構是這樣的,在輸入之前的標籤和錯誤塊之間:

<label for="email">Email Address</label> 
<div aria-hidden="true" class="error itemLevel"> 
<p aria-live="polite" role="alert" tabindex="1">Please enter a valid email address.</p> 
<input aria-required="true" id="email" title="Email address that can be used to contact you." type="text"> 

我將如何使用純CSS定位標籤?

+0

您是否在尋找目標的純CSS以前的兄弟姐妹?這是不可能的 - [看到這個問題和相關答案](https://stackoverflow.com/questions/1817792/is-there-a-previous-sibling-css-selector) – PTD

+0

謝謝,我已經看到了這個問題以及提及可以選擇以前的兄弟姐妹的規範。只是不知道它是否已被添加或報廢。 –

回答

2

您可以使用屬性選擇:

label[for="email"] { ... } 
+0

太棒了,謝謝。如果每個輸入都使用不同的ID,會怎麼樣? –

+0

我還不確定你到底想要什麼。他們必須有不同的ID。當然,你可以單獨爲每個'for'標籤尋址,或者你可以簡單地將所有*標籤作爲'label'地址。 – Johannes

+0

它們全都在父級div中,所以最後我實際上是用'.parentClass:focus-within label { } ' –