css真难,那就从基础开始吧

CSS 基础全面解析:从核心概念到选择器实战

CSS(层叠样式表,Cascading Style Sheets)是前端开发的三大核心技术之一(另外两大是 HTML 和 JavaScript),主要负责控制网页的视觉表现(如颜色、字体、布局等)。本文结合 d:\lesson_si\css\basic 文件夹中的 readme.md3.html4.html 等文件内容,从基础概念到实战应用,系统梳理 CSS 核心知识。


一、CSS 核心基础概念

1. 声明(Declaration):最小样式单元

readme.md 中明确提到:"一个属性与值的键值对成为声明(declaration)"。 声明是 CSS 中最基础的样式指令,由 属性(Property)值(Value) 组成,用英文冒号 : 分隔,以分号 ; 结尾。 示例

css 复制代码
color: red;       /* 属性:文字颜色,值:红色 */
font-size: 16px;  /* 属性:文字大小,值:16像素 */

2. 声明块(Declaration Block):多个声明的集合

readme.md 指出:"一个声明块 {} 中可有多个声明"。 声明块是用大括号 {} 包裹的一组声明,这些声明会同时作用 于目标元素。 示例

css 复制代码
p {
  color: red;       /* 文字颜色 */
  font-size: 16px;  /* 文字大小 */
  text-align: center; /* 文字居中 */
}

3. 选择器(Selector):指定样式作用对象

选择器的作用是确定哪些 HTML 元素需要应用声明块中的样式 。选择器与声明块组合后,称为"规则集(Ruleset)"。 readme.md 强调:"选择器 申明块作用的选择器选择的对应元素"。 示例

css 复制代码
/* 选择所有 <p> 标签,应用声明块中的样式 */
p {
  color: red;
}

4. 层叠(Cascade):样式冲突的解决规则

