news 2026/6/24 9:17:33

【JavaWeb】CSS基础入门 —— 让你的网页美起来

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【JavaWeb】CSS基础入门 —— 让你的网页美起来

一、CSS是什么?

CSS(Cascading Style Sheets),即层叠样式表,是一种用于描述HTML文档外观和格式的样式语言。

HTML与CSS的关系

技术角色比喻
HTML网页内容的载体人的骨架
CSS网页样式的表现人的衣服、妆容
JavaScript网页的交互行为人的动作、表情

一句话总结:HTML负责"有什么",CSS负责"长什么样",JavaScript负责"能做什么"。

为什么需要CSS?

如果没有CSS,网页是这样的:

<h1>这是一个标题</h1><p>这是一段文字</p>

所有文字都是默认的黑色、默认大小,页面毫无美感。而有了CSS:

h1{color:#ff6b6b;font-size:32px;text-align:center;}p{color:#4ecdc4;font-size:18px;line-height:1.8;}

页面立刻变得色彩丰富、层次分明!

💡核心理念:HTML专注结构呈现,CSS负责样式美化,实现结构与样式相分离


二、CSS语法规范

2.1 基本语法结构

CSS规则由选择器声明两部分组成:

选择器{属性:属性值;属性:属性值;}

示例:

h1{color:red;/* 文字颜色为红色 */font-size:20px;/* 字体大小为20像素 */}

语法要点:

  • 选择器指向要设置样式的HTML元素
  • 每条声明由属性: 属性值组成
  • 属性和属性值之间用英文冒号:分隔
  • 多条声明之间用英文分号;分隔
  • 所有声明包裹在英文大括号{}

2.2 代码书写风格(推荐)

/* 展开格式(推荐) */h3{color:pink;font-size:20px;}/* 紧凑格式(不推荐) */h3{color:pink;font-size:20px;}

规范要求:

  • 选择器和大括号之间保留一个空格
  • 属性值前面、冒号后面保留一个空格
  • 选择器、属性名、属性值关键字全部使用小写字母

三、CSS选择器

选择器的作用是选中页面中需要设置样式的HTML元素

3.1 基础选择器

① 标签选择器

以HTML标签名作为选择器,为某一类标签统一设置样式。

p{color:red;font-size:16px;}

特点:

  • 优点:能快速为页面中同类型的标签统一设置样式
  • 缺点:不能差异化选择,只能选择全部当前标签

示例:

<!DOCTYPEhtml><html><head><style>p{color:red;font-size:18px;}</style></head><body><p>p1的文字</p><p>p2的文字</p><p>p3的文字</p></body></html>
② 类选择器(最常用)

通过给HTML元素添加class属性,在CSS中使用.来选中。

使用步骤:

第一步:在HTML标签中添加class属性

<divclass="red">这段文字是红色</div>

第二步:在CSS中使用.类名定义样式

.red{color:red;}

命名规范:

  • 类名以英文字母开头,不要使用纯数字或中文
  • 长名称或词组使用中横线连接,如nav-menu
  • 命名要有意义,让人一眼就知道用途

多类名使用:

一个标签可以同时拥有多个类名,类名之间用空格隔开:

<divclass="red font20">这段文字既是红色又是20号字</div>
.red{color:red;}.font20{font-size:20px;}

实际开发场景:将公共样式提取到一个类中,各元素再调用自己的独有类,既节省代码又方便维护。

③ ID选择器

通过给HTML元素添加id属性,在CSS中使用#来选中。

<divid="pink">这段文字是粉色</div>
#pink{color:pink;}

ID选择器 vs 类选择器:

对比项类选择器ID选择器
符号.#
使用次数可以多次使用每个页面只能使用一次
多样式可以同时设置多个类不能同时设置多个ID
常见用途设置样式一般与JavaScript配合使用
<!-- 类选择器:可以多次使用,正确 --><spanclass="stress">胆小如鼠</span><spanclass="stress">勇气</span><!-- ID选择器:重复使用是错误的 --><spanid="stress">错误示范</span><spanid="stress">错误示范</span>
④ 通配符选择器

使用*选中页面中所有元素

*{margin:0;padding:0;}

用途:常用于清除浏览器默认的内外边距,让页面样式从零开始。

3.2 基础选择器对比总结

选择器作用特点使用情况用法
标签选择器选出所有相同标签不能差异化选择较多p { color: red; }
类选择器选出1个或多个标签可以根据需求选择非常多.nav { color: red; }
ID选择器一次只能选择1个标签每个ID只能出现一次一般和JS搭配#nav { color: red; }
通配符选择器选择所有标签选择太多,部分不需要特殊情况* { color: red; }

3.3 复合选择器

① 后代选择器(空格)

选中某个元素内部的所有后代元素。

/* 选中 .nav 内部所有的 li */.nav li{color:red;}
<ulclass="nav"><li>首页</li><li>关于我们<ul><li>公司介绍</li><!-- 也会被选中 --></ul></li></ul>
② 子选择器(>)

只选中某个元素的直接子元素

/* 只选中 .food 的直接子元素 li */.food > li{border:1px solid red;}

后代选择器 vs 子选择器:

  • >只作用于元素的第一代后代(直接子元素)
  • (空格)作用于元素的所有后代
③ 并集选择器(,)

同时为多个选择器设置相同的样式。

/* 同时设置 h1 和 span 的文字颜色为红色 */h1, span{color:red;}/* 等价于: h1 { color: red; } span { color: red; } */
④ 链接伪类选择器

用于设置链接在不同状态下的样式。

a:link{color:#333;}/* 未访问的链接 */a:visited{color:#999;}/* 已访问的链接 */a:hover{color:#ff6b6b;}/* 鼠标悬停时的链接 */a:active{color:green;}/* 鼠标点击时的链接 */

简写技巧:实际开发中通常只写aa:hover

a{color:#333;text-decoration:none;/* 去掉下划线 */}a:hover{color:#ff6b6b;text-decoration:underline;/* 悬停时显示下划线 */}
⑤ :focus伪类选择器

用于选中获得焦点的表单元素。

input:focus{background-color:yellow;outline:none;/* 去掉默认的蓝色边框 */}

四、CSS字体属性

4.1 字体系列(font-family)

p{font-family:"Microsoft YaHei","微软雅黑",Arial,sans-serif;}

注意:

  • 多个字体之间用英文逗号隔开
  • 有空格的字体名需要加引号
  • 浏览器会按顺序查找字体,如果都没有则使用默认字体
  • 通常最后加上一个通用字体族(如sans-serif)作为后备

4.2 字体大小(font-size)

p{font-size:16px;/* 常用单位:px(像素) */}

注意:

  • 谷歌浏览器默认文字大小为16px
  • 不同浏览器默认字号可能不一致,建议给body指定明确大小

4.3 字体粗细(font-weight)

p{font-weight:700;/* 加粗,等价于 bold */}span{font-weight:400;/* 正常,等价于 normal */}
属性值说明
normal默认值(不加粗),等价于400
bold定义粗体,等价于700
100~900400等同于normal,700等同于bold,数字后不跟单位

4.4 文字样式(font-style)

p{font-style:italic;/* 斜体 */}em{font-style:normal;/* 不倾斜,将斜体标签恢复正常 */}
属性值说明
normal默认值,标准字体样式
italic斜体

💡 实际开发中,更常做的是把emi等斜体标签设置为normal,而不是给正常文字加斜体。

4.5 字体复合属性(font)

可以将以上字体属性简写为一行:

body{font:font-style font-weight font-size/line-height font-family;}

示例:

/* 展开写法 */div{font-style:italic;font-weight:700;font-size:16px;font-family:'Microsoft YaHei';}/* 复合写法(更简洁) */div{font:italic 700 16px'Microsoft YaHei';}

必须遵守的规则:

  • 必须按照固定顺序书写,不能更换顺序
  • font-sizefont-family必须同时出现,缺一不可
  • 不需要设置的属性可以省略(取默认值)

4.6 字体属性总结

属性表示注意点
font-size字号常用单位px,必须带单位
font-family字体按团队约定书写
font-weight粗细700/bold加粗,400/normal正常,数字不带单位
font-style样式italic倾斜,normal正常
font复合属性有固定顺序,font-sizefont-family必须同时出现

五、CSS文本属性

5.1 文本颜色(color)

p{color:red;/* 预定义颜色值 */color:#ff0000;/* 十六进制(最常用) */color:#f00;/* 十六进制简写 */color:rgb(255,0,0);/* RGB代码 */}
表示方式属性值说明
预定义颜色值red,green,blue,pink直接使用颜色英文单词
十六进制#FF0000,#FF6600,#29D794开发中最常用
RGB代码rgb(255,0,0)红绿蓝三原色组合

5.2 对齐文本(text-align)

h1{text-align:center;/* 居中对齐 */}p{text-align:left;/* 左对齐(默认) */}span{text-align:right;/* 右对齐 */}
属性值说明
left左对齐(默认值)
right右对齐
center居中对齐

5.3 装饰文本(text-decoration)

a{text-decoration:none;/* 无装饰线(最常用) */}p{text-decoration:underline;/* 下划线 */}del{text-decoration:line-through;/* 删除线 */}
属性值说明
none默认,没有装饰线(最常用,用于去掉链接默认下划线)
underline下划线(链接a自带下划线)
overline上划线(几乎不用)
line-through删除线(不常用)

5.4 文本缩进(text-indent)

p{text-indent:2em;/* 首行缩进2个字符 */}

em单位说明:

  • em是一个相对单位
  • 1em等于当前元素的font-size大小
  • 如果当前元素没有设置大小,则按照父元素的1个文字大小
  • 使用2em可以实现段落首行缩进两个汉字的效果

5.5 行间距(line-height)

p{line-height:26px;/* 行高为26像素 */line-height:1.5;/* 行高为字体大小的1.5倍 */}

行高的组成:

行高 = 上间距 + 文字高度 + 下间距

💡单行文字垂直居中技巧:line-height等于元素的高度,文字就会垂直居中!

.box{height:40px;line-height:40px;/* 文字垂直居中 */}

5.6 文本属性总结

属性表示注意点
color文本颜色常用十六进制简写,如#fff
text-align文本对齐设定文字水平对齐方式
text-indent文本缩进常用text-indent: 2em实现首行缩进
text-decoration文本修饰underline添加下划线,none取消下划线
line-height行高控制行与行之间的距离

六、CSS引入方式

CSS有三种引入方式,各有适用场景:

6.1 行内样式表(内联式)

直接在HTML标签的style属性中写CSS。

<divstyle="color:red;font-size:12px;">青春不常在</div>

特点:

  • 书写方便,权重最高
  • 结构与样式混写,不推荐大量使用
  • 仅适合对当前元素添加简单样式

6.2 内部样式表(嵌入式)

将CSS代码写在HTML文件的<style>标签中。

<!DOCTYPEhtml><html><head><style>p{color:red;font-size:12px;}</style></head><body><p>这是一段文字</p></body></html>

特点:

  • 部分实现了结构与样式分离
  • 适合单个页面的样式设置
  • 练习时常用这种方式

6.3 外部样式表(链接式)⭐推荐

将CSS代码写在单独的.css文件中,通过<link>标签引入。

第一步:创建style.css文件

/* style.css */p{color:red;font-size:16px;}

第二步:在HTML中引入

<head><linkrel="stylesheet"href="style.css"></head>

<link>标签属性说明:

属性作用
rel定义当前文档与被链接文档的关系,必须指定为stylesheet
href定义所链接外部样式表文件的路径

特点:

  • 完全实现结构与样式分离
  • 一个CSS文件可以被多个HTML页面共用
  • 方便维护和修改
  • 开发中最常用,吐血推荐!

6.4 三种引入方式对比

样式表优点缺点使用情况控制范围
行内样式表书写方便,权重高结构样式混写较少一个标签
内部样式表部分分离未彻底分离较多一个页面
外部样式表完全分离需要引入最多,推荐多个页面

七、综合案例:美化新闻页面

下面是一个完整的新闻页面示例,综合运用本章所学知识:

HTML文件(news.html):

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>科技新闻 - 人工智能新突破</title><linkrel="stylesheet"href="news.css"></head><body><divclass="container"><h1class="title">人工智能新突破:GPT-5即将发布</h1><pclass="subtitle">发布时间:2026-06-22 | 来源:科技日报</p><divclass="content"><p>近日,人工智能领域迎来重大突破。据知情人士透露,下一代大语言模型GPT-5已经进入最后测试阶段,预计将在今年第三季度正式发布。</p><p>据悉,GPT-5在多个关键指标上实现了质的飞跃。在自然语言理解、代码生成、数学推理等方面,性能较前代提升了约40%。特别是在多模态处理能力上,GPT-5可以同时处理文本、图像、音频和视频等多种数据类型。</p><p>"这将是一个里程碑式的进步,"某知名AI研究员表示,"GPT-5的出现可能会彻底改变我们与技术交互的方式。"</p></div><pclass="footer">本文仅代表作者观点,不代表本站立场。</p></div></body></html>

CSS文件(news.css):

/* 清除默认样式 */*{margin:0;padding:0;box-sizing:border-box;}body{font-family:"Microsoft YaHei","微软雅黑",sans-serif;background-color:#f5f5f5;line-height:1.6;}.container{width:800px;margin:50px auto;background-color:#fff;padding:40px;border-radius:8px;box-shadow:0 2px 10pxrgba(0,0,0,0.1);}.title{color:#333;font-size:28px;text-align:center;margin-bottom:15px;}.subtitle{color:#999;font-size:14px;text-align:center;margin-bottom:30px;border-bottom:1px solid #eee;padding-bottom:15px;}.content p{color:#555;font-size:16px;text-indent:2em;margin-bottom:15px;line-height:1.8;}.footer{color:#999;font-size:12px;text-align:center;margin-top:30px;padding-top:15px;border-top:1px solid #eee;}

八、Chrome调试工具

学会使用浏览器开发者工具是前端开发的基本功。

打开方式

  • 快捷键:F12Ctrl + Shift + I
  • 右键点击页面 → 选择"检查"

常用功能

  1. Elements(元素面板):查看和修改HTML/CSS
  2. Console(控制台):查看JavaScript输出和错误
  3. Network(网络面板):查看请求和响应

调试CSS小技巧

  • 点击元素可以查看其所有CSS样式
  • 可以直接在面板中修改样式,实时预览效果
  • 修改后的样式不会保存到文件中,需要手动复制到代码中

九、CSS三大特性

9.1 层叠性

当多个选择器设置了相同的属性时,后面的样式会覆盖前面的样式。

p{color:red;}p{color:blue;/* 最终文字显示蓝色 */}

9.2 继承性

子元素会继承父元素的某些样式(主要是文字相关的样式)。

body{color:red;font-size:16px;}/* body内的所有子元素都会继承红色文字和16px字号 */

9.3 优先级

当多个选择器选中同一个元素时,优先级高的样式生效。

优先级排序(从高到低):

选择器权重
行内样式1000
ID选择器100
类/伪类/属性选择器10
标签选择器1
通配符/继承0

计算示例:

#nav .menu li{}/* 权重:100 + 10 + 1 = 111 */.nav li{}/* 权重:10 + 1 = 11 */li{}/* 权重:1 */

💡权重叠加但不会进位0,0,1,0+0,0,1,0=0,0,2,0,而不是0,1,0,0


十、本章小结

知识点核心内容
CSS定义层叠样式表,负责网页的外观美化
基础选择器标签、类(.)、ID(#)、通配符(*
复合选择器后代(空格)、子代(>)、并集(,)、伪类(:
字体属性font-familyfont-sizefont-weightfont-stylefont复合
文本属性colortext-aligntext-indenttext-decorationline-height
引入方式行内式、嵌入式、外部链接式(推荐)
三大特性层叠性、继承性、优先级

如果本文对你有帮助,欢迎点赞 👍、收藏 ⭐、关注专栏!有问题欢迎在评论区交流讨论。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/24 9:17:16

junit5->assertAll()

当测试中某个断言失败时&#xff0c;JUnit 会停止执行后续断言。如果您希望确保所有断言都得到检查&#xff0c;而不管个别断言是否失败&#xff0c;请使用 assertAll() 对分组断言进行处理。 使用分组断言&#xff0c;即使断言失败&#xff0c;所有断言也会执行&#xff0c;并…

作者头像 李华
网站建设 2026/6/24 9:15:08

损失函数 的 硬截断 和 平滑衰减

损失函数 的 硬截断 和 平滑衰减 flyfish 在逐样本损失计算完成、取平均之前&#xff0c;对损失过高的样本做权重压制&#xff0c;不删除样本&#xff0c;只削弱它们对梯度的贡献&#xff0c;属于软降权——既保留了样本的监督信号&#xff0c;又避免极端难样本/疑似错标样本带…

作者头像 李华
网站建设 2026/6/24 9:13:06

5分钟快速上手Penpot:开源设计平台团队协作实战指南

5分钟快速上手Penpot&#xff1a;开源设计平台团队协作实战指南 【免费下载链接】penpot Penpot: The open-source design tool for design and code collaboration 项目地址: https://gitcode.com/GitHub_Trending/pe/penpot 你是否正在寻找一款既专业又灵活的设计工具…

作者头像 李华
网站建设 2026/6/24 9:10:26

Rust为何成为AI智能体视觉(TVA)的“免疫系统”(系列)

前沿技术介绍&#xff1a;AI智能体视觉&#xff08;TVA&#xff0c;Transformer-based Vision Agent&#xff09;是依托Transformer架构与“因式智能体”理论所构建的颠覆性工业视觉技术&#xff0c;属于“物理AI” 领域的一种全新技术形态&#xff0c;完成了从“虚拟世界”到“…

作者头像 李华
网站建设 2026/6/24 9:07:03

AI进阶三境界:从聊天框到专家团队,你处于哪一层?

文章将使用AI的方式分为三个层级&#xff1a;第一层是基础聊天框&#xff0c;仅用于简单问答&#xff1b;第二层是通过Agent平台实现任务自动化&#xff1b;第三层是利用中央调度系统&#xff0c;由专家Agent团队协作完成复杂任务。文章深入解析了Agent的运作机制&#xff0c;将…

作者头像 李华
网站建设 2026/6/24 9:03:14

微软 SQL Server 版本演进史:从诞生到 SQL Server 2025

一、SQL Server 的起源&#xff08;1989-1996&#xff09;1989年&#xff1a;SQL Server 1.0微软与 Sybase 合作&#xff0c;推出了第一个版本的 SQL Server&#xff0c;运行于 OS/2 平台。这是微软进入数据库领域的起点&#xff0c;虽然功能相对简单&#xff0c;但为后续发展奠…

作者头像 李华