CSS (Cascading Style Sheets) 用于渲染HTML元素标签的样式。一个基本的网站包含很多个网页,一个网页由html, css和javascript组成。html是主体,装载各种dom元素;css用来装饰dom元素;javascript控制dom元素。用一扇门比喻三者间的关系是:html是门的门板,css是门上的油漆或花纹,javascript是门的开关;
HTML是网页内容的载体。内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字、图片、视频等。CSS样式是表现。就像网页的外衣。比如,标题字体、颜色变化,或为标题加入背景图片、边框等。所有这些用来改变内容外观的东西称之为表现。
CSS写在style标签中,style标签一般写在head标签里面,title标签下面,选择器 {css属性}
有 4 种方式可以在 HTML 中引入 CSS。
其中有 2 种方式是在 HTML 文件中直接添加 CSS 代码。
另外两种是引入 外部 CSS文件。
css写在标签的style属性中<div style="background: skyblue">
<h1>你好h1>
div>

拥有相同的样式,你不得不重复地为每个 添加相同的样式,如果想要修改一种样式,又不得不修改所有的 style 中的代码。很显然,内联方式引入 CSS 代码会导致 HTML 代码变得冗长,且使得网页难以维护。
2.内嵌式
- 内嵌式指的是在 HTML 头部中的
标签下书写 CSS 代码。 css写在标签的style属性中- 示例
<style>
div{
width:600px;
height:600px;
margin:0 auto;
}
style>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 代码效果

- 内嵌式的 CSS 只对当前的网页有效。因为 CSS 代码是在 HTML 文件中,所以会使得代码比较集中,当我们写模板网页时这通常比较有利。因为查看模板代码的人可以一目了然地查看 HTML 结构和 CSS 样式。因为嵌入的 CSS 只对当前页面有效,所以当多个页面需要引入相同的 CSS 代码时,这样写会导致代码冗余,也不利于维护。
3.外联式——链接方式
- 链接方式指的是使用 HTML 头部的 标签引入外部的 CSS 文件。
css写在一个单独的.css文件中,通过link标签引入。- 示例
<head>
<link rel="stylesheet" type="text/css" href="style.css">
head>
- 1
- 2
- 3
link:链接标签type="text/css":表示类型是文本,文本为css。rel:表示文本引入进来后的解析方式,relationship的英文缩写。stylesheet译为样式表,总体描述了当前页面与href所指定文档的关系.即说明的是,href连接的文档是一个新式表。href:文件引用的路径,此处style.css是相对路径,应该就在当前文件(此html)同一个文件夹下面。- 这是最为推荐的引入 CSS 的方式。使用这种方式,所有的 CSS 代码只存在于单独的 CSS 文件中,所以具有良好的可维护性。并且所有的 CSS 代码只存在于 CSS 文件中,CSS 文件会在第一次加载时引入,以后切换页面时只需加载 HTML 文件即可。
4.外联式——导入方式
- 导入方式指的是使用 CSS 规则引入外部 CSS 文件。
- 示例
<style>
@import url(style.css);
style>
- 1
- 2
- 3
5.比较链接方式和导入方式
-
链接方式(下面用 link 代替)和导入方式(下面用 @import 代替)都是引入外部的 CSS 文件的方式。
-
link 属于 HTML,通过 标签中的 href 属性来引入外部文件,而 @import 属于 CSS,所以导入语句应写在 CSS 中,要注意的是导入语句应写在样式表的开头,否则无法正确导入外部文件;
-
@import 是 CSS2.1 才出现的概念,所以如果浏览器版本较低,无法正确导入外部样式文件;
-
当 HTML 文件被加载时,link 引用的文件会同时被加载,而 @import 引用的文件则会等页面全部下载完毕再被加载;
三、CSS基础选择器
CSS 选择器是对 HTML 页面中的元素实现一对一,一对多或者多对一的控制,从而给指定元素添加样式。
通过选择器,我们可以找到页面中对应的标签,方便后续设置样式
1.标签选择器
- 结构:
标签名{ css属性名: 属性值; } - 作用:通过标签名,找到页面中所有这类标签,设置样式
- 注意点:
- 标签选择器选择的是一类标签,而不是单独某一个
- 标签选择器无论嵌套关系有多深,都能找到对应的标签
- 示例
<style>
div{
width:600px;
height:600px;
margin:0 auto;
}
h1{
color: chartreuse;
}
style>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 代码效果

2.类选择器
- 结构:
.类名{class属性名:属性值;} - 作用: 通过类名,找到页面中所有带这个类名的标签,设置样式
- 示例
<style>
.y1{
font-size:27px; /*字体大小*/
font-weight:bold; /*字体粗细值跟数字都可*/
font-style:italic; /*字体样式*/
font-family:楷体; /*字体系列*/
color: darkviolet;
}
style>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 代码效果


3.id选择器
- 结构:
#id属性值{ css属性名:属性值; } - 作用:通过id属性值,扎到页面中带有这个id属性值得标签,设置样式
- 注意点:
- id属性值类似于身份证号,在一个页面中是唯一的,不可重复的
- 示例
<style>
#red{
color: red;
}
style>
- 1
- 2
- 3
- 4
- 5
- 代码效果


