热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

css伪类和伪元素的学习

最近用js实现一些css效果。发现有很多东西效果其实可以用伪类或者伪元素实现。特地补充下这方面的知识。记录下为什么引入伪类和伪元素CSSintroducestheconceptso

最近用js实现一些css效果。发现有很多东西效果其实可以用伪类或者伪元素实现。特地补充下这方面的知识。 记录下

为什么引入伪类和伪元素

CSS introduces the concepts of pseudo-elements and pseudo-classes to permit formatting based on information that lies outside the document tree.

css引入伪类和伪元素概念是为了格式化文档树以外的信息,也就是说。伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者列表中的第一个元素。

伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的,比如说,当用户悬停在指定的元素时,我们可以用:hover来描述这个元素的状态。虽然它和普通的css类相似,可以为已有的元素添加样式,但是它只有处于dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类。

伪元素用户创建一些不在文档树中的元素,并为其添加样式,比如说,我们可以通过:before来在一个元素前增加一些文本,

伪类

clipboard.png

伪类-状态

  1. :link 选择未访问的链接
  2. :visited 选择已访问的链接
  3. :hover选择鼠标指针浮动在其上的元素
  4. :active选择活动的链接
  5. :focus 选择获取焦点的输入字段

伪类-结构化

  1. :not 一个否定伪类,用于匹配不符合参数选择器的元素
  2. :first-child 匹配元素的第一个子元素
  3. :last-child 匹配元素的最后一个子元素
  4. :first-of-type 表示一组兄弟元素中其类型的第一个元素
  5. :last-of-type 表示一组兄弟元素中其类型的最后一个元素
  6. :nth-child 根据元素的位置匹配一个或者多个元素,它接受一个an+b形式的参数

    0n+3或简单的3匹配第三个元素
    2n+1匹配位置为1,3,5,7...的元素 你可以用odd替换奇数行,even代替偶数行

  7. :nth-last-child 与:nth-child相似,不同之处在于它从最后一个子元素开始计数
  8. :nth-of-type与nth-child相似,不同之处在于它是只匹配特定类型的元素
  9. :nth-last-type 与nth-of-type相似,不同之处在于它是从最后一个子元素开始计数的。
  10. :only-child 当元素是其父元素中唯一的子元素时,:only-child匹配该元素
  11. :only-of-type 当元素是其父元素中唯一特定类型的子元素时,:only-child匹配该元素
  12. :target 当url带有瞄名称,指向文档内某个具体的元素时:target匹配该元素

伪类-表单相关

  1. :checked 匹配被选中的input元素,这个input元素包裹radio和checkbox.
  2. :default 匹配默认选中的元素
  3. :disabled 匹配禁用的表单元素
  4. :empty 匹配没有子元素的元素,如果元素中含有文本节点,html元素或者一个空格,则:empty不能匹配这个元素
  5. :enabled 匹配没有设置disabled属性的表单元素
  6. :in-range 匹配在指定区域内元素,
  7. :out-of-range 匹配不在指定区域内的元素
  8. :indetermimate 当某组中的单选框或复选框还没有选取状态时,:indeterminate匹配该组中所有的单选框或复选框
  9. :valid 匹配条件验证正确的表单元素
  10. :invalid 匹配提交验证错误的表单元素
  11. :optional :required匹配设置有无设置required属性的表单元素
  12. :read-only 匹配设置了只读属性的元素
  13. :read-write匹配处于编辑状态的元素

伪类-其他关

  1. :root 匹配文档的跟元素
  2. :fullscreen 匹配处于全屏模式下的元素

伪元素

clipboard.png

有时你会发现伪元素使用了两个冒号 (::) 而不是一个冒号 (:). 这是CSS3的一部分,并尝试区分伪类和伪元素. 大多数浏览器都支持这两个值。

1 ::before/:before 在被选元素前插入内容,需要使用content属性指定要插入的内容。被插入的内容实际上不在文档树中

2 ::after/:after 在被元素后插入内容.其用法和特性与:before相似

3 ::first-letter/:first-letter 匹配元素中文本的首字母

4 ::first-line/:first-line匹配元素中第一行的文本,这个伪元素只能用在快元素中。不能用在内联中

5 ::selection匹配被用户选择或者处于高亮状态的部分,该元素只支持双冒号的形式

6 ::placeholder 匹配占位符的文本,只有元素设置placeholder属性是,该伪元素才能生效。

全文cx痕迹很严重。详细文章请看http://www.alloyteam.com/2016...



推荐阅读
  • WPF之Binding初探
      初学wpf,经常被Binding搞晕,以下记录写Binding的基础。首先,盗用张图。这图形象的说明了Binding的机理。对于Binding,意思是数据绑定,基本用法是:1、 ... [详细]
  • Problemexplanation: ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 颜色迁移(reinhard VS welsh)
    不要谈什么天分,运气,你需要的是一个截稿日,以及一个不交稿就能打爆你狗头的人,然后你就会被自己的才华吓到。------ ... [详细]
  • TerraformVersionTerraformv0.9.11AffectedResource(s)Pleas ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文介绍了停用Vaadin焦点颜色的全局方法。焦点环是一种辅助功能,用于指示字段已从键盘交互获得焦点。每个组件和主题的焦点环样式不同。文章提供了一种方便的方法来找到和修改焦点环样式,通过检查shadow DOM中的标签并覆盖相应的样式。同时,还介绍了使用with或导入样式表的方法来应用修改后的样式。 ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
author-avatar
北冥其名
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有