CSS样式和布局入门

发布时间: 2024-01-18 12:28:18 阅读量: 24 订阅数: 26
# 1. 介绍 ## 1.1 什么是CSS CSS(Cascading Style Sheets)即层叠样式表,是一种用来描述HTML或XML文档的呈现方式的样式表语言。它主要用于控制网页的布局、字体、颜色、背景等外观样式。 CSS的核心理念是分离文档的内容(HTML结构)和其样式(布局、颜色、字体等),这样可以使得页面的结构与样式之间互不干扰,从而提高了网页开发的效率,便于维护和修改。 ## 1.2 CSS的重要性与应用领域 CSS在Web开发中具有重要作用,它可以使网页的外观更加美观、统一,提高用户体验。同时,也可以实现响应式设计,使网页在不同设备上都能良好地展示。 CSS在网页设计、移动应用开发、用户界面设计等领域都有着广泛的应用。掌握CSS样式和布局的基础知识是每位前端开发人员必备的能力。 # 2. CSS样式基础 ### 2.1 CSS的选择器及其使用方法 CSS选择器用于选择HTML元素,并对其应用样式。常见的CSS选择器有以下几种: - 元素选择器:通过HTML元素名称选择元素。例如,`p`选择所有的`<p>`元素。 - 类选择器:通过指定类名选择元素。使用`.`符号来表示类选择器。例如,`.red`选择所有带有`class="red"`的元素。 - ID选择器:通过指定ID选择元素。使用`#`符号来表示ID选择器。例如,`#title`选择ID为`"title"`的元素。 - 属性选择器:根据元素的属性值来选择元素。使用方括号`[]`表示属性选择器。例如,`[type="text"]`选择`type`属性值为`"text"`的元素。 示例代码如下: ```css /* 元素选择器 */ p { color: blue; } /* 类选择器 */ .red { color: red; } /* ID选择器 */ #title { font-size: 20px; } /* 属性选择器 */ [type="text"] { border: 1px solid gray; } ``` ### 2.2 CSS的样式属性和属性值 CSS样式属性用于设置元素的样式。常见的CSS样式属性有以下几种: - `color`:设置文本颜色。 - `font-size`:设置字体大小。 - `background-color`:设置背景颜色。 - `border`:设置边框样式。 - `width`:设置元素的宽度。 - `height`:设置元素的高度。 - `margin`:设置元素的外边距。 - `padding`:设置元素的内边距。 - `text-align`:设置文本对齐方式。 示例代码如下: ```css /* 设置文本颜色 */ p { color: blue; } /* 设置字体大小 */ h1 { font-size: 24px; } /* 设置背景颜色 */ body { background-color: #f0f0f0; } /* 设置边框样式 */ div { border: 1px solid black; } /* 设置元素宽度 */ img { width: 200px; } /* 设置元素高度 */ div { height: 100px; } /* 设置外边距 */ p { margin: 10px; } /* 设置内边距 */ div { padding: 20px; } /* 设置文本对齐方式 */ h1 { text-align: center; } ``` ### 2.3 内联样式与内部样式表的使用方法 在HTML中,可以使用内联样式和内部样式表来设置元素的样式。 - 内联样式:使用`style`属性直接在元素标签中设置样式。例如,`<p style="color: blue;">This is a paragraph.</p>`。 - 内部样式表:使用`<style>`标签在HTML文件中定义样式表,并在元素标签中使用`class`或`id`属性指定样式。示例代码如下: ```html <!DOCTYPE html> <html> <head> <style> p { color: blue; } .red { color: red; } #title { font-size: 20px; } </style> </head> <body> <p>This is a paragraph.</p> <p class="red">This is a red paragraph.</p> <p id="title">This is a title.</p> </body> </html> ``` ### 2.4 外部样式表的引入与使用 外部样式表是将CSS样式代码单独写入一个独立的文件中,并通过`<link>`标签引入到HTML文件中。外部样式表的优势在于可以在多个HTML文件中共享同样的样式。 首先,在一个独立的CSS文件中定义样式,例如`styles.css`: ```css p { color: blue; } .red { color: red; } #title { font-size: 20px; } ``` 然后,在HTML文件的`<head>`标签内使用`<link>`标签引入外部样式表: ```html <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="styles.css"> </head> <body> <p>This is a paragraph.</p> <p class="red">This is a red paragraph.</p> <p id="title">This is a title.</p> </body> </html> ``` 通过引入外部样式表,可以使得多个HTML文件共享同一套样式,提高代码的复用性和维护性。 # 3. CSS样式的展示 在网页设计中,CSS样式的展示非常重要。通过合适的样式可以美化页面,提高用户体验。接下来,我们将介绍一些常见的CSS样式,包括文本样式、背景样式、边框样式、链接样式和列表样式。 #### 3.1 文本样式 文本样式可以改变文字的外观,包括字体、大小、颜色等。下面是一些常见的文本样式属性: - `font-family`:设置字体类型,如`Arial`、`Times New Roman`等。 - `font-size`:设置字体大小,可以使用绝对单位(如像素)或相对单位(如em)。 - `color`:设置字体颜色,可以使用具体的颜色名或十六进制值。 示例代码: ```css p { font-family: Arial, sans-serif; font-size: 16px; color: #333; } ``` #### 3.2 背景样式 背景样式可以为元素添加背景图片、颜色或渐变效果。下面是一些常见的背景样式属性: - `background-color`:设置背景颜色,可以使用具体的颜色名或十六进制值。 - `background-image`:设置背景图片,可以是图片的URL地址。 - `background-size`:设置背景图片的大小,可以使用像素或百分比。 - `background-repeat`:设置背景图片是否平铺。 示例代码: ```css div { background-color: #f2f2f2; background-image: url("bg.jpg"); background-size: cover; background-repeat: no-repeat; } ``` #### 3.3 边框样式 边框样式可以为元素添加边框,并控制边框的样式、宽度和颜色。下面是一些常见的边框样式属性: - `border-style`:设置边框样式,如实线、虚线等。 - `border-width`:设置边框宽度,可以使用像素、百分比或预定义的值。 - `border-color`:设置边框颜色,可以使用具体的颜色名或十六进制值。 示例代码: ```css input { border-style: solid; border-width: 2px; border-color: #ccc; } ``` #### 3.4 链接样式 链接样式可以改变链接的外观,使其在页面中更加显眼。下面是一些常见的链接样式属性: - `text-decoration`:设置文本装饰效果,如下划线、删除线等。 - `color`:设置链接文本颜色。 - `hover`:设置鼠标悬停在链接上时的样式。 示例代码: ```css a { text-decoration: none; color: #00a0e9; } a:hover { text-decoration: underline; } ``` #### 3.5 列表样式 列表样式可以改变有序列表和无序列表的样式,使其更具吸引力。下面是一些常见的列表样式属性: - `list-style-type`:设置列表项的标志类型,如实心圆点、数字等。 - `list-style-image`:设置自定义的列表项标志图片。 示例代码: ```css ul { list-style-type: square; } ol { list-style-type: decimal; } li { list-style-image: url("bullet.png"); } ``` 以上是一些常见的CSS样式展示,通过合理运用这些样式,我们可以打造出各式各样的页面效果。在实际应用中,可以根据需求进行调整和扩展。 本章节主要介绍了文本样式、背景样式、边框样式、链接样式和列表样式等常见的CSS样式。在实际项目中,我们可以根据需要灵活运用这些样式,打造出独特的页面效果。 # 4. CSS布局基础 在CSS中,布局是指如何将元素放置在页面中,并控制其在页面中的位置和尺寸。灵活的布局能够使网页更加美观、易于维护和适应多种设备。本章将介绍CSS的布局基础知识,包括盒模型和布局流、定位属性的使用方法、浮动和清除浮动、以及弹性布局和响应式设计。 #### 4.1 盒模型和布局流 在CSS中,每个元素被看作是一个矩形的盒子,也称为盒模型。盒模型由内容区域、内边距、边框和外边距组成,决定了元素在页面中的布局。 布局流是指元素在页面中按照从上到下、从左到右的顺序进行布局的方式。根据布局流,早期的网页布局是基于块级元素和行内元素的相对定位来实现的。不过,随着CSS的发展,出现了更多的布局方式和属性。 #### 4.2 定位属性及其使用方法 在CSS中,定位属性用于控制元素在页面中的位置。常见的定位属性有`position`、`top`、`bottom`、`left`、`right`等。 - `position`属性指定元素的定位方式,有以下几个值可选: - `static`:默认值,元素按照布局流进行排列。 - `relative`:相对定位,元素相对于其原始位置进行定位,但仍然在文档流中占据原来的空间。 - `absolute`:绝对定位,元素相对于其最近的具有非`static`定位的父元素进行定位,如果没有找到,则相对于页面的可见区域进行定位。 - `fixed`:固定定位,元素相对于浏览器窗口进行定位,不会随页面滚动而移动。 - `top`、`bottom`、`left`、`right`属性用于指定元素相对于其定位父元素的偏移量。可以使用像素、百分比或其他值来设置偏移量。 下面是一个示例代码,演示了如何使用定位属性实现简单的布局效果: ```html <!DOCTYPE html> <html> <head> <title>CSS布局基础示例</title> <style> .container { position: relative; width: 400px; height: 300px; border: 1px solid black; } .box { position: absolute; top: 50px; left: 50px; width: 200px; height: 150px; background-color: #ff0000; } </style> </head> <body> <div class="container"> <div class="box"></div> </div> </body> </html> ``` 在上述代码中,使用了`relative`定位的`.container`元素作为定位参考,而内部的`.box`元素则使用`absolute`定位并设置了偏移量。最终,`.box`元素会相对于`.container`元素在页面中进行定位。 #### 4.3 浮动和清除浮动 浮动是指将元素从正常的布局流中移动,使其向左或向右靠拢,而其他元素则会围绕浮动元素进行布局。浮动元素可以是块级元素或行内元素。 在CSS中,可以使用`float`属性来设置元素的浮动方式,有以下几个值可选: - `left`:元素向左浮动。 - `right`:元素向右浮动。 - `none`(默认值):元素不浮动,按照布局流进行排列。 然而,浮动元素可能会对后续元素的布局产生影响,导致元素重叠或错位。为了解决这个问题,可以使用清除浮动技术。 清除浮动是指通过合适的方式使包含浮动元素的容器元素具有正确的高度,以便正确地显示后续元素。常用的清除浮动的方法有以下几种: - 使用空元素清除浮动:在浮动元素的后面添加一个空元素,并为其设置`clear: both;`样式。 - 使用父元素的`overflow`属性清除浮动:将浮动元素的父元素的`overflow`属性设置为`auto`或`hidden`。 - 使用`clearfix`类清除浮动:使用特殊的CSS类来清除浮动,类似于下面的代码: ```css .clearfix::after { content: ""; display: table; clear: both; } ``` 以下是一个示例代码,演示了浮动和清除浮动的应用: ```html <!DOCTYPE html> <html> <head> <title>CSS浮动和清除浮动示例</title> <style> .container { width: 400px; border: 1px solid black; overflow: auto; /* 清除浮动 */ } .left { width: 200px; height: 150px; background-color: #ff0000; float: left; /* 左浮动 */ } .right { width: 200px; height: 150px; background-color: #00ff00; float: right; /* 右浮动 */ } .clearfix::after { content: ""; display: table; clear: both; } </style> </head> <body> <div class="container clearfix"> <div class="left"></div> <div class="right"></div> </div> </body> </html> ``` 在上述代码中,通过设置`float`属性实现了两个元素的浮动,`.container`元素使用`overflow`属性清除浮动,`.clearfix`类则使用特殊的CSS样式进行清除浮动。最终,两个浮动元素会呈现在`.container`元素的两侧并且不重叠。 # 5. CSS布局进阶 在这一章节中,我们将介绍一些CSS布局的进阶技术,以帮助您更好地实现复杂的页面布局。 #### 5.1 网格布局 网格布局是CSS中一种强大的布局方式,它能够将页面分割成网格,并通过指定行和列来定位元素。网格布局使用`display: grid`属性来创建一个网格容器,然后通过`grid-template-columns`和`grid-template-rows`属性来设置网格的列数和行数。例如: ```css .grid-container { display: grid; grid-template-columns: 100px 100px 100px; grid-template-rows: 50px 50px; } .grid-item { background-color: #ccc; padding: 10px; text-align: center; } ``` 以上示例中,我们创建了一个包含3列和2行的网格容器,并设置了每个网格项的宽度为100px,高度为50px。 #### 5.2 多列布局 多列布局是指将页面的内容分割成多列,使得页面可以更好地适应不同屏幕尺寸。多列布局可以使用`column-count`和`column-width`属性来设置列的数量和宽度。例如: ```css .column-container { column-count: 3; column-width: 200px; } .column-item { margin-bottom: 20px; break-inside: avoid; } ``` 以上示例中,我们创建了一个包含3列的多列布局容器,并设置每列的宽度为200px。 #### 5.3 媒体查询与响应式设计实践 在响应式设计中,我们希望页面能够根据设备的屏幕尺寸和布局方式进行自适应调整。媒体查询是一种CSS技术,它允许我们根据不同的媒体条件来设置不同的样式。 ```css @media (max-width: 768px) { /* 在屏幕宽度小于等于768px时应用的样式 */ } @media (min-width: 768px) and (max-width: 1024px) { /* 在屏幕宽度大于等于768px且小于等于1024px时应用的样式 */ } @media (min-width: 1024px) { /* 在屏幕宽度大于等于1024px时应用的样式 */ } ``` 以上示例中,我们通过媒体查询设置了在不同屏幕尺寸下应用的样式。 #### 5.4 Flexbox布局的应用 Flexbox布局是一种用于创建弹性盒模型的CSS布局方式,它可以使得元素在不同方向上的伸缩性更加灵活。通过设置`display: flex`属性来创建一个弹性容器,然后通过设置`flex-direction`、`justify-content`、`align-items`等属性来设置元素的排列方式和对齐方式。 ```css .flex-container { display: flex; flex-direction: row; /* 水平排列 */ justify-content: space-between; /* 元素间距平分 */ align-items: center; } .flex-item { flex-basis: 100px; /* 基础宽度为100px */ flex-grow: 1; /* 元素伸缩比例 */ flex-shrink: 1; /* 元素收缩比例 */ } ``` 以上示例中,我们创建了一个水平排列的弹性容器,其中的弹性项在水平方向上平分空间,垂直方向上居中对齐。 通过以上的介绍,您可以进一步掌握CSS布局的高级技巧,以实现更复杂的页面布局和响应式设计。现在,让我们进入第六章节,学习一些常见的CSS调试技巧和最佳实践。 # 6. 最佳实践与调试工具 在CSS样式和布局的实际应用中,遵循最佳实践和合理利用调试工具可以极大地提高开发效率和代码质量。 ### 6.1 常见的CSS调试技巧 在开发过程中,经常会遇到样式不生效或者布局错乱的情况,这时候就需要运用一些常见的CSS调试技巧来定位和解决问题。比如使用`border`属性查看盒模型布局、利用`outline`属性标记元素边界、使用`background-color`属性设置背景色等。 ```css /* 使用border属性查看盒模型布局 */ .element { border: 1px solid red; } /* 利用outline属性标记元素边界 */ .element { outline: 1px dashed blue; } /* 使用background-color属性设置背景色 */ .element { background-color: rgba(255, 0, 0, 0.1); } ``` ### 6.2 利用浏览器开发者工具调试CSS样式与布局 现代浏览器提供了强大的开发者工具,开发者可以通过浏览器的调试功能来实时查看和修改网页的样式与布局,包括查看元素盒模型、修改样式属性、查看页面渲染性能等。 ```html <!-- 在浏览器中按下F12或右键->检查,打开开发者工具 --> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Debugging with Browser Developer Tools</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="element">Debugging Example</div> </body> </html> ``` ### 6.3 CSS样式和布局的最佳实践 在实际项目中,遵循一些最佳实践可以让CSS样式和布局更加清晰易维护。比如避免使用过于具体的选择器、合理使用样式重用、注意浏览器兼容性等方面的问题。 ```css /* 避免使用过于具体的选择器 */ /* 不推荐 */ div#container ul li a { color: #ff0000; } /* 推荐 */ .link-item { color: #ff0000; } ``` 通过以上最佳实践和调试工具的使用,开发者可以更轻松地调试和管理CSS样式与布局,提高开发效率和代码质量。
corwn 最低0.47元/天 解锁专栏
开学大促
profit 百万级 高质量VIP文章无限畅学
profit 千万级 优质资源任意下载
profit C知道 免费提问 ( 生成式Al产品 )

