伪类与伪元素

伪类与伪元素的出现是为了描述一些现有CSS无法描述的东西,比如“段落的第一行”、“文章首字母”

伪类:用于操作一些已经在文档树中存在的元素

伪元素:用于创建一些不在文档树中的元素

常见的伪类:

(1)表示状态:

:link    选择未访问的链接,

:visited     选择已访问的链接,

:hover    选择鼠标指针移入的链接,

:active    被激活的链接,即按下单击鼠标左键后的链接,

:focus    选择获取焦点的输入字段

前四个是链接状态的伪类,在设置的时候必须按照上面的顺序来设置,记忆技巧是:

L(:link)OV(:visited)E     H(:hover)A(:active)TE ——爱恨法则

(2)结构化伪类:(理解:first-child以及:first-of-type的区别就能很好的理解其他结构化伪类)

:not(selector)    用于选择所有selector之外的元素

:first-child    用于匹配所有或指定父元素的第一个规定类型子元素,要注意,匹配成功的条件必须是第一个子元素,以及是规定类型,否则匹配失败

:last-child    略

:first-of-type    匹配body或指定父元素的所有规定类型元素中出现的第一个元素

:last-of-type    略

:nth-child(num)    :nth-child(1)跟:first-child的作用是一致的。括号内还可以引入公式或是关键字,比如odd,even以及an+b等类似的公式

:nth-last-child(num)    和:nth-child(num)作用类似,但是数字是倒数的

:nth-of-type    :nth-of-type(1)跟:first-of-type的作用是一致的。括号内还可以引入公式或是关键字,比如odd,even以及an+b等类似的公式

:only-of-type    当元素是其父元素特定类型的子元素中唯一一个时,:only-child匹配该元素;

:only-child    当元素是其父元素中唯一一个子元素时,:only-child匹配该元素;

:target    当URL带有锚名称,指向文档内某个具体的元素时,:target匹配该元素;

(3)表单相关伪类:

:checked    匹配被选中的input元素,这个input元素包括radio和checkbox

:default    匹配默认选中的元素

:disabled    匹配禁用的表单元素

:empty    匹配没有子元素的元素。如果元素中含有文本节点、html元素或者一个空格,匹配失败

:enabled    匹配没有禁用属性的表单元素

:indeterminate    匹配某组未被选中的单选框或复选框

:valid    匹配条件验证正确的表单元素

:invalid    略

::optional    匹配是具有optional属性的表单元素。当表单元素没有设置为required时,即为optional属性;

:required    匹配设置了required属性的表单元素;

:read-write    匹配处于编辑状态的元素。input,textarea和设置了contenteditable的HTML元素获取焦点时即处于编辑状态;

:lang    匹配设置了特定语言的元素,设置特定语言可以通过为了HTML元素设置lang=””属性,设置meta元素的charset=””属性,或者是在http头部上设置语言属性;

常见的伪元素:

:before    在元素前加入一个新元素,新元素内容由content属性决定,可以是纯文本,也可以用content:url()方式引入图片,所有在该选择器中的规则都是用来描述这个新元素的

:after    略

:first-letter    选择每个

元素的第一个字母

:first-line    选择每个

元素的第一行

伪类与伪元素在W3C中的定义其实意思是一样的,一个是给选择器添加效果,一个是将效果添加给选择器,换言之,其实他们就是为了让选择器有了更强大的描述能力。


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文转载自:众成翻译译者:为之漫笔链接:http://www.zcfy.cc/article/239原文:http...
    极乐君阅读 7,568评论 1 62
  • 伪类: 伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的.比如说,当用户...
    葶寳寳阅读 1,084评论 1 13
  • 前言 一直把伪元素和伪类混为一谈,这次做了一下这个区分;借鉴文章:https://segmentfault.com...
    BULL_DEBUG阅读 313评论 0 1
  • 伪类 伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态时根据用户行为而动态变化的。 1. a 元素...
    VirtualX阅读 927评论 0 0
  • 每日写反思,今天不禁再次想起,自己为了什么而写? 前段时间,有一天,自己打算开始每天都记录自己的时间开...
    耐心长阅读 171评论 0 0

友情链接更多精彩内容