首页 > 其他分享 >CSS选择器

CSS选择器

时间:2024-07-15 23:26:12浏览次数:11  
标签:color 元素 选中 div 选择器 CSS 属性

1.CSS基本选择器

1. 通配选择器 2. 元素选择器 3. 类选择器 4. id 选择器

1.1通配选择器

作用:可以选中所有的 HTML 元素。

* {
    属性名: 属性值;
}
备注:可用于清除样式

1.2 元素选择器

作用:为页面中 某种元素 统一设置样式。

标签名 {
    属性名: 属性值;
}
/* 选中所有div元素 */
div {
    color: orange;
    font-size: 40px;
}
/* 选中所有p元素 */
p {
    color: blue;
    font-size: 60px;
}
备注:元素选择器无法实现 差异化设置 ,例如上面的代码中,所有的 p 元素效果都一样。

1.3 类选择器

作用:根据元素的 class 值,来选中某些元素。( class 翻译过来有: 种类类别 的含义,所以 class 值,又称:类名。)
.类名 {
    属性名: 属性值;
}
/* 选中所有class值为uname的元素 */
.uname {
color: orange;
}
/* 选中所有class值为age的元素 */
.age {
color: blue;
}

注意点:

1. 元素的 class 属性值不带 . ,但 CSS 的类选择器要带 . 。 2. class 值,是我们自定义的,按照标准:不要使用纯数字、不要使用中文、尽量使用英文与数字的组合,若由多个单词组成,使用 - 做连接,例如: left - menu ,且命名要有意义,做到 “ 见名知意 ” 。 3. 一个元素不能写多个 class 属性,下面是 错误示例:
<!-- 该写法错误,元素的属性不能重复,后写的会失效 -->
<h1 class="user" class="vip">你好啊</h1>
4. 一个元素的 class 属性,能写多个值,要用空格隔开,例如:
<!-- 该写法正确,class属性,能写多个值 -->
<h1 class="user vip">你好啊</h1>

1.4 ID选择器

作用:根据元素的 id 属性值,来 精准的 选中 某个 元素。
#id值 {
    属性名: 属性值;
}
/* 选中id值为student的那个元素 */
#student {
    color: red;
    font-size: 60px;
}

注意:

1.id 属性值:尽量由字母、数字、下划线( _ )、短杠( - )组成,最好以字母开头、不要包含空格、区分大小写。

2.一个元素只能拥有一个 id 属性,多个元素的 id 属性值不能相同。

3.一个元素可以同时拥有 id 和 class 属性。

2. CSS复合选择器

CSS 选择器整体分类两大类: 一、基本选择器:         ①通配选择器         ②元素选择器         ③类选择器         ④ ID 选择器 二、复合选择器:         ①交集选择器         ②并集选择器         ③后代选择器         ④子元素选择器         ..... 1. 复合选择器建立在基本选择器之上,由多个基础选择器,通过不同的方式组合而成。 2. 复合选择器可以在复杂结构中,快速而准确的选中元素。

2.1 交集选择器

作用:选中 同时符合 多个条件的元素。 交集有并且的含义(通俗理解:............ 的意思)
/* 选中:类名为beauty的p元素 */
p.beauty {
    color: blue;
}
/* 选中:类名包含rich和beauty的元素 */
.rich.beauty {
    color: green;
}
注意: 1. 有标签名,标签名必须写在前面。 2. id 选择器、通配选择器,理论上可以作为交集的条件,但实际应用中几乎不用 —— 因为没有意义。 3. 交集选择器中 不可能 出现 两个元素选择器 ,因为一个元素,不可能即是 p 元素又是 span 元素。 4. 用的最多的交集选择器是:元素选择器配合类名选择器,例如: p.beauty 。

2.2 并集选择器

作用:选中多个选择器对应的元素,又称: 分组选择器所谓并集就是或者的含义(通俗理解:要么......要么...... 的意思)
/* 选中id为high,或类名为rich,或类名为handsome的元素 */
#high,
.rich,
.handsome {
    font-size: 40px;
    background-color: skyblue;
    width: 200px;
}
多个选择器通过 , 连接,此处 , 的含义就是: 注意: 1. 并集选择器,我们一般竖着写。 2. 任何形式的选择器,都可以作为并集选择器的一部分 。 3. 并集选择器,通常用于集体声明,可以缩小样式表体积。

2.3 HTML元素间的关系

分为:①父元素、②子元素、③祖先元素、④后代元素、⑤兄弟元素。 1. 父元素: 直接 包裹某个元素的元素,就是该元素的父元素。 2. 子元素:被父元素 直接 包含的元素(简记:儿子元素)。 3. 祖先元素:父亲的父亲 ......,一直往外找,都是祖先。( 备注:父元素,也算是祖先元素的一种。) 4. 后代元素:儿子的儿子 ...... ,一直往里找,都是后代。 5. 兄弟元素:具有相同父元素的元素,互为兄弟元素。

