首页 > 其他分享 >CSS篇二:其他选择器与权重/范围

CSS篇二:其他选择器与权重/范围

时间:2024-10-11 10:50:29浏览次数:3  
标签:attr 权重 伪类 元素 value 选择 选择器 CSS

一、其他选择器

简单聊聊篇一提到的三种基础选择器其实并不能完全覆盖商业项目的开发场景,所以其他类型选择器的使用频率也非常高,所以还是建议记住,避免某一场景下为难。

1、通配选择器

简述:使用较少,优缺点都很明显,优→统一设置;缺→样式覆盖,降低代码执行效率。

推荐度:一星

2、组合选择器

简述:有五种常用的组合形式,在特定场景下或许有用。

推荐度:三星

①、子代选择器

使用(>符号)

div p {
  color: red;
}
②、后代选择器

使用(空格分隔)

div p {
  color: red;
}
③、相邻兄弟选择器

使用(+符号)

(介:相邻兄弟可以理解为亲兄弟,拥有同一父级)

h1 + p {
  margin-top: 20px;
}
④、通用兄弟选择器

使用(~符号)

(介:通用兄弟可以理解为堂兄弟,拥有同一祖父级)

h1 ~ p {
  color: green;
}
⑤、分组选择器

使用(逗号分隔)

h1, h2, h3 {
  font-family: Arial, sans-serif;
}

3、伪类选择器

简述:伪类选择的种类很多,通常都是以(E:)形式展现(E代表标签名称/标签id名/标签class名等),同样是在特殊场景下进行使用。

推荐度:三星

①、动态伪类选择器
/* 未访问的链接 */
a:link {
  color: blue;
}

/* 访问过的链接 */
a:visited {
  color: purple;
}

/* 鼠标悬停链接 */
a:hover {
  color: red;
}

/* 元素被点击时的链接 */
a:active {
  color: yellow;
}

/* 元素获取焦点时的链接 */
a:focus {
  color: yellow;
}

②、结构伪类选择器
/* 子元素选择器 */

a:first-child {
  /* 选择每个父元素的第一个a元素 */
}

a:last-child {
  /* 选择每个父元素的最后一个a元素 */
}

a:nth-child(n) {
  /* 选择每个父元素的第n个a元素,n可以是数字、关键字或公式 */
}


/* 类型选择器 */

a:first-of-type {
  /* 选择每个父元素下同类型a元素的第一个 */
}

a:last-of-type {
  /* 选择每个父元素下同类型a元素的最后一个 */
}

a:nth-of-type(n) {
  /* 选择每个父元素下同类型a元素的第n个,n同上 */
}


/* 唯一子元素选择器 */

a:only-child {
  /* 选择每个父元素下唯一的a元素 */
}

a:only-of-type {
  /* 选择每个父元素下同类型中唯一的a元素 */
}


/* 空元素选择器 */

a:empty {
  /* 选择没有子元素的a元素 */
}
③、否定伪类选择器
/* 否定伪类 */
div:not(p) {
  color: purple; /* 选择div中所有非p元素,并将其颜色设置为紫色 */
}
④、状态伪类选择器

注意动态伪类选择其实也归属于状态伪类选择器,只是为了方便记忆,所以区分拿出。)


/* 元素启用/禁用状态 */

input:enabled {
  /* 选择每个启用的 <input> 元素 */
}

input:disabled {
  /* 选择每个禁用的 <input> 元素 */
}


/* 表单元素状态 */

input:checked {
  /* 选择每个被选中的 <input> 元素(仅用于单选按钮和复选框) */
}

select:default {
  /* 选择默认选项(例如,在<select>元素中预先选定的选项) */
}

input:read-only {
  /* 选择只读属性的元素 */
}

input:read-write {
  /* 选择没有只读属性的元素 */
}

input:required {
  /* 选择设置了"required"属性的元素 */
}

input:optional {
  /* 选择没有设置"required"属性的元素 */
}

input:valid {
  /* 选择所有验证正确的元素 */
}

input:invalid {
  /* 选择所有验证错误的元素 */
}
⑤、目标伪类选择器 

注意:这是唯一一个目标伪类选择器,如果你的URL是http://example.com/#section2,那么:target选择器将会匹配ID为section2的元素。你可以使用这个选择器来为当前活动的目标元素设置特定的样式)

使用度不高,了解即可!

:target {
  /* 选择当前活动的目标元素(即URL中#后面的部分所指向的元素) */
}

4、属性选择器

简述:属性选择器顾名思义,针对标签/元素的属性进行筛选,然后指定样式,使用范围度较小。

推荐度:两星

/* 存在性选择器 */
p[attr] {
  /* 选择所有具有attr属性的p元素 */
}

/* 等于选择器 */
p[attr="value"] {
  /* 选择所有attr属性等于"value"的p元素 */
}

/* 不等于选择器 */
p[attr!="value"] {
  /* 选择所有attr属性不等于"value"的p元素 */
}

/* 开头选择器 */
p[attr="value"] {
  /* 选择所有attr属性值以"value"开头的p元素 */
}

