当前位置: 首页 > news >正文

CSS选择器学习笔记

CSS选择器是前端开发的基础,它允许我们精确地选择并样式化HTML文档中的元素。下面我为你整理了一份详细的CSS选择器笔记,包含了基本用法、示例和优先级规则。

📘 CSS选择器全面学习笔记

一、基本选择器

基本选择器是CSS中最基础且最常用的选择器类型,它们通过元素名称、类名或ID来定位元素。

选择器类型 示例 描述
通用选择器 * { margin: 0; } 选择所有元素,常用于重置样式
元素选择器 p { color: red; } 选择所有指定标签元素
类选择器 .intro { font-size: 20px; } 选择class属性包含"intro"的所有元素
ID选择器 #header { background: blue; } 选择id属性为"header"的元素(ID应唯一)

二、组合与关系选择器

组合选择器通过多种方式组合基本选择器,以更精确地定位文档结构中的元素。

/* 多元素选择器 */
div, p { color: blue; } /* 同时选择所有<div>和<p>元素 *//* 后代选择器 */
article p { font-style: italic; } /* 选择<article>内部所有<p>元素(包括嵌套) *//* 子元素选择器 */
ul > li { list-style: square; } /* 仅选择<ul>的直接子元素<li> *//* 相邻兄弟选择器 */
h2 + p { font-weight: bold; } /* 选择紧跟在<h2>后的第一个<p>元素 *//* 通用兄弟选择器 */
h2 ~ p { color: #666; } /* 选择<h2>后面所有同级<p>元素 */

三、属性选择器

属性选择器通过元素的属性及属性值来定位元素,提供了更灵活的选择方式。

/* 存在属性选择 */
a[title] { color: purple; } /* 选择有title属性的<a>元素 *//* 精确属性值匹配 */
input[type="text"] { background: #eee; } /* 选择type属性为"text"的<input> *//* 部分属性值匹配 */
a[href^="https"] { color: green; } /* 选择href以"https"开头的所有链接 */
a[href$=".pdf"]::before { content: "📄 "; } /* 选择href以".pdf"结尾的链接 */
a[href*="example"] { font-weight: bold; } /* 选择href包含"example"的所有链接 *//* 空格分隔属性值匹配 */
div[class~="box"] { border: 1px solid; } /* 选择class包含"box"的<div>(如"box"、"big box") */

四、伪类选择器

伪类选择器用于定义元素的特定状态,如鼠标悬停、获得焦点等交互状态。

4.1 交互伪类

a:link { color: blue; } /* 未访问的链接 */
a:visited { color: purple; } /* 已访问的链接 */
a:hover { color: red; } /* 鼠标悬停状态 */
a:active { color: orange; } /* 元素被激活时(如点击) */
input:focus { border-color: blue; } /* 获得焦点的表单元素 */
input:disabled { background-color: #eee; } /* 被禁用的表单元素 */

4.2 结构伪类

li:first-child { font-weight: bold; } /* 父元素的第一个子元素 */
li:last-child { border-bottom: none; } /* 父元素的最后一个子元素 */
li:nth-child(odd) { background: #f5f5f5; } /* 奇数位子元素 */
li:nth-child(3n+1) { color: red; } /* 每3个元素中的第1个 */
div:empty { display: none; } /* 没有子元素的元素 */

五、伪元素选择器

伪元素选择器用于样式化元素的特定部分或在内容前后插入内容。

p::first-letter { font-size: 2em; font-weight: bold; 
} /* 选择元素的首字母 */p::first-line { font-style: italic; 
} /* 选择元素的首行 */.quote::before {content: """;
} /* 在元素内容前插入内容 */.quote::after {content: """;
} /* 在元素内容后插入内容 */::selection {background-color: yellow;color: black;
} /* 选择用户选中的文本 */

六、选择器优先级规则

当多个规则应用于同一个元素时,浏览器使用优先级(specificity)规则确定哪个样式生效。

6.1 优先级权重计算

优先级由四位数(a,b,c,d)表示,比较时从左到右逐级对比:

选择器类型 示例 权重表示 说明
行内样式 style="color:red" 1,0,0,0 直接在HTML元素上定义
ID选择器 #content 0,1,0,0 基于元素ID
类/属性/伪类 .box, [type="text"], :hover 0,0,1,0 类、属性和伪类选择器
元素/伪元素 p, ::before 0,0,0,1 元素名和伪元素
通用选择器 * 0,0,0,0 不影响优先级

6.2 优先级示例

p { color: black; } /* 权重: 0,0,0,1 */
.content { color: blue; } /* 权重: 0,0,1,0 */
#sidebar p { color: red; } /* 权重: 0,1,0,1 */
#sidebar .text p { color: purple; } /* 权重: 0,1,1,1 - 这个优先级最高 */

6.3 优先级特殊情况

  • !important:当声明使用!important时,它会覆盖任何其他声明(尽量避免使用)
  • 相同优先级:后出现的样式会覆盖先出现的样式
  • 继承的样式:继承的样式没有优先级,低于任何直接指定的样式

七、最佳实践与建议

  1. 保持低优先级:尽量使用低优先级选择器,便于后续覆盖和维护
  2. 避免过度使用ID选择器:由于ID选择器的高优先级,过度使用会增加后期覆盖样式的难度
  3. 使用类选择器:类选择器提供了良好的灵活性和适中的优先级
  4. 避免!important:它会破坏正常的级联规则,使调试变得困难
  5. 利用继承:某些属性(如color、font-family)会自动继承,可减少重复代码

提示:现代CSS开发中,CSS方法论(如BEM)可以帮助你编写更易于维护的选择器和样式结构。

这份笔记涵盖了CSS选择器的主要知识点,从基础到高级,并包含了优先级规则,应该能为你提供很好的参考。在实际开发中,合理运用这些选择器可以大大提高开发效率和样式可维护性。

http://www.sczhlp.com/news/50532/

相关文章:

  • day03-Problems
  • HTB_Three练习记录——
  • CSS盒模型学习笔记
  • 凤山网站seo正规品牌网站设计推荐
  • 室内设计联盟官方网站下载河北省中级经济师考试
  • 越秀学校网站建设wordpress单点登陆
  • 网站母版页怎么做郑州新闻头条
  • 备案网站名称与实际网站名称不一致奉贤网站建设专家
  • wordpress网站关闭上海有哪些比较好的室内设计公司
  • 如何做中介网站wordpress禁用主题字体
  • 镇江市机关效能与作风建设网站wordpress升级设置
  • 个人网站制作源代码下载做seo网站标题重要吗
  • 网站建设ppt方案结语玖玖玖人力资源有限公司
  • 【自学嵌入式:stm32单片机】读写备份寄存器
  • nacos学习 - record
  • CSS 布局属性笔记
  • scheme语言的尾递归和命名let语法
  • 多智能体协作为什么这么难:系统频繁失败的原因分析与解决思路
  • 做cps的网络文学网站wordpress编辑器位置
  • 网站开发的几种语言新塘网站建设
  • 微信做淘宝客 网站打不开了淘宝客网站模板
  • 鞍山网站制作人才招聘判断网站是什么系统做的
  • comsol 多个参数进行参数化扫描时,不能有显式依赖关系,只能对比例系数d1par进行参数化扫描,才是对的!
  • schmem语言实现快速幂
  • 长沙优化网站推广网站建设工具的实验心得
  • 陕西做网站公司竞价单页网站策划设计制作
  • 一站式网站开发服务平台wordpress主题安装失败
  • 自己做的网站怎么让别人访问仿美团网站开发
  • 做图网站百度竞价排名案例
  • 手机网站全屏代码新手做网站买服务器