2016-09-17 113 views
1

我有这样的代码:CSS选择相同类型的所有元素这个元素之后

<fieldset id="login"> 
<input type="text"> 
<input type="password"> 
<input type="checkbox" id="inline_invisible"> 
<label for="invisible">Login invisible</label> 
<input type="checkbox" id="remember"> 
<label for="remember">Remember me</label> 
</fieldset> 

标签不应该显示,直到输入框之一是焦点,所以我有这样的CSS:

#login input:focus + input + label { 
    display:inline-block; 
} 

但它仅在密码框处于焦点时选择第一个标签,而不是第二个标签,并且与第一个输入框无关。我该怎么办?只有CSS请,我不能改变HTML。

谢谢。

回答

1

使用general sibling选择器(~),该选择器将根据焦点输入选择所有label

(注:+选择只选择一个遵循同级元素)

label{ 
 
    display: none; 
 
} 
 
#login input:focus ~ label { 
 
    display: inline-block; 
 
}
<fieldset id="login"> 
 
    <input type="text"> 
 
    <input type="password"> 
 
    <input type="checkbox" id="inline_invisible"> 
 
    <label for="invisible">Login invisible</label> 
 
    <input type="checkbox" id="remember"> 
 
    <label for="remember">Remember me</label> 
 
</fieldset>

+1

也感谢你的回答。 –

+0

欢迎您:) – kukkuz