css¶
AI 介绍
CSS(层叠样式表,Cascading Style Sheets)是用于 控制网页外观和布局 的样式语言。它和 HTML(结构)、JavaScript(交互) 并称前端开发的三大核心技术
CSS 的核心作用
- 美化页面:设置颜色、字体、间距、背景等视觉效果
- 控制布局:实现响应式设计(适应不同设备)、浮动、Flexbox、Grid 等排版方式
- 分离结构与样式:HTML 只负责内容,CSS 负责样式,便于维护和复用
CSS 的优势
- 样式与结构分离 → 更易维护
- 复用性强 → 一个样式表控制多个页面
- 响应式设计 → 适配手机、平板、PC
- 动画效果 → 过渡(Transitions)、变形(Transforms)
总结
- HTML 负责网页**结构**(骨架)
- CSS 负责网页**样式**(外观)
- JavaScript 负责网页**交互**(动态行为)
CSS 是一种用来给 HTML 元素添加样式的语言。HTML 负责搭建网页的骨架,也就是显示什么内容,而 CSS 负责网页的外观,也就是这些内容如何呈现,可以用来控制文字的颜色和大小、元素的排版布局、背景图片、间距、边框,甚至是动画效果
1 基本语法¶
CSS 的核心由 selector(选择器)和包含在花括号内的 declaration block(声明块)组成
- 选择器:告诉浏览器你想要改变哪个 HTML 元素的样式(例如
h1代表所有一级标题,p代表所有段落) - 属性:你想要改变的内容(如
color、font-size) - 值:你想把这个内容改成什么样(如
red、16px)
CSS 与 HTML 结合的三种方式:
- 外部样式表:将 CSS 代码写在单独的
.css文件中,然后在 HTML 的<head>里用<link>标签引入 - 内部样式表:将 CSS 写在 HTML 的
<head>区域的<style>标签内 - 内联样式:直接写在 HTML 标签的
style属性里,如<p style="color: red;">
1.1 选择器¶
各种类型到的选择器可以组合起来使用
基础选择器
-
标签选择器
- 语法:
标签名 - 作用:选中页面中所有该名称的 HTML 标签
- 示例:
p { color: red; }(将所有<p>段落的文字变成红色)
- 语法:
-
类选择器
- 语法:
.类名 - 作用:选中所有
class属性包含该类名的元素。最常用的选择器,可以多处复用 - 示例:
.highlight { background: yellow; }(选中所有<div class="highlight">等元素)
- 语法:
-
ID 选择器
- 语法:
#ID名 - 作用:选中
id属性为该名称的唯一元素。在一个 HTML 页面中,同一个 ID 只能出现一次 - 示例:
#nav-bar { width: 100%; }(选中<nav id="nav-bar">)
- 语法:
-
通配符选择器
- 语法:
* - 作用:选中页面上的所有元素。常用于重置默认样式
- 示例:
* { margin: 0; padding: 0; }
- 语法:
组合选择器
根据 DOM 树中元素之间的相对关系来选择元素
DOM 树
DOM 树是浏览器用来表示和组织 HTML 网页内部结构的一种方式。非常好理解
浏览器解析这段代码后,在内存中生成的 DOM 树骨架长这样:
可以这样理解:HTML 代码便于人类理解,而 DOM 树结构便于计算机理解
-
后代选择器
- 语法:
A B - 作用:选中
A元素内部的所有B元素(不论嵌套了多少层) - 示例:
div p { color: blue; }(选中<div>内部所有的<p>元素)
- 语法:
-
子代选择器
- 语法:
A > B - 作用:选中
A元素的直接子元素B(只管儿子,不管孙子) - 示例:
ul > li { list-style: none; }
- 语法:
-
相邻兄弟选择器
- 语法:
A + B - 作用:选中紧跟在
A元素后面的那一个B元素(必须是兄弟节点,且相邻紧挨着) - 示例:
h1 + p { font-weight: bold; }(紧跟在<h1>后面的第一个<p>将加粗)
- 语法:
-
通用兄弟选择器
- 语法:
A ~ B - 作用:选中
A元素后面的所有同级B元素(不必紧挨着) - 示例:
h1 ~ p { color: gray; }(<h1>之后所有的同级<p>变灰)
- 语法:
属性选择器
根据元素的 HTML 属性及属性值来选择元素
[attr]:选择带有指定属性的元素。示例:[disabled] { opacity: 0.5; }(选中所有带有disabled属性的元素)[attr="value"]:选择属性值完全等于指定值的元素。示例:input[type="text"] { border: 1px solid black; }[attr^="value"]:选择属性值以指定值开头的元素。示例:a[href^="https"] { color: green; }(选中所有的 HTTPS 链接)[attr$="value"]:选择属性值以指定值结尾的元素。示例:a[href$=".pdf"] { background-image: url('pdf-icon.png'); }[attr*="value"]:选择属性值包含指定值的元素。示例:a[href*="github"] { font-weight: bold; }
伪类选择器
用于选择处于特定状态的元素,通常使用一个冒号 :
-
动态伪类:常用于链接和按钮
:hover:鼠标悬停在元素上时:active:鼠标按下但没有松开时:focus:元素获得焦点时(如输入框被点击输入文字时)
-
结构伪类:基于元素在 DOM 树中的位置
:first-child:选中作为其父元素第一个子元素的元素:last-child:选中作为其父元素最后一个子元素的元素:nth-child(n):选中作为其父元素第 n 个子元素的元素(n 可以是数字、odd奇数、even偶数,或者公式如2n+1):not(selector):否定伪类,选中非指定选择器的其他元素(例如p:not(.intro)选中所有class不是intro的<p>)
伪元素选择器
用于选择或创建元素的某个特定部分,属于页面上原本并不存在的逻辑元素,通常使用两个冒号 ::
::before:在元素内容的最前面插入一段内容(必须配合content属性使用)::after:在元素内容的最后面插入一段内容。示例:.price::before { content: "¥"; }(在价格前自动加上人民币符号)::first-letter:选中一段文本的第一个字母或汉字(常用于首字下沉排版)::first-line:选中一段文本的第一行::selection:选中文本被用户鼠标高亮选中时的状态(常用来修改选中文本的背景色)
2 简单示例¶
在 VS Code 使用插件预览如下:
评论区
欢迎在评论区指出文档错误,为文档提供宝贵意见,或写下你的疑问