Css 更新样式表中的另一个对象样式

Css 更新样式表中的另一个对象样式,css,Css,我想知道是否可以从样式表中更新另一个对象样式,例如,当您将鼠标悬停在 a:hover { set h1:display:block; } h1 { display: none; } 这在CSS中可能吗?不幸的是,这不可能,除非你的h1是a的孩子。您可以使用+同级选择器(演示,但除此之外,这是不可能的。例如 /* Show <h1> element inside <a> on hover */ a:hover h1 { display: block; } /*

我想知道是否可以从样式表中更新另一个对象样式,例如,当您将鼠标悬停在

a:hover { set h1:display:block; }

h1 { display: none; }

这在CSS中可能吗?

不幸的是,这不可能,除非你的
h1
a
的孩子。您可以使用
+
同级选择器(演示,但除此之外,这是不可能的。例如

/* Show <h1> element inside <a> on hover */
a:hover h1 {
    display: block;
}

/* Show <h1> adjacent to <a> when hovered */
a:hover + h1 {
    display: block;
}
/*悬停时显示内部元素*/
a:悬停h1{
显示:块;
}
/*悬停时显示相邻的*/
a:悬停+h1{
显示:块;
}

这里您唯一的其他选择是JavaScript。如果您已经在使用像jQuery或Mootools这样的框架,这非常简单,但使用普通JavaScript也非常简单。

不幸的是,这不是,除非您的
h1
a
的子代。您可以使用
+
兄弟选择器避开兄弟姐妹(演示,但除此之外,这是不可能的。例如

/* Show <h1> element inside <a> on hover */
a:hover h1 {
    display: block;
}

/* Show <h1> adjacent to <a> when hovered */
a:hover + h1 {
    display: block;
}
/*悬停时显示内部元素*/
a:悬停h1{
显示:块;
}
/*悬停时显示相邻的*/
a:悬停+h1{
显示:块;
}

这里您唯一的另一个选择是JavaScript。如果您已经在使用像jQuery或Mootools这样的框架,这非常简单,但是使用普通JavaScript也非常简单。

如果您将
h1
放在
a
中,那么您可以使用以下样式:

h1 {display:none;}
a:hover h1 {display:block;}
如果
h1
紧跟在
a
之后,则可以使用此选项:

h1 {display:none}
a:hover + h1 {display:block;}

否则,您必须使用Javascript。

如果您将
h1
放在
a
中,则可以使用以下样式:

h1 {display:none;}
a:hover h1 {display:block;}
如果
h1
紧跟在
a
之后,则可以使用此选项:

h1 {display:none}
a:hover + h1 {display:block;}

否则,您必须使用Javascript。

您可以根据前面元素的某个“状态”(状态是属性或其值、元素、类或id)设置元素的样式,并使用+
~
。 此元素必须是父元素的父元素或父元素的前兄弟元素(但不是后者的后代)

也许你想要最终实现的目标可以通过破解CSS3:target来实现,就像在labeled:target的演示中一样(显然不再是开着:悬停)


不要忘记使用(键盘和其他设备)。并添加:激活,因为某些IE有缺陷。

您可以根据前面元素的某些“状态”(状态是属性或其值、元素、类或id)来设置元素的样式,
+
~
。 此元素必须是父元素的父元素或父元素的前兄弟元素(但不是后者的后代)

也许你想要最终实现的目标可以通过破解CSS3:target来实现,就像在labeled:target的演示中一样(显然不再是开着:悬停)


不要忘记使用(键盘和其他设备)。并添加:激活,因为某些IE有bug。

+1对于一般同级选择器-我已经忘记了。我认为这应该是公认的答案,因为有
~
选择器,但这是OP的选择,不是我的:-)顺便问一下,为什么您喜欢在块元素中包装内联元素?这肯定会破坏内联元素的用途。+1对于一般同级选择器-我已经忘记了。我认为这应该是公认的答案,因为
~
选择器,但这是OP的选择,不是我的:-)顺便问一下,为什么喜欢在块元素中包装内联元素?这肯定会破坏内联元素的用途。