jQuery技术

:target 伪类使用技巧 WEB前端开发

字号+ 作者:H5之家 来源:H5之家 2017-11-23 15:24 我要评论( )

web前端开发,专注前端开发,关注用户体验,关注国内外最新最好的前端开发技术和前端开发资讯的专业博客

什么是CSS伪类?

通常选择器不能表现HTML元素或属性的状态,我们可以在CSS选择器上添加伪类表示元素的状态、特征。伪类名写在选择器的:冒号后面,必要时可以添加(),例如:#comments:not(:target)。

:target 伪类用来指定那些包含片段标识符的 URL 的目标元素样式。例如:#target-test这个 URL 包含了#target-test 片段标识符。在HTML中, 标识符是元素的id(或者name属性)。 这个示例 URL 指向的是ID为”target-test”的元素 。看看这个最简单的例子,页面上有个元素,如下:

<div>这个元素的id为"target-test"</div>

添加CSS代码:

#target-test { background-color: transparent; border-bottom: 3px solid #ffdb3a; font-weight: 700; } #target-test:target { background-color: #ffdb3a; }

点击查看:

当然这个是最简单的例子,下面我介绍几个有意思的例子。(例子来自:https://github.com/ireade/demo.bitsofco.de)

例子1:显示/隐藏评论

不用任何javaScript实现显示/隐藏评论效果

Target_hide_show

主要的html代码:

<a href="#comments">Show Comments</a> <section> <h3>Comments</h3> <!-- Comments here... --> <a href="#">Hide Comments</a> </section>

主要的CSS代码:

#comments:not(:target) { display: none; } #comments:target { display: block; }

具体效果查看:

例子2:显示/隐藏屏幕侧边栏

这个比较常见,比较实用,技巧点:边栏高度自适应屏幕(100%),并且固定定位(position: fixed;)。

Target_Slideout_drawer

主要的CSS代码:

#nav { position: fixed; top: 0; height: 100%; width: 80%; max-width: 400px; } #nav:not(:target) { right: -100%; transition: right 1.5s; } #nav:target { right: 0; transition: right 1s; }

具体效果查看:

例子3:显示/隐藏模态框

还有填充屏幕的半透明遮罩层哦

Target_modal

主要的CSS代码:

#modal-container { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.8); display: flex; justify-content: center; align-items: center; } .modal { width: 70%; background: #fff; padding: 20px; text-align: center; } #modal-container:not(:target) { opacity: 0; visibility: hidden; transition: opacity 1s, visibility 1s; } #modal-container:target { opacity: 1; visibility: visible; transition: opacity 1s, visibility 1s; }

具体效果查看:

例子4:显示/隐藏边栏

Target_body

主要的CSS代码:

#body:not(:target) { main { width: 60%; } aside { width: 30%; } .show-sidebar-link { display: none; } } #body:target { main { width: 100%; } aside { display: none; } .hide-sidebar-link { display: none; } }

具体效果查看:

实际应用中存在的问题
  • 锚点链接会使页面跳到目标元素的位置,造成用户体验上的不爽;
  • 浏览器前进、后退时候会反复应用:target 伪类效果

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 实用的那才是最好的!xp使用技巧分享

      实用的那才是最好的!xp使用技巧分享

      2017-11-22 12:24

    • jQuery Mobile 的一些使用技巧 淘沙网

      jQuery Mobile 的一些使用技巧 淘沙网

      2017-08-06 13:00

    • jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析

      jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析

      2017-05-20 14:11

    • DataGridView使用技巧九:DataGridView的右键菜单(ContextMenuS

      DataGridView使用技巧九:DataGridView的右键菜单(ContextMenuS

      2017-05-07 16:01

    网友点评