/* 结尾选择器 */
p[attr$="value"] {
  /* 选择所有attr属性值以"value"结尾的p元素 */
}

/* 包含选择器 */
p[attr*="value"] {
  /* 选择所有attr属性值中包含"value"的p元素 */
}

/* 特定选择符选择器 */
p[attr|="value"] {
  /* 选择所有attr属性值是一个完整单词,且以"value"开头的p元素 */
}

二、选择器之间的权重与范围

1、选择器的范围

注意:这个顺序并不是绝对的,因为在实际应用中,选择器的包裹度还受到文档结构、样式表的顺序和特异性等因素的影响。

由大到小排序:

①通配符选择器—(*)

②元素/标签选择器(如 divp

③类选择器(如 .class

④属性选择器‌(如 [type="text"]

⑤伪类选择器‌(如 :hover:active:first-child 等)

⑥ID选择器(如 #id

⑦‌复合选择器‌(如 div.class#id:hover

⑧后代选择器‌(如 div p

⑨子选择器‌(如 div > p

⑩‌相邻兄弟选择器‌(如 h1 + p

⑪通用兄弟选择器‌(如 h1 ~ p

2、选择器的权重

直述ID选择器  >  类选择器/伪类选择器/属性选择器  >  元素选择器/伪元素选择器  >  通配符选择器/关系选择器/否定伪类  >  继承的样式

注意点重要性标记‌(!important):这不是选择器的一部分,但可以附加在任何样式的末尾,以使其权重高于其他所有非!important的样式。

标签:attr,权重,伪类,元素,value,选择,选择器,CSS
From: https://blog.csdn.net/weixin_63022858/article/details/142844880

相关文章

  • CSS选择器(速通版!!)
    目录1.网页中引用CSS的方法1.1行内式1.2 内嵌式1.3 外链式2基本选择器2.1类选择器2.2id选择器2.3 标签选择器 3复合选择器3.1交集选择器3.2并集选择器4.关系选择器4.1后代选择器4.2子代选择器4.3相邻兄弟选择器4.4通用兄弟选择器前言上一期我......
  • CSS——表格、表单、链接和导航菜单
    一、设置表格样式CSS中有许多表格属性可以用来设置表格的样式,以下是一些常用的表格属性:border-collapse:设置表格的边框合并规则。可以设置为collapse来合并边框,或设置为separate来分隔边框(默认值为separate)。border:设置表格的边框样式、宽度和颜色。例如:border:1pxsoli......
  • 第五章CSS盒模型
    5.1盒模型的定义盒模型示意图:5.2CSS元素的高度和宽度5.2.1盒模型的宽度width5.2.2盒模型的高度height<!DOCTYPEhtml><html> <head> <metacharset="utf-8"> <title></title> <style> *{ margin:0px; padding:0px; ......
  • 第五章 CSS盒模型
    5.1盒模型的定义盒模型是在CSS中用来描述和控制一个元素在页面中所占空间的一种模型。在盒模型中,每个元素被看作一个矩形的盒子,其大小由四个边界确定:上边界(top)、下边界(bottom)、左边界(left)和右边界(right)。这些边界围成一个矩形,决定了元素的尺寸和位置。盒模型由以下几个部分组......
  • CSS Flex 布局教程
    简介弹性盒子是CSS3的一种新的布局模式。CSS3弹性盒(FlexibleBox或flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白......
  • CSS:transform-origin
    transform-origin:设置旋转元素的基点位置,即旋转轴的位置。而transform主要是平移和旋转的功能。使用transform-origin属性必须先使用transform属性(旋转)transform-origin:x-axisy-axisz-axis;默认值为:50%50%0x-axis的值可为left、center、right、lenght、%,left,center......
  • CSS规范写法
    CSS规范手册一 CSS书写顺序1.1 **{/*显示属性*/displaypositionfloatclearcursor… /*盒模型*/marginpaddingwidthheight/*排版*/vertical-alignwhite-spacetext-decorationtext-align… /*文字*/colorfontcontent/*边框背景。为什么要......
  • 面试 - 补充 - HTML/CSS(可能问到的题目展示)
    如何理解HTML语义化?默认情况下,哪些元素是块级元素,哪些是内联元素?盒模型宽度如何计算?margin纵向重叠的问题margin负值的问题BFC理解和应用float布局的问题flex画色子absolute和relative依据什么定位?居中对齐有哪些实现方式line-height继承(有坑)rem是什么如何实现响应式......
  • html-css背景属性
    background的常见背景属性background-color:#ff99ff;设置元素的背景颜色background-image:url(图片地址);将图像设置为背景。background-repeat:no-repeat;设置背景图片是否重复及如何重复,默认平铺满。-no-repeat不要平铺;-repeat-x横向平铺;-repeat-y纵向平铺。......
  • css表格表单
    1.项目符号样式list-style-type无序列表:nonedisccirclesquare(无,黑点,圆圈,方格)有序列表:decimaldecimal-leading-zero,lower-alpha,upper-alpha,lower_roman,upper-roman<!DOCTYPEhtml><html> <head> <title>ListStyleType</title> <stylety......