2.4 后代选择器

作用:选中指定元素中,符合要求的后代元素。
/* 选中ul中的所有li */
ul li {
    color: red;
}
/* 选中ul中所有li中的a */
ul li a {
    color: orange;
}
/* 选中类名为subject元素中的所有li */
.subject li {
    color: blue;
}
/* 选中类名为subject元素中的所有类名为front-end的li */
.subject li.front-end {
    color: blue;
}
注意: 1. 后代选择器,最终选择的是后代,不选中祖先。 2. 儿子、孙子、重孙子,都算是后代。 3. 结构一定要符合之前讲的 HTML 嵌套要求,例如:不能 p 中写 h1 ~ h6 。

2.5 子代选择器

作用:选中指定元素中,符合要求的 元素( 儿子元素)。( 子代选择器又称:子元素选择器、子选择器。 )
/* div中的子代a元素 */
div>a {
    color: red;
}
/* 类名为persons的元素中的子代a元素 */
.persons>a{
    color: red;
}
选择器之间,用 > 隔开, > 可以理解为:" xxx 的子代",其实就是儿子的意思。 注意: 1. 子代选择器,最终选择的是子代,不是父级。 2. 子、孙子、重孙子、重重孙子 ...... 统称后代! , 就是指 儿子

2.6 兄弟选择器

相邻兄弟选择器:

作用:选中指定元素后,符合条件的 相邻兄弟元素。( 所谓相邻,就是 紧挨着 他的下一个 )
/* 选中div后相邻的兄弟p元素 */
div+p {
    color:red;
}

通用兄弟选择器:

作用:选中指定元素后,符合条件的 所有兄弟 元素。
/* 选中div后的所有的兄弟p元素 */
div~p {
    color:red;
}
注意:两种兄弟选择器,选择的是 下面 的兄弟,上面的兄弟选不到

2.7 属性选择器

作用:选中属性值符合一定要求的元素。 1. [ 属性名 ] 选中 具有 某个属性的元素。 2. [ 属性名 =" 值 "] 选中包含某个属性,且属性值 等于 指定值的元素。 3. [ 属性名 ^=" 值 "] 选中包含某个属性,且属性值以指定的值 开头 的元素。 4. [ 属性名 $=" 值 "] 选中包含某个属性,且属性值以指定的值 结尾 的元素。 5. [ 属性名 *=“ 值 ”] 选择包含某个属性,属性值 包含 指定值的元素。
/* 选中具有title属性的元素 */
div[title]{
    color:red;
}

/* 选中title属性值为atguigu的元素 */
div[title="atguigu"]{
    color:red;
}

/* 选中title属性值以a开头的元素 */
div[title^="a"]{
    color:red;
}

/* 选中title属性值以u结尾的元素 */
div[title$="u"]{
    color:red;
}

/* 选中title属性值包含g的元素 */
div[title*="g"]{
    color:red;
}

2.8 伪类选择器

作用:选中特殊状态的元素。 如何理解“伪” ? — 虚假的,不是真的。 如何理解“伪类”? — 像类( class ),但不是类,是元素的一种特殊状态。 常用的伪类选择器:

一、动态伪类:

1. :link 超链接 未被访问 的状态。 2. :visited 超链接 访问过 的状态。 3. :hover 鼠标 悬停 在元素上的状态。 4. :active 元素 激活 的状态。 什么是激活?—— 按下鼠标不松开。 注意点:遵循 LVHA 的顺序,即: link 、 visited 、 hover 、 active 。 5. :focus 获取焦点的元素。 表单类元素才能使用 :focus 伪类。 当用户:点击元素、触摸元素、或通过键盘的 “ tab ” 键等方式,选择元素时,就是获得焦点

二、结构伪类

