• 伪类与伪元素


    伪类与伪元素的出现是为了描述一些现有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中的定义其实意思是一样的,一个是给选择器添加效果,一个是将效果添加给选择器,换言之,其实他们就是为了让选择器有了更强大的描述能力。

  • 相关阅读:
    方法
    顺序结构 基本语句
    包,Doc
    运算符
    变量
    类型转换
    day7——JAVA数组
    day6——java方法
    day5——java流程控制
    day4
  • 原文地址:https://www.cnblogs.com/runhua/p/7133774.html
Copyright © 2020-2023  润新知