4.通配符选择器
<style>
* {
color: chartreuse;
}
style>
- 1
- 2
- 3
- 4
- 5
- 代码效果


5.字体和文本样式
-
字体大小
-
属性名:font-size
-
取值: 数字 + px
-
示例:font-size:27px;

-
字体粗细
-
属性名: font-weight
-
取值:数字
-
正常 normal
-
加粗 bold
-
示例:font-weight:bold;

-
字体样式
-
属性名: font-style
-
取值:正常: normal;倾斜:italic
-
示例:font-style:italic;

-
字体系列
-
属性名:font-family
-
取值:宋体,楷体,微软雅黑 等
-
示例:font-family:楷体;

6.字体font相关属性的连写
- 属性名:
font - 取值:
font: style weight size family - 顺序要求:
swsf看上去会 稍微舒服
7.文本属性
-
文本缩进
-
属性名: text-indent
-
取值:
-
数字+px
-
数字+em(推荐:1em=当前标签的font-size的大小)
-
文本水平对齐
-
属性名: text-align
-
取值:
-
left 左对齐
-
center 居中对齐
-
right 右对齐
-
注意 text-align:center 水平居中对文本、span标签、a标签、input标签, img标签、如果需要以上元素水平居中,text-align属性是给以上元素父元素设置
-
属性名:margin:0 auto
-
如果需要让div, p ,h 水平居中,需要通过margin:0 auto; 实现,直接给当前元素设置
-
文本修饰
-
属性名: text-decoration
-
取值:
-
underline 下划线(常用)
-
line-thourgh 删除线 (不常用)
-
none 无装饰线(常用)
-
注意点:
-
开发中会使用text-decoration: none; 清除a标签默认的下划线
-
行高
-
作用:控制行间距(给一行上下增加间距)
-
属性名: line-height
-
取值:
-
数字 + px
-
倍数(当前font-size的倍数)
四、复合选择器
1.后代选择器
-
作用:根据HTML标签的嵌套关系,选择父元素后代中满足条件的元素
-
选择器语法: 选择器1 选择器2 {css}
-
注意点:
-
后代包括: 儿子、孙子、重孙子…
-
后代选择器,选择器与选择器之间用空格隔开
-
示例:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>复合选择器title>
<style>
div{
width:600px;
height:600px;
margin:0 auto;
}
/* 找到div的儿子p设置文字颜色是青绿色,不改变html结构 */
/* 父选择器 后代选择器 {} */
div p {
color: aquamarine;
}
style>
head>
<body>
<div>
<h1>
后代选择器
h1>
<p>
我是div的儿子
p>
div>
body>
html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 代码效果:

2.子代选择器
- 作用:根据HTML标签的嵌套关系,选择父元素子代中满足条件的元素
- 选择器语法:
选择器1 > 选择器2{css} - 注意点:
子代只包括儿子子代选择器中,选择器与选择器之间通过>隔开- 示例:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>复合选择器title>
<style>
div{
width:600px;
height:600px;
margin:0 auto;
}
/* 只让div的儿子p设置文字颜色是粉色,不改变html结构 */
div p{
color: aquamarine;
}
div>a{
color: hotpink;
}
style>
head>
<body>
<div>
<a>
div里面的a
a>
<p>
<a>我是div里面p里面的aa>
p>
div>
body>
html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 代码效果:

3.并集选择器
-
作用: 同时选择多组标签,设置相同的样式
-
选择器语法: 选择器1,选择器2{css}
-
注意点:
-
并集选择器中的每组选择器之间通过逗号(,)分隔
-
并集选择器中的每组选择器可以是基础选择器或者复合选择器
-
示例:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<style>
#green{color: green;}
p,h1{color: blue;}
style>
head>
<body>
<a>你好,我是aa>
<p align="center" id="green">你好,我是pp>
<h1 align="center">你好,我是h1h1>
<div align="center">你好,我是divdiv>
body>
html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 代码效果:

4.交集选择器
- 作用: 选中页面中
同时满足 多个选择器的标签 交集选择器由两个选择器构成,找到的标签必须满足:既有标签一的特点,也有标签二的特点。 - 选择器语法:
选择器1选择器2{css} - 注意点:
- 交集选择器中的选择器是紧挨着的,没有东西分割
- 交集选择器中如果有标签选择器,标签选择器必须写在最前面
- 示例:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<style>
.y1{color: blue;}
p.y1{color: blue;}
style>
head>
<body>
<p class="y1" align="center">交集选择器蓝色p>
<h1 class="p.y1" align="center">交集选择器h1>
body>
html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 代码效果:

5.hover伪类选择器
- 作用:选中鼠标悬停在元素上的状态,设置样式
- 选择器语法:
选择器:hover{css} - 示例:
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Documenttitle>
<style>
.y1:hover{color: aqua;}
style>
head>
<body>
<p class="y1">光标移到我这里才变色p>
body>
html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 代码效果:

