图解css3:核心技术与案例实战. 2.5 目标伪类选择器

简介:

2.5 目标伪类选择器

目标伪类选择器“:target”是众多实用的CSS3特性中的一个,用来匹配文档(页面)的URI中某个标志符的目标元素。具体来说,URI中的标志符通常会包含一个井号(#),后面带有一个标志符名称,例如“#contact”“:target”就是用来匹配ID为“contact”的元素的。换种说法,在Web页面中,一些URL拥有片段标识符,它由一个井号(#)后跟一个锚点或元素ID组合而成,可以链接到页面的某个特定元素。“:target”伪类选择器选取链接的目标元素,然后供定义样式。

2.5.1 目标伪类选择器语法

目标伪类选择器的语法如表2-7所示。

意     目标伪类选择器是动态选择器,只有存在URL指向该匹配元素时,样式效果才会生效。

 

2.5.2 浏览器兼容性

浏览器兼容性如表2-8所示。

表2-8 目标伪类选择器浏览器兼容性

选择器                                         

E:target   9 +√        √     √     9.6 +√     √

 

从表2-8可知,目标伪类选择器在IE 8及之前版本不被支持,但IE 用户点击目录里的链接仍将跳转到相应的标题,只是标题不会高亮显示。

示     在包含更多内容的页面中,高亮显示效果的确能给用户带来极好的体验。如果页面效果需要兼容IE低版本浏览器,就要用到JavaScript。这里有一些资源供大家参考。

●?“Suckerfish :target”,作者:Patrick Griffiths 和Dan Webb,网址如下。

 ?http://www.htmldog.com/articles/suckerfish/target

●?“Improving the usability of within-page links ”,作者:Bruce Lawson,网址如下。

 ?http://dev.opera.com/articles/view/improving-the-usability-of-within-page-l/

 

2.5.3 实战体验:制作手风琴效果

以前制作手风琴效果(Accordion)需要依赖JavaScript脚本。CSS3的目标伪选择器可不使用任何JavaScript代码实现手风琴效果。

页面中有三个区块,默认状态只显示三个区块的标题,点击其中一个标题时,其对应的内容就会显示;点击另一个标题时,对应区块内容将显示,而前一块内容将隐藏。目标伪类选择器制作的页面效果如图2-16所示。

通过目标伪类选择器“E:target”,显示和隐藏不同栏目的内容,从而实现手风琴效果。

<!DOCTYPE HTML>

<html lang="en-US">

<head>

  <meta charset="UTF-8">

  <title>垂直手风琴</title>

  <style type="text/css">

.accordionMenu {

  background: #fff;

  color:#424242;

  font: 12px Arial, Verdana, sans-serif;

  margin:0 auto;

  padding: 10px;

  width: 500px;

}

.accordionMenu h2 {

  margin:5px 0;

  padding:0;

  position: relative;

}

.accordionMenu h2:before {/*制作向下三角效果*/

  border: 5px solid #fff;

  border-color: #fff transparent transparent;

  content:"";

  height: 0;

  position:absolute;

  right: 10px;

  top: 15px;

  width: 0;

}

.accordionMenu h2 a {/*制作手风琴标题栏效果*/

  background: #8f8f8f;

  background: -moz-linear-gradient( top, #cecece, #8f8f8f);

  background: -webkit-gradient(linear, left top, left bottom,

               from(#cecece), to(#8f8f8f));

  background: -webkit-linear-gradient( top, #cecece, #8f8f8f);

  background: -o-linear-gradient( top, #cecece, #8f8f8f);

  background: linear-gradient( top, #cecece, #8f8f8f);

  border-radius: 5px;

  color:#424242;

  display: block;

  font-size: 13px;

  font-weight: normal;

  margin:0;

  padding:10px 10px;

  text-shadow: 2px 2px 2px #aeaeae;

  text-decoration:none;

}

.accordionMenu :target h2 a, /*目标标题的效果*/

.accordionMenu h2 a:focus,

.accordionMenu h2 a:hover,

.accordionMenu h2 a:active {

  background: #2288dd;

  background: -moz-linear-gradient( top, #6bb2ff, #2288dd);

  background: -webkit-gradient(linear, left top, left bottom,

             from(#6bb2ff), to(#2288dd));

  background: -webkit-linear-gradient( top, #6bb2ff, #2288dd);

  background: -o-linear-gradient( top, #6bb2ff, #2288dd);

  background: linear-gradient( top, #6bb2ff, #2288dd);

  color:#FFF;

}

.accordionMenu p {/*标题栏对应的内容*/

  margin:0;

  height: 0;/*默认栏目内容高度为0,达到隐藏效果*/

  overflow: hidden;

  padding:0 10px;

  -moz-transition: height 0.5s ease-in;

  -webkit-transition: height 0.5s ease-in;

  -o-transition: height 0.5s ease-in;

  transition: height 0.5s ease-in;

}

/*这部分是显示内容的关键代码*/

.accordionMenu :target p {/*展开对应目标内容*/

  height:100px;/*显示对应目标栏内容*/

  overflow: auto;

}

.accordionMenu :target h2:before {/*展开时标题三角效果*/

  border-color: transparent transparent transparent #fff;

}

  </style>

</head>

<body>

  <div class="accordionMenu">

        <div class="menuSection" id="brand">

      <h2><a href="#brand">Brand</a></h2>

      <p>Lorem ipsum dolor...</p>

        </div>

        <div class="menuSection" id="promotion">

            <h2><a href="#promotion">Promotion</a></h2>

            <p>Lorem ipsum dolor sit amet...</p>

        </div>

        <div class="menuSection" id="event">

            <h2><a href="#event">Event</a></h2>

            <p>Lorem ipsum dolor sit amet...</p>

        </div>

  </div>

</body>

</html>

维基百科的官网上就运用了目标伪类选择器来高亮显示脚注,如图2-17所示。

 

图2-17 目标伪类选择器高亮显示区块的运用

点击注解的上标链接时,其对应的注解内容区块就会高亮显示,以便用户在众多内容中找到对应的注解内容,方便用户阅读,而实现此功能仅一行代码就完成了。

ol.references > li:target, sup.reference:target, cite:target {

  background-color:#def;

除了能制作手风琴效果、高亮显示脚注之外,目标伪类选择器还可以用在以下场景,如表2-9所示。

表2-9 “:target”应用场景

效果         地址

高亮显示区块         http://www.red-team-design.com/get-to-know-your-css3-target-pseudo-class

从相互层叠的盒容器或图片中突出显示其中一项     http://virtuelvis.com/ gallery/ css3/ target/interface.html

tabs效果         http://css-tricks.com/css3-tabs/

幻灯片效果     http://designmodo.com/slider-css3/

灯箱效果         http://www.decodize.com/demos/CSS3-target-pseudo-class/gallery.html

相册效果         http://www.ie7nomore.com/fun/scroll/

 

注意 其中几项效果使用JavaScript制作效果会更好,因为纯CSS的版本可能存在潜在的易用性和可用性问题。

相关文章
|
15天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
29 5
|
21天前
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
1月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
43 2
CSS3 新增伪类有那些
CSS3 引入了多种新伪类,增强了样式控制的灵活性。新增的结构伪类如 `:nth-child(n)` 和 `:first-of-type` 可以根据元素的位置和类型进行选择;状态伪类如 `:enabled` 和 `:checked` 则根据元素的状态进行选择;动态伪类如 `:hover` 和 `:active` 则基于用户的交互行为。这些伪类让样式定制更加多样和强大。
|
2月前
|
前端开发
运用CSS伪类与属性,巧妙实现背景图片旋转效果
运用CSS伪类与属性,巧妙实现背景图片旋转效果
40 0
|
2月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
24 0
|
2月前
|
前端开发 JavaScript
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
JavaScript动态渲染页面爬取——CSS位置偏移反爬案例分析与爬取实战
35 0
|
15天前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
31 7