一、CSS 基础概述

定义:层叠样式表(Cascading Style Sheets)

作用:美化页面、实现样式与结构分离

二、CSS 基本语法与引入方式

1. 语法规范

选择器 + {一条/N条声明}

选择器决定针对谁修改 (找谁)
声明决定修改啥. (干啥)

<style>
p {
/* 设置字体颜色 */
color: red;
/* 设置字体大小 */
font-size: 30px;
}
</style>
<p>hello</p>

写在 `<style>` 标签中,通常放在 `<head>`

2. 引入方式

内部样式表:写在 HTML 的 `<style>` 标签中

行内样式表:通过元素的 `style` 属性设置

外部样式表:通过 `<link>` 标签引入 `.css` 文件(推荐)

1. 创建一个 css 文件.
2. 使用 link 标签引入 css

<link rel="stylesheet" href="[CSS文件路径]">

创建 demo.html

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>外部样式</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div>上帝为你关上一扇门, 然后就去睡觉了</div>
</body>

创建 style.css

div {
color: red;
}

注意: 不要忘记 link 标签调用 CSS, 否则不生效.

三、代码风格

格式风格:展开风格(推荐)、紧凑风格

紧凑风格
p { color: red; font-size: 30px;}展开风格
p {
color: red;
font-size: 30px;
}

大小写:统一小写

空格规范:冒号后加空格,选择器与 `{` 之间加空格

四、选择器

1. 基础选择器

标签选择器

选中所有同名标签,能快速为同一类型的标签都选择出来.但是不能差异化选择

<style>
p {
color: red;
}
div {
color: green;
}
</style>
<p>咬人猫</p>
<p>咬人猫</p>
<p>咬人猫</p>
<div>阿叶君</div>
<div>阿叶君</div>
<div>阿叶君</div>

类选择器

可复用,差异化选择    

<style>
.blue {
color: blue;
}
</style>
<div class="blue">咬人猫</div>
<div>咬人猫</div>

语法细节:
类名用 . 开头的
下方的标签使用 class 属性来调用.
一个类可以被多个标签使用, 一个标签也能使用多个类(多个类名要使用空格分割, 这种做法可以让
代码更好复用)
如果是长的类名, 可以使用 - 分割.
不要使用纯数字, 或者中文, 以及标签名来命名类名

<style>
.box {
width: 200px;
height: 150px;
}
.red {
background-color: red;
}
.green {
background-color: green;
}
</style>
<div class="box red"></div>
<div class="box green"></div>
<div class="box red"></div>

ID 选择器

唯一,不能重复    

CSS 中使用 # 开头表示 id 选择器
id 选择器的值和 html 中某个元素的 id 值相同
html 的元素 id 不必带 #
id 是唯一的, 不能被多个标签使用 (是和 类选择器 最大的区别)

<style>
#ha {
color: red;
}
</style>
<div id="ha">蛤蛤蛤</div>

通配符选择器

选中所有元素    页面的所有内容都会被改成 红色 .不需要被页面结构调用

* {
color: red;
}

2. 复合选择器

后代选择器:`父 子`

元素 1 和 元素 2 要使用空格分割
元素 1 是父级, 元素 2 是子级, 只选元素 2 , 不影响元素 1

代码示例1: 把 ol 中的 li 修改颜色, 不影响 ul

<ul>
<li>aaa</li>
<li>bbb</li>
<li>ccc</li>
</ul>
<ol>
<li>ddd</li>
<li>eee</li>
<li>fff</li>
</ol>
ol li {
color: red;
}

代码示例2: 元素 2 不一定非是 儿子, 也可以是孙子

<ul>
<li>aaa</li>
<li>bbb</li>
<li><a href="#">ccc</a></li>
</ul>
ul li a {
color: yellow;
}
或者
ul a {
color: yellow;
}

代码示例3: 可以是任意基础选择器的组合. (包括类选择器, id 选择器)

<ol class="one">
<li>ddd</li>
<li>eee</li>
<li><a href="#">fff</a></li>
<li><a href="#">fff</a></li>
<li><a href="#">fff</a></li>
</ol>.one li a {
color: green;
}

子选择器:`父 > 子`

元素1>元素2 { 样式声明 }

使用大于号分割
只选亲儿子, 不选孙子元素

1. 把以下代码中的 "小猫" 改成红色

<div class="cat">
<ul>
<li><a href="#">小猫</a></li>
<li><a href="#">小猫</a></li>
<li><a href="#">小猫</a></li>
</ul>
</div>

CSS 结果:

.cat ul li a {
color: red;
}

2. 把以下代码中的 "小猫" 改成红色