CSS 全称"层叠样式表",核心特性是层叠规则:当多个规则作用于同一元素时,根据优先级决定最终生效的样式。优先级由高到低:

  1. 行内样式 (直接写在 HTML 标签的 style 属性中,如 <p style="color: red;">)。
  2. ID 选择器 (如 #header)。
  3. 类选择器 (如 .box)、属性选择器(如 [type="text"])、伪类(如 :hover)。
  4. 元素选择器 (如 p)、伪元素(如 ::before)。

示例(来自 1.html

xml 复制代码
<style>
  p { color: red; }             /* 元素选择器,优先级最低 */
  .container p { color: blue; }  /* 类选择器,优先级更高 */
  #mian p { color: yellow; }     /* ID 选择器,优先级最高 */
</style>
​
<body>
  <p>这是另一个段落</p>  <!-- 应用 p 选择器,红色 -->
  <div id="mian" class="container">
    <p>这是一个段落</p>  <!-- 应用 #mian p 选择器,黄色 -->
  </div>
</body>

二、CSS 选择器分类与实战

1. 基础选择器

  • 元素选择器 :直接通过 HTML 标签名选择(如 pdiv)。
  • 类选择器 :通过 class 属性选择,以 . 开头(如 .container)。
  • ID 选择器 :通过 id 属性选择,以 # 开头(如 #mian)。

2. 组合选择器:兄弟选择器

readme.md 重点介绍了兄弟选择器,用于选择同一父级下的平级元素:

  • 相邻兄弟选择器(+ :选择紧接在另一个元素之后 的兄弟元素(仅匹配下一个)。 语法A + B(选择 A 的下一个兄弟元素 B)。 示例

    css 复制代码
    h2 + p { color: red; }  /* 仅匹配紧接在 <h2> 后的第一个 <p> */
  • 通用兄弟选择器(~ :选择某个元素之后所有的兄弟元素 (匹配后续所有)。 语法A ~ B(选择 A 之后所有的兄弟元素 B)。 示例

    css 复制代码
    h2 ~ p { color: blue; }  /* 匹配 <h2> 之后所有 <p> */

3. 伪类选择器:元素的"特殊状态"

伪类选择器用于描述元素的特殊状态 (如用户交互)或在结构中的位置 (如第一个子元素)。3.html 中展示了多种伪类的实际应用:

(1)状态伪类(用户交互相关)
  • :hover:鼠标悬停时(如段落悬停背景变黄)。

    css 复制代码
    p:hover { background-color: yellow; }  /* 来自 3.html */
  • :active:元素被激活时(如按钮按下时变蓝)。

    css 复制代码
    button:active { background-color: blue; color: white; }  /* 来自 3.html */
  • :focus:元素获得焦点时(如输入框聚焦时边框变蓝)。

    css 复制代码
    input:focus { border: 2px solid blue; outline: none; }  /* 来自 3.html */
  • :checked:复选框/单选框被选中时(如选中复选框后,关联的 label 加粗)。

    css 复制代码
    input:checked + label { font-weight: bold; color: #28a4a4; }  /* 来自 3.html */
(2)结构伪类(元素位置相关)
  • :nth-child(n):选择父元素的第 n 个子元素(不区分元素类型 )。 示例(来自 4.html

    css 复制代码
    .container p:nth-child(2) { background-color: burlywood; }  
    /* 选择 .container 的第二个子元素(无论是否是 <p>),如果是 <p> 则生效 */
  • :nth-of-type(n):选择父元素中同类型 的第 n 个子元素(仅匹配指定类型)。 示例(来自 4.html

    css 复制代码
    .container#demo p:nth-of-type(2) { background-color: blue; }  
    /* 选择 .container#demo 中所有 <p> 的第二个(仅匹配 <p> 类型) */
  • :nth-child(odd/even):选择奇数/偶数位置的子元素(如列表奇偶行变色)。

    css 复制代码
    li:nth-child(odd) { background-color: #e12828; }  /* 奇数行红色 */
    li:nth-child(even) { background-color: #85f4f4f8; }  /* 偶数行青色 */  /* 来自 3.html */
(3)条件伪类(排除或包含特定条件)
  • :not():排除符合条件的元素(如列表非最后一项添加底边距)。

    css 复制代码
    li:not(:last-child) { margin-bottom: 10px; }  /* 来自 3.html */

三、CSS 学习建议

对于新手,建议从以下路径逐步掌握 CSS:

  1. 基础入门 :掌握声明、声明块、选择器的基本语法,熟悉常见属性(如 colorfont-sizemargin)。
  2. 选择器进阶 :重点理解兄弟选择器、伪类选择器的使用场景(如 :hover 实现交互效果,:nth-child 控制列表样式)。
  3. 层叠与优先级 :通过 1.html 等示例实践,掌握不同选择器的优先级规则,避免样式冲突。
  4. 实战应用 :结合 3.html 中的伪类示例(如输入框聚焦、复选框选中效果),动手编写样式,加深理解。

统掌握 CSS 基础,为后续学习布局(如 Flex、Grid)和响应式设计打下坚实基础。

相关推荐
izx88828 分钟前
HTML5敲击乐 PART--1
css
i听风逝夜32 分钟前
Web 3D地球实时统计访问来源
前端·后端
iMonster36 分钟前
React 组件的组合模式之道 (Composition Pattern)
前端
呐呐呐呐呢44 分钟前
antd渐变色边框按钮
前端
元直数字电路验证1 小时前
Jakarta EE Web 聊天室技术梳理
前端
wadesir1 小时前
Nginx配置文件CPU优化(从零开始提升Web服务器性能)
服务器·前端·nginx
牧码岛1 小时前
Web前端之canvas实现图片融合与清晰度介绍、合并
前端·javascript·css·html·web·canvas·web前端
灵犀坠1 小时前
前端面试八股复习心得
开发语言·前端·javascript
9***Y481 小时前
前端动画性能优化
前端
网络点点滴1 小时前
Vue3嵌套路由
前端·javascript·vue.js