相关推荐

张诚01

知名公司技术专家
09级浙大计算机硕士,曾在多个知名公司担任技术专家和团队领导,有超过10年的前端和移动开发经验,主导过多个大型项目的开发和优化,精通React、Vue等主流前端框架。
专栏简介
《前端开发 HTML CSS 宝典》专栏集合了丰富的HTML和CSS技术知识,涵盖了HTML基础语法与标签解析、CSS样式和布局入门等基础知识,深入讲解了如何使用HTML语义化构建网页、利用CSS网格布局设计响应式网页以及创建灵活的布局。此外,专栏还介绍了使用CSS选择器和伪类增强元素选择、利用HTML表单收集用户输入、以及如何使用CSS优化网页加载性能等实用技巧。对于进阶开发者,专栏中还包含了使用JavaScript与HTML DOM交互、控制表单验证、以及通过JavaScript创建动态网页效果等内容。同时,专栏还介绍了利用CSS Grid与Flexbox设计复杂布局、实现网页事件响应和优化网页性能的JavaScript技巧,以及使用HTML5 API增强网页功能的方法,为读者提供了全面系统的前端开发宝典。
最低0.47元/天 解锁专栏
开学大促
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
C知道 免费提问 ( 生成式Al产品 )

最新推荐

【Python与机器学习可视化】