<div class="cat">
<a href="#">小猫</a>
<ul>
<li><a href="#">小狗</a></li>
<li><a href="#">小狗</a></li>
</ul>
</div>
.cat>a {
color: red;
}

并集选择器:`元素1, 元素2`

伪类选择器:


链接伪类:`:link`, `:visited`, `:hover`, `:active`

焦点伪类:`:focus`

五、常用属性

1. 字体属性

font-family:字体类型

body {
font-family: '微软雅黑';
font-family: 'Microsoft YaHei';
}
<style>
.font-family .one {
font-family: 'Microsoft YaHei';
}
.font-family .two {
font-family: '宋体';
}
</style>
<div class="font-family">
<div class="one">
这是微软雅黑
</div>
<div class="two">
这是宋体
</div>
</div>

font-size:字体大小

p {
font-size: 20px;
}
<style>
.font-size .one {
font-size: 40px;
}
.font-size .two {
font-size: 20px;
}
</style>
<div class="font-size">
<div class="one">
大大大
</div>
<div class="two">
小小小
</div>
</div>

font-weight:字体粗细

p {
font-weight: bold;
font-weight: 700;
}

可以使用数字表示粗细.
700 == bold, 400 是不变粗, == normal
取值范围是 100 -> 900

<style>
.font-weight .one {
font-weight: 900;
}
.font-weight .two {
font-weight: 100;
}
</style>
<div class="font-weight">
<div class="one">
粗粗粗
</div>
<div class="two">
细细细
</div>
</div>

font-style:斜体/正常

/* 设置倾斜 */
font-style: italic;
/* 取消倾斜 */
font-style: normal;
<style>
.font-style em {
font-style: normal;
}
.font-style div {
font-style: italic;
}
</style>
<div class="font-style">
<em>
放假啦
</em>
<div class="one">
听说要加班
</div>
</div>

2. 文本属性

color:颜色

color: red;
color: #ff0000;
color: rgb(255, 0, 0);

RGB、十六进制、预定义色,鼠标悬停在 vscode 的颜色上, 会出现颜色选择器, 可以手动调整颜色.十六进制形式表示颜色, 如果两两相同, 就可以用一个来表示.#ff00ff => #f0f

<style>
.color {
color: red;
/* color: rgb(255, 0, 0); */
/* color: #ff0000; */
}
</style>
<div class="color">这是一段话</div>

text-align:水平对齐

控制文字水平方向的对齐.不光能控制文本对齐, 也能控制图片等元素居中或者靠右

<style>
.text-align .one {
text-align: left;
}
.text-align .two {
text-align: right;
}
.text-align .three {
text-align: center;
}
</style>
<div class="text-align">
<div class="one">左对齐</div>
<div class="two">右对齐</div>
<div class="three">居中对齐</div>
</div>

text-decoration:下划线、删除线

text-decoration: [值];

underline 下划线. [常用]
none 啥都没有. 可以给 a 标签去掉下划线.
overline 上划线. [不常用]
line-through 删除线 [不常用]

<style>
.text-decorate .one {
text-decoration: none;
}
.text-decorate .two {
text-decoration: underline;
}
.text-decorate .three {
text-decoration: overline;
}
.text-decorate .four {
text-decoration: line-through;
}
</style>
<div class="text-decorate">
<div class="one">啥都没有</div>
<div class="two">下划线</div>
<div class="three">上划线</div>
<div class="four">删除线</div>
</div>

text-indent:首行缩进

text-indent: [值];

单位可以使用 px 或者 em.
使用 em 作为单位更好. 1 个 em 就是当前元素的文字大小.
缩进可以是负的, 表示往左缩进. (会导致文字就冒出去了)

<style>
.text-indent .one {
text-indent: 2em;
}
.text-indent .two {
text-indent: -2em;
}
</style>
<div class="text-indent">
<div class="one">正常缩进</div>
<div class="two">反向缩进</div>
</div>

line-height:行高

3. 背景属性

background-color:背景颜色

background-image:背景图片

background-repeat:平铺方式

background-position:背景位置

background-size:背景尺寸(contain/cover)

六、圆角与边框

 border-radius:圆角矩形、圆形

复合写法:四个角分别设置