常用的: 1. :first - child 所有兄弟元素中的 第一个 。 2. :last - child 所有兄弟元素中的 最后一个 。 3. :nth - child(n) 所有兄弟元素中的 n 。 4. :first - of - type 所有 同类型 兄弟元素中的 第一个 。 5. :last - of - type 所有 同类型 兄弟元素中的 最后一个 。 6. :nth - of - type(n) 所有 同类型 兄弟元素中的 n 。 关于 n 的值: 1. 0 或 不写 :什么都选不中 —— 几乎不用。 2. n :选中所有子元素 —— 几乎不用。 3. 1~ 正无穷的整数 :选中对应序号的子元素。 4. 2n 或 even :选中序号为偶数的子元素。 5. 2n+1 或 odd :选中序号为奇数的子元素。 6. - n+3 :选中的是前 3 个。 不常用的: 1. :nth - last - child(n) 所有兄弟元素中的 倒数第 n 。 2. :nth - last - of - type(n) 所有 同类型 兄弟元素中的 倒数第 n 。 3. :only - child 选择没有兄弟的元素(独生子女)。 4. :only - of - type 选择没有 同类型 兄弟的元素。 5. :root 根元素。 6. :empty 内容为空元素(空格也算内容)。 三、否定伪类: :not( 选择器 ) 排除满足括号中条件的元素。 四、 UI 伪类: 1. :checked 被选中的复选框或单选按钮。 2. :enable 可用的表单元素(没有 disabled 属性)。 3. :disabled 不可用的表单元素(有 disabled 属性)。 五、目标伪类 :target 选中锚点指向的元素。 六、语言伪类 :lang() 根据指定的语言选择元素(本质是看 lang 属性的值)。

2.9 伪元素选择器

作用:选中元素中的一些特殊位置。 常用伪元素: ::first - letter 选中元素中的 第一个文字 。 ::first - line 选中元素中的 第一行文字 。 ::selection 选中 被鼠标选中的 内容。 ::placeholder 选中输入框的 提示文字 。 ::before 在元素 最开始 的位置,创建一个子元素(必须用 content 属性指定内容)。 ::after 在元素 最后 的位置,创建一个子元素(必须用 content 属性指定内容)。

标签:color,元素,选中,div,选择器,CSS,属性
From: https://blog.csdn.net/lvshihao_/article/details/140450992

相关文章

  • 在 DjangoStarter 中集成 TailwindCSS
    前言好久没有更新技术文章了这个月开箱和随笔倒是写了不少,又忙又懒的基础的文章不太想写,稍微深入一点的又需要花很多时间来写虽然但是,最终还是想水一篇最近做了一个基于wagtail的项目,有不少东西可以记录。本文先记录一下把tailwindcss支持添加到DjangoStarter框架里使......
  • html+css实现水印
    大概原理就是写一个div,宽高同视口,然后固定定位,层级高低看需要然后使用pointer-events:none;pointer-events CSS属性指定在什么情况下(如果有)某个特定的图形元素可以成为鼠标事件的 targetnone元素永远不会成为鼠标事件的target。但是,当其后代元素的pointer-events属......
  • css自定义滚动条
    /*定义滚动条高宽及背景高宽分别对应横竖滚动条的尺寸*/::-webkit-scrollbar{width:6px;height:6px;background-color:#F5F5F5;}/*定义滚动条轨道内阴影+圆角*/::-webkit-scrollbar-track{-webkit-box-shadow:inset006pxrgba(0,0,......
  • 用css样式修改svg图标颜色
    主要是利用css滤镜的投影drop-shadow来实现,方法是将原svg移动到网页看不见的地方,然后对原svg投影到原位置,影子实心不虚散,对影子进行颜色控制。 css::root{--color:#7a65ee;/*站点主题颜色*/--svg-offset:20000px;/*将原svg移出窗......
  • css外边距合并和塌陷问题
    使用margin定义块元素的垂直外边距时,可能会出现外边距的合并相邻(兄弟)块元素垂直外边距的合并当上下两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距margin-bottom,下面的元素有上外边距margin-top的时候,他们之间的垂直间距不是margin-bottom和margin-top之和......
  • ElementUI 本身没有提供年份范围选择组件,但可以通过封装两个年份选择器来实现类似的功
    ElementUI本身没有提供年份范围选择组件,但可以通过封装两个年份选择器来实现类似的功能。以下是一个使用Vue2和ElementUI实现年份范围选择器的示例代码: <script>exportdefault{name:'YearRangePicker',//接收父组件传入的年份范围数据props:{value:{......
  • CSS(2)
    6.复合选择器1.后代选择器选中所有后代,包括儿子,孙子等等格式:父选择器 子选择器{CSS属性}<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0......
  • CSS 样式缓存不更新
    来自......
  • html+css+js带数据储存功能的在线多人积分系统
    积分数据储存功能是通过cookies实现的,所以如果不把该网页部署在web服务器上再去访问保存积分数据后读取积分时会提示没有积分数据。如果不想使用积分数据保存功能,那直接放到一个HTML文件中打开运行即可  源码在后面  保存积分数据后,刷新页面或重新打开,只要点击读取按钮就......
  • css 自定义属性
    CSS自定义属性(CustomProperties),也称为CSS变量,是CSS中一种能够保存和复用值的机制。它们与常规的CSS属性不同,因为它们可以在整个文档中定义一次,然后在需要的任何地方使用。定义和语法定义一个自定义属性使用两个连字符(--)开头,后面跟着属性名,类似于下面的示例::root{--......