首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

2.5  上下文选择器

到现在,你已经学习了很多复杂的术语。在前一节,我们以一个包含强调文字的标题为例,解释了基本的继承机制。你应该记得到,为了使得(X)HTML中的<em>元素拥有红色的文本,我们添加了一个em选择器。下面,我们再次给出这个CSS:

该CSS下侧的代码使得整个网站中所有被强调的文本都变成了红色,而不管它的父元素是什么。假如,你希望该规则仅仅影响作为<h1>标题子元素的<em>元素,那么我们需要对该规则进行一个简单的调整,使得被强调的文本放在某种上下文中。

上下文选择器(contextual selector)由两个或者更多的选择器组成,这些选择器之间以空格隔开。上面所构造的上下文选择器表明,该规则只有当最后一个选择器(em)是第一个选择器(h1)的直接后代(可以是儿子、孙子、曾孙,等等)时才起作用。如果浏览器没有发现完全吻合的匹配(即只发现在<h1>元素之外的<em>元素),那么它不会将该上下文选择器所定义的样式应用于该元素。

下面是两段类似的标记,不过第二个<em>元素的父元素是段落元素:

<h1>所拥有的<em>元素将变成红色,但是段落所拥有的<em>元素将不会变成红色——它将继承默认的字体颜色。如果需要控制此上下文之外需要强调的文本,可以为em定义新的选择器,使得该选择器具有你所需要的值,或者创建一个新的上下文选择器,并限定该选择器作用于以p为父元素的em元素。

第6章将再次使用上下文选择器来实现嵌套元素的紧密控制,如层次列表等存在问题的场景。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论