border` 简写:宽度、样式、颜色

七、元素显示模式

类型    特点描述    
块级元素    独占一行,可设宽高,如 div、p、h1h6    
行内元素    不独占一行,不能设宽高,如 span、a    
行内块元素    可设宽高且不独占一行,如 img、input    

- `display` 属性可改变显示模式:
- `block` / `inline` / `inline-block`

八、盒模型

 组成:`content + padding + border + margin`
- `box-sizing: border-box`:防止 padding/border 撑大盒子
- `margin: 0 auto`:块级元素水平居中
- 清除默认样式:`* { margin: 0; padding: 0; }`

九、弹性布局(Flex)

1. 基本概念
- 父元素设为 `display: flex` → 成为 flex 容器
- 子元素 → flex 项目
- 主轴与交叉轴方向

2. 常用属性

属性名    作用描述    
`justify-content`    主轴对齐方式(如居中、两端对齐)    
`align-items`    交叉轴对齐方式(如垂直居中)    
`flex-direction`    设置主轴方向(横向/纵向)    

十、Chrome 调试工具

- 打开方式:F12 或右键“检查”
- Elements 面板:
- 查看结构
- 实时修改样式
- 检查错误(黄色感叹号)

如需进一步细化某一部分(如 flex 布局实例、选择器练习等),可继续展开子模块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96968.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96968.shtml
英文地址,请注明出处:http://en.pswp.cn/bicheng/96968.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

智能农机无人驾驶作业套圈路径规划

国产轻量级桌面GIS软件Snaplayers实践&#xff1a;智能农机无人驾驶作业套圈路径规划1、选择地块角点坐标文件2、加载地块到地图中3、设置套圈作业路径规划参数4、生成套圈作业路径5、查看套圈路径6、查看套圈路径8、完成本算法已经在国内外等农场已经使用多年。Snaplayers研发…

Java Collection集合框架:体系、核心与选型

目录 一、集合框架的顶层设计&#xff1a;接口与层次 1. 两大核心接口&#xff1a;Collection 和 Map 2. Collection接口的三大派系 二、核心实现类详解 1. List家族实现 2. Set家族实现 3. Queue/Deque家族实现 PriorityQueue&#xff1a; ArrayDeque&#xff1a; 三…

“计算机基础、软件工程、设计模式、数据结构算法、操作系统、数据库、网络、法律法规”是计算机领域从基础理论到工程实践

“计算机基础、软件工程、设计模式、数据结构算法、操作系统、数据库、网络、法律法规”是计算机领域从基础理论到工程实践、再到合规规范的核心知识体系&#xff0c;覆盖了软件开发、系统架构、技术合规等关键维度。以下将对每个领域进行系统拆解&#xff0c;包括核心内容、学…

利用Rancher平台搭建Swarm集群

一、Rancher概述1、rancher平台Rancher是一个开源的企业级容器管理平台&#xff0c;它可以帮助企业在生产环境中轻松快捷地部署和管理容器&#xff0c;也可以轻松管理各种环境的Kubernetes&#xff0c;并提供对DevOps的支持。Rancher目前已经具备全栈化一键部署应用、各种编排调…

Debezium日常分享系列之:MongoDB 新文档状态提取

Debezium日常分享系列之&#xff1a;MongoDB 新文档状态提取变更事件结构行为配置数组编码嵌套结构展平MongoDB $unset 处理确定原始操作添加元数据字段选择性应用转换的选项配置选项已知限制Debezium MongoDB 连接器会发出数据变更消息&#xff0c;以表示 MongoDB 集合中发生的…

OpenCV:图像透视变换

文章目录一、透视变换是什么&#xff1f;二、透视变换的核心原理1. 关键概念&#xff1a;透视变换矩阵2. 核心条件&#xff1a;4对对应点三、OpenCV实现透视变换的关键步骤步骤1&#xff1a;读取并预处理图像步骤2&#xff1a;寻找目标物体的4个顶点步骤3&#xff1a;计算透视变…

commons-csv

maven依赖<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-csv</artifactId><version>1.14.1</version></dependency…

LeetCode 1446.连续字符

给你一个字符串 s &#xff0c;字符串的「能量」定义为&#xff1a;只包含一种字符的最长非空子字符串的长度。 请你返回字符串 s 的 能量。 示例 1&#xff1a; 输入&#xff1a;s “leetcode” 输出&#xff1a;2 解释&#xff1a;子字符串 “ee” 长度为 2 &#xff0c;只包…

CTFHub SSRF通关笔记9:302跳转 Bypass 原理详解与渗透实战

目录 一、SSRF与302跳转 1、SSRF 2、302响应 3、SSRF与302结合 &#xff08;1&#xff09;SSRF源码分析 &#xff08;2&#xff09;攻击链条&#xff08;Flow of Exploit&#xff09; 二、渗透实战 1、打开靶场 2、尝试127.0.0.1访问 3、file协议分析源码 &#xff…

Windows-Use实战:AI驱动的Windows自动化

Windows-Use实战:AI驱动的Windows自动化 前言 项目介绍与准备工作 Windows-Use是什么? 系统要求 必需环境 步骤一:安装Python和基础环境 1.1 安装Python 检查Python版本 Python安装步骤 1.2 创建项目目录 步骤二:安装Windows-Use 2.1 使用pip安装(推荐) 步骤三:运行和基…

STM32-FreeRTOS操作系统-二值信号量与计数信号量

引言在嵌入式开发领域&#xff0c;任务同步与通信是系统稳定运行的核心。STM32配合FreeRTOS操作系统&#xff0c;为开发者提供了强大的工具支持。其中&#xff0c;二值信号量和计数信号量作为FreeRTOS的关键同步机制&#xff0c;分别用于任务间的简单同步和资源计数控制。二值信…

MarTech营销技术全景解析:概念、图谱与最新实践案例

一、引言&#xff1a;为什么企业越来越依赖MarTech&#xff1f;在数字化浪潮下&#xff0c;企业营销环境正发生深刻变化&#xff1a;客户触点增加&#xff1a;从官网、社交媒体到短视频、展会&#xff0c;信息渠道呈指数级增长。决策链条复杂&#xff1a;B2B客户通常需要多轮调…

服务器 - 从一台服务器切换至另一台服务器(损失数十条访客记录)

服务器 - 从一台服务器切换至另一台服务器(损失数十条PV记录为代价) 看着四年的服务器正式到期&#xff0c;没什么轰轰烈烈的告别&#xff0c;就像目送老朋友转身走远&#xff0c;只默默记下&#xff1a;哦&#xff0c;原来它陪了我这么久啊。 前言 一台陪伴了我4年的服务器昨…

《云原生边缘与AI训练场景:2类高频隐蔽Bug的深度排查与架构修复》

在云原生技术向边缘计算与AI训练场景渗透的过程中&#xff0c;基础设施层的问题往往会被场景特性放大——边缘环境的弱网络、异构硬件&#xff0c;AI训练的高资源依赖、分布式协作&#xff0c;都可能让原本隐藏的Bug以“业务故障”的形式爆发。这些问题大多不具备直观的报错信息…

【51单片机】【protues仿真】基于51单片机数控直流稳压电源系统

目录 一、主要功能 二、使用步骤 三、硬件资源 四、软件设计 五、实验现象 一、主要功能 1、数码管显示输出电压值 2、滑动电阻调节输出电压 3、电压输出范围0-15V&#xff0c;步进值1 二、使用步骤 基于51单片机的数控直流稳压电源是一种通过数字控制实现电压调节的智…

xtuoj Rectangle

题目思路将矩形间的相交情况通过投影转化为x、y两个方向下的线段是否相交&#xff0c;即前面的题目&#xff0c;判断两个区间是否相交&#xff0c;x投影的每个区间的左端点是每个矩形x的min&#xff0c;右端点是每个矩形的x的max&#xff0c;y投影情况同理&#xff0c;只要x轴的…

【深度学习踩坑实录】从 Checkpoint 报错到 TrainingArguments 精通:QNLI 任务微调全流程复盘

作为一名深度学习初学者&#xff0c;最近在基于 Hugging Face Transformers 微调 BERT 模型做 QNLI 任务时&#xff0c;被Checkpoint 保存和TrainingArguments 配置这两个知识点卡了整整两天。从磁盘爆满、权重文件加载报错&#xff0c;到不知道如何控制 Checkpoint 数量&#…

Java面试小册(3)

21【Q】: 什么是Java的SPI机制&#xff1f;【A】&#xff1a;SPI 是一种插件机制&#xff0c;用于在运行时动态加载服务的实现。它通过定义接口&#xff08;服务接口&#xff09;并提供一种可扩展的方式来让服务的提供着&#xff08;实现类&#xff09;在运行时注入&#xff0c…

P1150 Peter 的烟

记录20#include <bits/stdc.h> using namespace std; int main(){int n,k;cin>>n>>k;int cnt0;while(n>k){cntk;nn-k1;}cntn;cout<<cnt;return 0; }突破口每吸完一根烟就把烟蒂保存起来&#xff0c;k&#xff08;k>1&#xff09;个烟蒂可以换一个…

Cursor和Hbuilder用5分钟开发微信小程序

分享一个5分钟搞定微信小程序开发的技能&#xff0c;需要用到两个工具&#xff1a;Cursor和Hbuilder。 第1步、下载HBuilder。Hbuilder可以实现一套代码直接生成安卓、苹果、鸿蒙各个平台APP。访问Hbuilder的官方网站&#xff0c;HBuilderX-高效极客技巧&#xff0c;选择适合…