# 1. Python基础知识与安装 Python作为一门现代编程语言,因其简洁的语法和强大的数据处理能力,已经成为数据科学和机器学习领域的首选语言。在开始深入了解其在机器学习和数据可视化中的应用之前,我们需要了解Python的基础知识,并掌握其安装过程。 ## 1.1 Python简介 Python是一种解释型、面向对象、高级编程语言,由Guido van Rossum在1989年底发起并首次发布于1991年。它的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进来区分代码块,而不是使用大括号或关键字)。Python支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。 #

机器学习算法在时间序列分析中的应用比较:关键选择指南

![机器学习算法](https://img-blog.csdnimg.cn/img_convert/c9a3b4d06ca3eb97a00e83e52e97143e.png) # 1. 时间序列分析基础 时间序列分析是通过分析时间顺序上连续数据点的模式和结构来预测未来值和理解过去行为的一门科学。它广泛应用于股票市场预测、天气预报、供应链分析等众多领域。本章旨在为您提供时间序列分析的基础知识,从最基本的术语和概念开始,逐步深入到时间序列数据的特性和常见模式。 ## 1.1 时间序列的基本概念 时间序列是由按时间顺序排列的一系列数据点组成。每个数据点与一个时间标签相关联,时间标签通常等间距,

Python并发算法设计模式:面向对象并发编程的艺术

![Python并发算法设计模式:面向对象并发编程的艺术](https://files.realpython.com/media/Threading.3eef48da829e.png) # 1. Python并发编程概述 在当今这个多核处理器日益普及的计算机时代,编写高效的并发程序已经变得极为重要。**Python**作为一种广泛使用的高级编程语言,因其简洁的语法和强大的库支持,在开发并发程序方面也显示出了独特的优势。本章节将对**Python**并发编程的基本概念进行概述,为读者后续深入学习打下坚实基础。 Python的并发编程主要通过两种方式实现:多进程和多线程。多进程是通过**mul

回溯算法的时间复杂度:状态空间树与剪枝技巧的运用

# 1. 回溯算法的基本原理和特性 回溯算法是一种用于解决约束满足问题的算法,其基本原理是通过探索所有可能的解空间来找到问题的答案。它通常采用递归的方式来构建问题的解空间树,并在构建的过程中排除不可能产生解的分支,即所谓的剪枝操作。 ## 1.1 基本概念和步骤 回溯算法的核心步骤可以概括为: 1. **目标判断**:判断当前扩展的节点是否满足问题的解,如果满足,则停止扩展,找到一个解。 2. **约束判断**:如果当前节点不满足解的条件,检查约束条件是否允许向当前节点的子节点扩展。 3. **搜索扩展**:如果可以扩展,选择一个子节点并继续递归搜索,否则返回上一级节点继续搜索。 4. *

环境保护AI行动:如何用算法监测与减缓环境污染

# 1. 环境保护与AI技术的交叉 在过去的几十年里,人类活动导致的环境问题愈发严重,从空气质量下降到水体污染,再到生物多样性丧失,我们面临着前所未有的挑战。随着人工智能(AI)技术的迅猛发展,一个全新的解决方案开始进入人们的视野:利用AI技术来协助环境保护工作。 AI技术的应用不仅仅局限在互联网和智能手机中,它已经开始渗入到环境保护的各个领域。通过模拟和增强人类处理信息的能力,AI能够帮助我们更有效地收集环境数据、预测污染发展趋势,以及提出改善环境质量的策略。 本章将讨论AI如何与环境保护相结合,以及这种交叉能够带来的潜在影响。我们会从理论和实践两个层面,探讨AI在环境监测、污染减缓和

Python搜索算法商业价值:案例分析与实际应用

![Python搜索算法实例分析](https://media.geeksforgeeks.org/wp-content/uploads/20231221111714/Best-First-Search-Informed-Search.jpg) # 1. Python搜索算法简介 ## 1.1 什么是搜索算法? 搜索算法是一种用于查找数据集中特定项的技术或方法。在计算机科学中,搜索算法广泛应用于各种场景,包括网站索引、数据库查询和解决问题的AI系统中。Python,作为一种广泛使用的编程语言,因其简洁的语法和强大的库支持,在实现搜索算法方面有着独特的优势。 ## 1.2 搜索算法的分类 搜

【迭代算法】:Python面试中的循环解决方案

![迭代算法](https://img-blog.csdnimg.cn/0e9c03de2c6243d28b372d1d856d60f5.png) # 1. 迭代算法的基本概念与重要性 ## 迭代算法定义 迭代算法是一种通过重复应用一系列计算步骤直到达到预期结果的过程。在计算机科学中,迭代通常指的是使用循环结构来重复执行一段代码,直到满足某种条件为止。 ## 重要性 迭代算法在处理复杂问题时尤为关键,它可以将问题简化为更小的子问题,并逐一解决。迭代方法是许多算法和程序设计技术的基础,比如搜索、排序和优化算法等。理解迭代算法对于设计高效且可维护的程序至关重要。 ## 优化和应用 迭代过程往

生成对抗网络(GAN):原理、应用与未来趋势

![生成对抗网络(GAN)](https://machinelearningmastery.com/wp-content/uploads/2019/05/Example-of-the-Architecture-for-the-Stacked-Generative-Adversarial-Network-for-Text-to-Image-Generation-1024x462.png) # 1. 生成对抗网络(GAN)概述 生成对抗网络(GAN)是深度学习领域中的一个创新性框架,由两部分组成:生成器和判别器。生成器的目标是创造出逼真的数据,而判别器则试图区分生成的数据与真实数据。自2014年

自监督学习:减少NLP标注数据依赖的未来趋势

![自监督学习](https://assets.st-note.com/img/1680755271124-xkmwFupmog.png) # 1. 自监督学习与NLP的关系 自监督学习是自然语言处理(NLP)领域的一个重要进步,它通过利用数据中的未标记部分来学习有用的数据表示,从而减少对大规模标注数据的依赖。在NLP中,语言数据的丰富性和复杂性使得自监督学习成为一种有效的技术。它能够捕捉到语言中的深层语义和结构特征,为诸如情感分析、机器翻译等任务提供强大的基础。随着深度学习模型的发展,自监督学习与NLP的关系愈发紧密,不断推动着AI领域的前沿探索。 # 2. 自监督学习的理论基础 ##

能源消耗优化中的强化学习实践:策略与应用

![能源消耗优化中的强化学习实践:策略与应用](https://img-blog.csdnimg.cn/20210113220132350.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0dhbWVyX2d5dA==,size_16,color_FFFFFF,t_70) # 1. 强化学习在能源消耗优化中的应用概述 ## 1.1 强化学习简介 强化学习是一种机器学习范式,其中智能体通过与环境的交互学习如何最大化累积奖励。在能源消耗优