文章目录(PS:觉得不错请点赞收藏支持一下)
一、CSS 初识
1.1 概念
-
说明
- CSS(Cascading Style Sheets),通常称为CSS样式表或层叠样式表(级联样式表)
-
作用
-
主要用于设置 HTML 页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式
-
CSS 以 HTML 为基础,提供了丰富的功能,如字体、颜色、背景的控制及整体排版等,而且还可以针对不同的浏览器设置不同的样式
-
1.2 引入 CSS 样式表
1.2.1 行内式(内联样式)
-
说明
- 通常称为行内样式、行间样式
- 通过标签的 style 属性来设置元素的样式
- HTML 中任何的标签都拥有 style 属性,用来设置行内式
-
格式
<标签名 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"> 内容 </标签名>
-
注意
- style 其实就是标签的属性
- 样式属性和值中间是
:
- 多组属性值之间用
:
隔开 - 只能控制当前的标签和以及嵌套在其中的子标签,造成代码冗余
-
缺点
- 没有实现样式和结构相分离
1.2.2 内部样式表(内嵌样式表)
-
说明
- 通常称为 内嵌式
- 是将 CSS 代码集中写在 HTML 文档的 head 头部标签中,并且用 style 标签定义
-
格式
<style type="text/css"> 标签选择器 {
属性1: 属性值1;
属性2: 属性值2;
属性3: 属性值3;
}
</style>
-
注意
- style 标签一般位于 head 标签中,理论上它可以放在 HTML 文档的任何地方
- type=“text/css” 在 HTML5 中可以省略
- 只能控制当前的页面
-
缺点
- 没有彻底分离
1.2.3 外部样式表(外链式)
-
说明
- 通常称为 链入式
- 是将所有的样式放在一个或多个以 .CSS 为扩展名的外部样式表文件中
- 通过 link 标签 将外部样式表文件链接到 HTML 文档中
-
格式
<link rel="stylesheet" type="text/css" href="css文件路径">
-
注意
- link 是个单标签
- link 标签需要放在 head 头部标签中,并且指定 link 标签的三个属性
属性 | 作用 |
---|---|
rel | 定义当前文档与被链接文档之间的关系,需要指定为 “stylesheet”,表示被链接的文档是一个样式表文件 |
type | 定义所链接文档的类型,需要指定为 “text/css”,表示链接的外部文件为 CSS 样式表,可以省略 |
href | 定义所链接外部样式表文件的 URL,可以是相对路径,也可以是绝对路径 |
1.2.4 三种样式表总结
样式表 | 优点 | 缺点 | 使用情况 | 控制范围 |
---|---|---|---|---|
行内样式 | 书写方便,权重高 | 没有实现样式和结构相分离 | 较少 | 控制一个标签(少) |
内部样式表 | 部分结构和样式相分离 | 没有彻底分离 | 较多 | 控制一个页面(中) |
外部样式表 | 完全实现结构和样式相分离 | 需要引入 | 最多,强烈推荐 | 控制整个站点(多) |
1.2.5 CSS 样式规则
-
代码风格
- 紧凑格式(Compact)
选择器或标签名 { 属性名: 属性值; 属性名: 属性值;}
- 展开格式(推荐使用)
选择器或标签名 { 属性名: 属性值; 属性名: 属性值; }
-
代码大写
推荐使用: 样式选择器,属性名,属性值关键字全部使用小写字母书写,属性字符串允许使用大小写。
总结
- 选择器用于指定 CSS 样式作用的 HTML 标签,花括号内是对该对象设置的具体样式。
- 属性和属性值以 “键值对” 的形式出现。
- 属性是对指定的对象设置的样式属性,例如字体大小、文本颜色等。
- 属性和属性值之间用英文
:
连接。 - 多个 “键值对” 之间用英文
:
进行区分。
1.2.6 CSS 样式优先级
-
说明
CSS 共分为三种样式,分别为 行内样式、内部样式、外部样式
行内样式写法 <标签名 style="属性1:属性值1; 属性2:属性值2; 属性3:属性值3;"> 内容 </标签名> 内部样式写法 <style> 标签选择器 { 属性1: 属性值1; 属性2: 属性值2; 属性3: 属性值3; } </style> 外部样式写法 <link rel="stylesheet" type="text/css" href="css文件路径">
二、 CSS 选择器
2.1 概念
-
说明
- 用来找到特点的 HTML 页面元素
- 通俗的讲,就是把我们想要的标签选择出来
- 分工明确,也就是说选对人,做对事
- 选择器分为基础选择器和复合选择器
2.2 CSS 基础选择器
2.2.1 标签选择器
-
说明
- 标签选择器(元素选择器) 是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式。
-
语法
标签名 {
属性1:属性值1;
属性2:属性值2;
属性3:属性值3;
}
-
作用
- 标签选择器 可以把某一类标签全部选择出来,比如所有的 div 标签 和所有的 span 标签
-
优点
- 能快速为页面中同类型的标签统一样式
-
缺点
- 不能设计差异化样式
-
口诀
标签选择器,
页面同选起。
直接写标签,
全部不放弃。
2.2.2 类选择器
-
说明
- 类选择器使用 “.” (英文点号) 进行标识,后面紧跟类名
-
语法
类名选择器 .类名 {
属性1: 属性值1;
属性2: 属性值2;
属性3: 属性值3;
}
<p class="类名"></p>
-
优点
- 可以为元素对象定义单独或相同的样式,可以选择一个或者多个标签
-
注意
- 类选择器使用 “.” (英文点号) 进行标识,后面紧跟类名(自定义名字)
- 长名称或词组可以使用中横线来为选择器命名
- 不要使用纯数字、中文等命名,尽量使用英文字母来表示
-
口诀
差异化选择
一个或多个
上面点定义
类名别写错
谁用谁调用
class来做
嘿嘿,工作类最多
-
特殊用法—多类名
-
说明: 我们可以给标签指定多个类名,方便更多的的选择
-
注意: 各个类名中间用空格隔开
-
格式
-
<div class="类名1 类名2 类名3"></div>
2.2.3 id 选择器
-
说明
- id 选择器使用
#
进行标识,后面紧跟 id 名 - 元素的 id 值是唯一的,只能对应于文档中某一个具体的元素
- 用法基本和类选择器相同
- id 选择器使用
-
格式
#id名 {
属性1: 属性值1;
属性2: 属性值2;
属性3: 属性值3;
}
-
id 选择器和 类选择器区别
- W3C标准规定,在同一页面上,不允许有相同名字的 id 对象出现,但是允许相同名字的 class
- 类选择器(class) 好比人的名字,是可以多次重复使用的,比如 张伟,刘洋,王伟…等等
- id 选择器 好比人的身份证号码,全中国是唯一的,不得重复,只能使用一次
2.2.4 通配符选择器
-
说明
- 用
*
号表示,意思是选择所有的标签 - 它是所有选择器中作用范围最广的,能匹配页面中所有的元素
- 用
-
格式
* {
属性1: 属性值1
属性2: 属性值2
属性3: 属性值3
}
-
注意
- 会匹配页面所有的元素,降低页面响应速度,不建议随便使用
2.2.5 基础选择器总结
选择器 | 作用 | 缺点 | 使用情况 |
---|---|---|---|
标签选择器 | 选出所有相同的标签 | 不能差异化选择 | 较多 |
类选择器 | 选出 1个 或者 多个标签 | 可以根据需求选择 | 非常多 |
id 选择器 | 一次只能选择 1个 标签 | 只能使用一次 | 不推荐使用 |
通配符选择器 | 选择所有的标签 | 选择的太多,有部分不需要 | 不推荐使用 |
2.3 复合选择器
-
说明:
- 为了可以选择更准确更精细的目标元素标签
- 由两个或多个基础选择器,通过不同的方式组合而成
2.3.1 后代选择器
-
说明
- 通常称为包含选择器
- 写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔
- 当标签发生嵌套时,内层标签成为外层标签的后代
-
作用
- 用来选择元素或元素组的子孙后代
-
格式
父级 子级 {
属性: 属性值1;
属性: 属性值2;
}
2.3.2 子元素选择器
-
说明
- 子元素选择器只能选择作为某元素子元素(亲儿子)的元素
- 写法就是把父级标签写在前面,子级标签写在后面,中间跟一个
>
进行连接
-
格式
父级 > 子级 {
属性: 属性值1;
属性: 属性值2;
}
-
注意
- 这里的子级元素指的是 亲儿子,不包含 重孙子之类
2.3.3 交集选择器
-
说明
- 由两个选择器构成
- 选择的标签必须满足: 既有标签一的特点,也有标签二的特点
- 两个选择器之间不能有空格
- 交集选择器 可以理解为 并且的意思
-
格式
意思是 选择的是 p 标签中类名为 one 的标签 p.one {
属性: 属性值1;
属性: 属性值2;
}
2.3.4 并集选择器(群组选择器)
-
说明
- 也叫群组选择器
- 多个标签需要相同样式的话,可以使用并集选择器,可以让代码更简洁
- 任何形式的选择器都可以作为并集选择器的一部分
- 用逗号隔开,可以理解为 和 的意思
-
格式
意思是 p 标签 和 类名为 one 的标签 和 h1 定义了如下的属性 p,.one,h1 {
属性: 属性值1;
属性: 属性值2;
}
2.3.5 链接伪类选择器
-
说明
- 用
:
表示 - 用于向某些选择器添加特殊的效果
- 用
-
功能
选择器 | 例子 | 描述 |
---|---|---|
:link | a:link | 默认样式 |
:visited | a:visited | 访问过链接的状态 |
:hover | a:hover | 鼠标移到链接上时的状态 |
:active | a:active | 鼠标点击链接不松开时的状态 |
- 格式
<style>
/*默认样式*/
a:link{
color: red;
font-size: 100px;
}
/*访问过超链接的状态*/
a:visited{
color: green;
}
/*鼠标移到当前超链接时的样式*/
a:hover{
color: blue;
font-size: 20px;
}
/*鼠标左键点击超链接不松开时的样式*/
a:active{
color: yellow;
}
</style>
-
注意
- 写的时候,它们的熟悉怒尽量不要颠倒,按照 l v h a 的顺序,否则可能引起错误
- 因为叫链接伪类,所以都是利用 交集选择器,比如: a:link
- 因为 a 超链接标签具有默认样式,一般都需要单独指定样式
2.3.6 伪元素选择器
1.1 介绍伪元素选择器
- 说明
- 它是一个附加至选择器末的关键词
- 用于设置元素指定部分的样式
- 功能
选择器 | 例子 | 描述 |
---|---|---|
::after | p::after | 在每个 <p> 元素之后插入内容 |
::before | p::before | 在每个 <p> 元素之前插入内容 |
::first-letter | p::first-letter | 为每个 <p> 元素的首字母添加样式 |
::first-line | p::first-line | 为每个 <p> 元素的首行添加样式 |
::selection | p::selection | 为用户鼠标选择的元素部分添加样式 |
1.2 ::after 伪元素
-
说明
- 用于在元素内容之后插入一些内容
-
应用
1.3 ::before 伪元素
-
说明
- 用于在元素内容之前插入一些内容
-
应用
1.4 ::first-letter 伪元素
-
说明
- 用于向文本的首字母添加属性样式
- 只适用于块级元素
- 只可以使用以下属性
- 字体属性
- 颜色属性
- 背景属性
- margin-外边距属性
- padding-内边距属性
- border-边框属性
- text-decoration-文本修饰属性
- vertical-align-垂直对齐属性(仅当 “float” 为 "none"时)
- text-transform-控制文本大小写属性
- line-height-行高属性
- float-设置浮动属性
- clear-清除浮动属性
-
应用
1.5 ::first-line 伪元素
-
说明
- 用于向文本的首行添加属性样式
- 只适用于块级元素
- 只可以使用以下属性
- 字体属性
- 颜色属性
- 背景属性
- word-spacing-字间距属性
- letter-spacing-字符间距属性
- text-decoration-文本修饰属性
- vertical-align-垂直对齐属性
- text-transform-控制文本大小写属性
- line-height-行高属性
- clear-清除浮动属性
-
应用
-
<style> p::first-line { color: red; font-size: 24px; } </style> <body> <p>人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。 人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。 </p> </body>
-
效果如下
-
1.6 ::selection 伪元素
-
说明
- 用于被用户使用鼠标或其他设备选中的内容添加属性样式
- 只可以使用以下属性
- color-内容颜色属性
- background-背景颜色属性
- cursor-鼠标样式
- outline-轮廓线
-
应用
-
<style> p::selection { color: white; background-color: orange; } </style> <body> <p>人工智能(Artificial Intelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。 人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。 人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,可以设想,未来人工智能带来的科技产品,将会是人类智慧的“容器”。人工智能可以对人的意识、思维的信息过程的模拟。 人工智能不是人的智能,但能像人那样思考、也可能超过人的智能。 </p> </body>
-
效果如下
-
2.3.7 属性选择器
-
说明
- 根据元素的属性及属性值来选择元素
-
功能
选择器 | 描述 |
---|---|
[attribute] | 用于选取带有指定属性的元素 |
[attribute=value] | 用于选取带有指定属性和值的元素 |
[attribute~=value] | 用于选取属性值中包含指定词汇的元素 |
[attribute | =value] |
[attribute^=value] | 匹配属性值以指定值开头的每个元素 |
[attribute$=value] | 匹配属性值以指定值结尾的每个元素 |
[attribute*=value] | 匹配属性值中包含指定值的每个元素 |
- 格式
<style>
/*只使用属性名*/
h2[title]{
color: red;
}
/*根据多个属性名进行选择*/
a[href][title]{
font-size: 20px;
}
/*!*既有属性名又有属性值*!*/
h2[title='标题']{
color: yellow;
}
/*要求与属性名和属性值保持一致 完全匹配*/
p[class='c1']{
color: red;
}
/*不完全匹配*/
p[class~='c1']{
color: blue;
}
</style>
2.3.8 兄弟选择器
-
说明
-
可选择紧接在另一元素后的元素,且二者有相同父元素
-
两种方式
- ‘+’ 相邻兄弟选择器表示某元素后相邻的兄弟元素,也就是紧挨着的
- ‘~’ 普通兄弟选择器表示某元素后所有同级的指定元素,强调所有的
-
-
格式
- 相邻兄弟选择器
<style> /*相邻兄弟选择器*/ h1+p{ color: red; } </style> <h1>我是老大</h1> <p>我是老二</p> <p>我是老三</p>
效果如下:
- 普通兄弟选择器
<style> /*普通兄弟选择器*/ h1~p{ color: red; } </style> <h1>我是老大</h1> <p>我是老二</p> <p>我是老三</p>
效果如下:
三、 CSS 样式属性
3.1 文字文本样式
-
font 字体
- font-size: 大小
作用: font-size 属性用于设置字号 格式: 标签名或选择器 { font-size:20px; }
单位: 1. 分两种: 相对长度单位、绝对长度单位 2. 相对长度单位比较常用,推荐使用像素单位px,绝对长度单位使用较少
相对长度单位 说明 em 相对于当前对象内文本的字体尺寸 px 像素,最常用,推荐使用 绝对长度单位 说明 in 英寸 cm 厘米 mm 毫米 pt 点 注意: 1. 我们文字大小以后,基本就用 px 了,其他单位很少使用 2. 谷歌浏览器默认的字体大小为 16px 3. 不同浏览器可能默认显示的字号大小不一致,我们尽量给一个明确值大小,不要默认大小,一般给 body 指定整个页面文字的大小
- font-family: 字体
作用: font-family 用于设置哪一种字体 格式: 标签名或选择器{ font-family:Arial,"微软雅黑","黑体时"; } 说明 1. 网页中常用的字体有宋体、微软雅黑、黑体等,例如将网页中所有段落文本的字体设置为 微软雅黑。 2. 可以同时指定多个字体,中间以逗号隔开,表示如果浏览器不支持第一个字体,则会尝试下一个,直接找到合适的字体,如果都没有,则以我们电脑默认的字体为准。 注意: 1. 各种字体之间必须使用英文状态下的逗号隔开 2. 中文字体需要加英文状态下的引号,英文字体一般不需要加引号,设置英文字体时必须位于中文字体名之前 3. 如果字体名中包含空格、# 等符号,则该字体必须加英文状态下的单引号或双引号,例如 font-family: "Times New Roman"。 4. 尽量使用系统默认字体,保证在任何用户的浏览器中都能正确显示。
CSS Unicode 字体 说明: 1. 在 CSS 中设置字体名称,直接写中文是可以的,但是文件编码(GB2312、UTF-8等)不匹配时会产生乱码的错误。 2. xp 系统不支持类似 微软雅黑 的中文。 3. 在 CSS 中直接使用 Unicode 编码来写字体名称可以避免这些错误,使用 Unicode 写中文字体名称,浏览器是可以正确的解析的。 格式: 标签名或选择器 { /* 设置字体为 "微软雅黑" */ font-family: "\5FAE\8F6F\96c5\9ED1"; }
字体名称 英文名称 Unicode 编码 宋体 SimSun \5B8B\4F53 新宋体 NSimSun \65B0\5B8B\4F53 黑体 SimHei \9ED1\4F53 微软雅黑 Microsoft YaHei \5FAE\8F6F\96C5\9ED1 楷体_GB2312 KaiTi_GB2312 \6977\4F53_GB2312 隶书 LiSu \96B6\4E66 幼圆 YouYuan \5E7C\5706 华文细黑 STXihei \534E\6587\7EC6\9ED1 细明体 MingLiU \7EC6\660E\4F53 新细明体 PMingLiU \65B0\7EC6\66OE\4F53 - font-weight: 字体粗细
作用: 用来将文本加粗 格式: 标签名或选择器 { /* 设置字体为加粗 */ font-weight: bold; }
属性值 描述 normal 默认值(不加粗) bold或strong 定义粗体(加粗的) 100~900 400等同于 normal,而 700等同于 bold - font-style: 字体风格
说明: 用于设置字体倾斜或正常字体 格式: 标签名或选择器 { /* 设置字体为倾斜 */ font-style: italic; }
属性 作用 normal 默认值,浏览器会显示标准的字体样式 italic 浏览器会显示斜体的字体样式 - font: 综合设置字体样式
作用: 用于对字体样式进行综合设置 格式: 标签或选择器 { font: font-style属性值 font-weight属性值 font-size属性值或line-height属性值 font-family属性值; } 注意: 1. 使用 font 属性时,必须按上面语法格式中的顺序书写,不能更换顺序,各个属性以空格隔开。 2. 其中不需要设置的属性可以省略(取默认值),但必须保留 font-size 和 font-family 属性,否则 font 属性将不起作用
- font 总结
属性 表示 注意点 font-size 字号 我们通常用的单位是 px 像素,一定要写单位 font-family 字体 实际工作中按照团队约定来写字体 font-weight 字体粗细 加粗是 700,不加粗是 normal 或者 400,数字不要跟单位 font-style 字体样式 记住倾斜是 italic,不倾斜是 normal font 字体连号 字体连写是有顺序的,不能随意换位置,其中字号和字体必须同时出现
-
外观属性
- color: 文本颜色
作用: color 属性用于定义文本的颜色 格式: color: red; 注意: 在实际工作中,用 16进制的写法比较多
表示 属性值 预定义的颜色值 red,green,blue,pink…等等 十六进制 #FF0000,#29D794…等等 RGB 代码 rgb(255,0,0) 或 rgb(100%,0%,0%) - text-align: 文本水平对齐方式
作用: text-align 属性用于设置文本内容的水平对齐 格式: 标签名或选择器 { /* 设置文本内容为左对齐 */ text-align: left; } 注意: 是让盒子里面的内容对齐,不是让盒子对齐
属性 说明 left 左对齐(默认值) right 右对齐 center 居中对齐 - line-height: 行间距
作用: 用于设置行间距,就是行与行之间的距离,即字符的垂直间距,一般称为行高。 单位: line-height 常用的属性值单位分别为 像素px,相对值em和百分比%,通常 像素px 用的比较多。 格式: 一般情况下,行距比字号大 7,8像素左右就可以了 标签名或选择器 { /* 设置行高为24像素 */ line-heigth: 24px; }
行高测量方法如下图:
单行文本垂直居中 说明: 1. 文字的行高等于盒子的高度 2. 行高 = 上距离 + 内容高度 + 下距离
看下图:
行高和高度的三种关系 1. 如果行高等于高度,文字会垂直居中 2. 如果行高大于高度,文字会偏下 3. 如果行高小于高度,文字会偏上
- text-indent: 首行缩进
作用: 用于设置首行文本的缩进 属性值: 可以为不同单位的数值,em 字符宽度的倍数,或相对于浏览器窗口宽度的百分比%,允许使用负值。 1em 就是一个字的宽度,如果是汉字的段落,1em 就是一个汉字的宽度 建议使用 em 作为设置单位 格式: 标签名或选择器{ /* 首行缩进2个字符 */ text-indent: 2em; }
- text-decoration: 文本的装饰
作用: 用于给链接修改装饰效果 格式: 标签名或选择器 { /* 设置文本删除线 */ text-decoration: line-through; }
值 描述 none 默认,定义标准的文本,取消下划线 underline 定义文本下的一条线 overline 定义文本上的一条线 line-through 定义删除线 - list-style: 设置列表默认的样式
作用: 用于修改或去掉列表默认的样式 格式: 标签选择器 { /* 去掉列表默认的样式 */ list-style: none; }
常用的 list-style 属性值
值 描述 none 无标记 disc 实心圆(默认) circle 空心圆 square 实心方块 decimal 数字 - border-radius: 设置圆角边框
说明 1. 用来设置一个直角形 圆角的弧度 2. 属性值可以为 数值或百分比的形式 格式 标签选择器 { border-radius: 20%; }
- box-shadow: 设置盒子阴影
格式 标签选择器 { box-shadow: 水平阴影 垂直阴影 模糊距离(虚实) 阴影尺寸(影子大小) 阴影颜色 内/外阴影; }
值 描述 h-shadow 必需,水平阴影的位置,允许负值 v-shadow 必需,垂直阴影的位置,允许负值 blur 可选,模糊距离 spread 可选,阴影的尺寸 color 可选,阴影的颜色 inset 可选,将外部阴影(outset)改为内部阴影 注意: 1. 前两个属性是必须写的,其余的可以省略 2. 外阴影(outset)是默认的,但是不能写,想要内阴影可以写 inset
3.2 背景(background)
- 背景颜色(color)
格式: 标签名或选择器 {
background-color: 颜色值;
}
默认的值是 transparent 透明的
- 背景图片(image)
格式: 标签名或选择器 {
background-image: url(路径名);
}
注意:
背景图片后面的地址,url 不要加引号。
参数 | 作用 |
---|---|
none | 无背景图(默认) |
url | 使用绝对或相对地址指定背景图像 |
- 背景平铺(repeat)
格式: 标签名或选择器 {
/* 背景图像在横向上平铺 */
background-repeat: repeat-x;
}
参数 | 作用 |
---|---|
repeat | 背景图像在纵向和横向上平铺(默认的) |
no-repeat | 背景图像不平铺 |
repeat-x | 背景图像在横向上平铺 |
repeat-y | 背景图像在纵向上平铺 |
- 背景位置(position)
说明: 1. 必须先指定 background-image 属性。 2. position 后面是 x坐标和 y坐标,可以使用方位名词或者精确单位。 3. 如果指定两个值,两个值都是方位名字,则两个值前后顺序无关,比如 left top 和 top left 效果一致。 4. 如果只指定了一个方位名词,另一个值默认居中对齐。 5. 如果 position 后面是精确坐标,那么第一个肯定是 x,第二个是 y。 6. 如果只指定了一个数值,那该数值一定是 x 坐标,y 坐标默认垂直居中。 7. 如果指定的两个值是 精确单位和方位名字混合使用,第一个值是 x 坐标,第二个值是 y 坐标。 格式: 标签名或选择器 {
background-position: left top;
}
- 背景附着
说明: 背景附着就是设置背景是滚动的还是固定的 格式: 标签名或选择器 {
/* 背景图像固定 */
background-attachment: fixed;
}
参数 | 作用 |
---|---|
scroll | 背景图像是随对象内容滚动 |
fixed | 背景图像固定 |
- 背景简写
说明: background属性值的书写顺序官方并没有强制标准,为了可读性,建议大家如以下格式中写 格式: 标签名或选择器 {
background: 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置;
}
- 背景透明
说明: 1. 背景透明通常一般使用 rgba 属性来设置。 2. 还有一个 opacity 属性,但是 opacity 属性为元素的背景添加透明度时,它所有的子元素都继承相同的透明度,会使元素中的文本也会变透明。 3. rgba 属性有4个属性值,rgba(red,grenn,blue,alpha),alpha 参数是介于 0.0(完全透明) 和 1.0 (完全不透明) 之间的数字。 格式: 标签名或选择器 {
/* 30% 不透明的绿色背景 */
background: rgba(0,128,0,0.3)
}
注意:
我们也可以把 alpha 属性值 0.3 的 0 省略掉,这样写 rgba(0,128,0,.3)
- 背景总结
属性 | 作用 | 值 |
---|---|---|
background-color | 背景颜色 | 预定义的颜色/十六进制/RGB代码 |
background-image | 背景图片 | url(图片路径) |
background-repeat | 是否平铺 | repeat/no-repeat/repeat-x/repeat-y |
background-position | 背景位置 | length/position 分别是 x 和 y 坐标,如果有精确数字单位,则必须按照先 X 后 Y 的写法 |
background-attachment | 背景固定还是滚动 | scroll/fixed |
背景简写 | 更简化 | 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置,它们没有顺序 |
背景透明 | 让盒子半透明 | background: rgba(0,0,0,0.3),后面必须是4个值 |
3.3 标签显示模式(display)
说明:
1. 标签以什么方式进行显示,比如 div 自己占一行,比如 span 一行可以放很多个。
2. HTML 标签一般分为块标签和行内标签两种类型,它们也称块元素和行内元素。
- 块级元素(block-level)
说明:
常用的块元素有 <h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中<div>标签是最典型的块元素。
特点:
1. 比较霸道,自己独占一行。
2. 高度、宽度、外边距以及内边距都可以控制。
3. 宽度默认是容器(父级宽度)的 100%。
4. 是一个容器及盒子,里面可以放行内或者块级元素。
注意:
1. 只有 文字 才能组成段落,因此 p 标签里面不能放块级元素,特别是不能放 div 标签。
2. 同理还有 h1~h6, dt 他们都是文字类块级标签,里面不能放其他块级元素。
- 行内元素(inline-level)
说明:
常见的行内元素有<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>等,其中 <span> 标签最典型的行内元素,也叫内联元素。
特点:
1. 相邻行内元素在一行上,一行可以显示多个。
2. 高、宽直接设置是无效的。
3. 默认宽度就是它本身内容的宽度。
4. 行内元素只能容纳文本或其他行内元素。
注意:
1. 链接里面不能再放链接。
2. 特殊情况 a 里面可以放块级元素,但是给 a 转换一下块级模式最安全。
- 行内块元素(inline-block)
说明:
在行内元素中有几个特殊的标签分别是<img />、<input />、<td>,可以对它们设置宽高和对齐属性,通常称为行内块元素。
特点:
1. 和相邻行内元素、行内块元素在一行上,但是会有空白缝隙,一行可以显示多个。
2. 默认宽度就是它本身内容的宽度。
3. 宽、高、行高、外边距以及内边距都可以控制。
- 三种模式总结
元素模式 | 元素排列 | 设置样式 | 默认宽度 | 包含 |
---|---|---|---|---|
块级元素 | 一行只能放一个块级元素 | 可以设置宽度高度 | 容器的100% | 容器级可以包含任何标签 |
行内元素 | 一行可以放多个行内元素 | 不可以设置宽度高度 | 它本身内容的宽度 | 容纳文本或其他行内元素 |
行内块元素 | 一行放多个行内块元素 | 可以设置宽度和高度 | 它本身内容的宽度 |
- 标签显示模式转换(display)
格式: 标签名或选择器 {
/* 转换为行内元素 */
display: inline;
/* 转换为块级元素 */
display: block;
/* 转换为行内块元素 */
display: inline-block;
}
四、 CSS 三大特性
4.1 层叠性
-
概念
所谓层叠性是指多种 CSS 样式的叠加。
是浏览器处理冲突的一个能力,如果一个属性通过两个相同选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉。
-
原则
-
样式冲突,遵循的原则是就近原则,哪个样式离着结构近,就执行哪个样式。
-
样式不冲突,不会层叠。
-
-
口诀
长江后浪推前浪,前浪死在沙滩上。
效果如下:
4.2 CSS 继承性
-
概念
子标签会继承父标签的某些样式,如文本颜色和字号大小。
想要设置一个可继承的属性,只需将它应用于父元素即可。
简单的理解就是: 子承父业。
-
注意
恰当的使用继承可以简化代码,降低 CSS 样式的复杂性,比如有很多子级都需要某个样式,可以给父级指定一个,这些子级继承过来就好了。
子元素可以继承父元素的样式(text-,font-,line-这些元素开头的可以继承,以及color 属性)
-
口诀
龙生龙,凤生凤,老鼠生的孩子会打洞。
效果如下:
4.3 CSS 优先级
-
概念
定义CSS样式时,经常出现两个或更多规则应用在同一元素上,此时
-
选择器相同,则执行层叠性
-
选择器不同,就会出现优先级的问题
-
-
权重计算公式
值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。
标签选择器 | 计算权重公式 |
---|---|
继承或者 * | 0,0,0,0 |
每个元素(标签选择器) | 0,0,0,1 |
每个类,伪类 | 0,0,1,0 |
每个 ID | 0,1,0,0 |
每个行内样式 style="" | 1,0,0,0 |
!important | ∞无穷大 |
权重叠加
div ul li -------> 0,0,0,3
.nav ul li -------> 0,0,1,2
a:hover -------> 0,0,1,1
.nav a -------> 0,0,1,1
注意:
数位之间没有进制,比如: 0,0,0,5 + 0,0,0,5 = 0,0,0,10 而不是 0,0,1,0
所以不会存在10个 div 能赶上一个类选择器的情况
五、CSS 注释
说明:
在需要注释的内容前使用 /* 标记开始注释
在内容的结尾使用 */ 结束
举例: 标签选择器 {
/* 字体大小 */
font-size: 20px
}
六、 盒子模型
6.1 看透网页布局的本质
-
首先利用 CSS 设置好盒子的大小,然后摆放盒子的位置
-
最后把网页元素比如文字图片等等,放入盒子里面
-
以上两步就是网页布局的本质
6.2 盒子模型(Box Model)
-
说明
-
就是把 HTML 页面中的布局元素看作是一个矩形的盒子,也就是一个盛装内容的容器。
-
盒子模型有元素的内容、边框(border)、内边距(padding)和外边距(margin)组成。
-
盒子里面的文字和图片等元素是内容区域
-
盒子的厚度 我们称为盒子的边框
-
盒子内容与边框的距离是内边距
-
盒子与盒子之间的距离是外边距
-
标准盒子模型
6.3 盒子边框(border)
- 语法
标签选择器 {
border: border-width 或 border-style 或 border-color
}
属性 | 作用 |
---|---|
border-width | 定义边框粗细,单位是 px |
border-style | 边框的样式 |
border-color | 边框颜色 |
边框的样式
边框的样式属性 | 描述 |
---|---|
none | 没有边框即忽略所有边框的宽度(默认值) |
solid | 边框为单实线 |
dashed | 边框为虚线 |
dotted | 边框为点线 |
6.4 内边距(padding)
-
说明
padding 属性用于设置内边距,是指边框与内容之间的距离。
-
设置
属性 | 作用 |
---|---|
padding-left | 左内边距 |
padding-right | 右内边距 |
padding-top | 上内边距 |
padding-bottom | 下内边距 |
当我们给盒子指定 padding 值后,发现:
1. 内容和边框有了距离,添加了内边距
2. 盒子会变大了
- padding 的值
值的个数 | 描述 |
---|---|
1个值 | padding: 上下左右内边距 |
2个值 | padding: 上下内边距 左右内边距 |
3个值 | padding: 上内边距 左右内边距 下内边距 |
4个值 | padding: 上内边距 右内边距 下内边距 左内边距 |
- 内盒尺寸计算(元素实际大小)
1. 高度
元素高度 = 内容高度 + 内边距 + 边框
2. 宽度
元素宽度 = 内容宽度 + 内边距 + 边框
盒子实际的大小 = 内容的宽度和高度 + 内边距 + 边框
- 内边距产生的问题
问题: 会撑大原来的盒子
解决方法:
1. 通过给设置了宽度的盒子,减去相应的内边距的值,维持盒子原来的大小。
例如: 盒子宽高各 100px,内边距设置为 10px, 想要维持盒子原来的大小的话,
把宽高的值减去内边距的值,也就是宽高各为 80px 即可。
6.5 外边距
-
说明
margin属性用于设置外边距,就是控制盒子和盒子之间的距离。
-
设置
属性 | 作用 |
---|---|
margin-left | 左外边距 |
margin-right | 右外边距 |
margin-top | 上外边距 |
margin-bottom | 下外边距 |
-
块级盒子水平居中
-
说明
-
盒子必须指定了宽度(width)
-
将左右的外边距都设置为 atuo
-
-
格式: 标签选择器 {
width: 600px;
margin: 0 auto;
}
常见的写法,以下方式也可以
1. margin-lef: auto; margin-right: auto;
2. margin: auto;
3. margin: 0 auto;
-
文字居中和盒子居中区别
-
说明
-
盒子内的文字水平居中是 text-align: center,而且还可以让 行内元素和行内块居中对齐
-
块级盒子水平居中 左右 margin 改为 auto;
-
-
格式: 标签选择器 {
/* 文字 行内元素 行内块元素水平居中 */
text-align: center;
/* 块级盒子水平居中 */
margin: 10px auto;
}
-
插入图片和背景图片区别
-
说明
-
插入图片用的最多,比如产品展示的图片,移动位置靠盒模型 padding margin
-
背景图片一般用于小图标背景或者超大背景图片,只能通过 background-position 来更改位置
-
-
格式: 标签选择器 {
/* 图片大小 */
width: 200px;
height: 200px;
/* 更改插入图片的位置 */
margin: 10px 20px;
}
标签选择器 {
/* 背景图片大小 */
width: 200px;
height: 200px;
background: url(图片路径);
/* 更改背景图片的位置 */
background-position: 30px 50px;
}
- 清除元素的默认内外边距
-
说明
- 为了更灵活方便的控制网页中的元素,制作网页时,我们需要将元素的默认内外边距清除。
格式: * {
/* 清除内边距 */
padding: 0;
/* 清除外边距 */
margin: 0;
}
注意:
行内元素为了照顾兼容性,尽量只设置左右外边距,不要设置上下内外边距。
-
外边距合并
说明: 使用 margin 定义块元素的垂直外边距时,可能会出现外边距的合并。
- 相邻块元素垂直外边距的合并
说明: 1. 当上下相邻的两个块元素相遇时,如果上面的元素有下外边距 margin-bottom 2. 下面的元素有上外边距 margin-top,则他们之间的垂直间距不是 margin-bottom 与 margin-top 之和,它会取两个值中较大者 3. 这种现象被称为相邻块元素垂直外边距的合并(也称为外边距塌陷)
解决方法: 1. 尽量只给一个盒子添加 margin 值
- 嵌套块元素垂直外边距的合并(塌陷)
说明 1. 对于两个嵌套关系的块元素,如果父元素没有上内边距及边框 2. 父元素的上外边距会与子元素的上外边距发生合并 3. 合并后的外边距为两者中的较大者
解决方法: 1. 可以为父元素定义上边框 2. 可以为父元素定义上内边距 3. 可以为父元素添加 overflow: hidden 属性
6.6 盒子模型布局稳定性
-
说明
- 建议按照 优先使用 宽度(width) 其次 内边距(padding) 再次 外边距(margin)来布局
width > padding > margin
-
原因
-
margin 会有外边距合并问题
-
padding 会影响盒子大小,需要进行加减计算其次使用
-
width 没有问题,建议优先使用
-
七、浮动(float)
7.1 CSS 布局的三种机制
CSS 提供了3种机制来设置盒子的摆放位置,分别是普通流(标准流)、浮动和定位。
- 普通流(标准流)
1. 块级元素会独占一行,从上向下顺序排列
常用元素: div、hr、p、h1~h6、ul、ol、dl、form、table;
2. 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行
常用元素: span、a、i、em等;
-
浮动
让盒子从普通流中浮起来,主要作用让多个块级盒子一行显示。
-
定位
将盒子定在浏览器的某一个位置,CSS离不开定位。
7.2 为什么需要浮动?
-
如何让多个盒子(div)水平排列成一行?
-
如何实现盒子的左右对齐?
依据前面学到的知识,用 `display` 标签 转换为行内块元素(inline-block),但是它有缺点:
1. 它可以实现多个元素一行显示,但是中间会有空白缝隙,不能满足以上第一个问题。
2. 它不能实现以上第二个问题,盒子左右对齐。
所以 我们需要浮动来完成网页布局
7.3 什么是浮动(float)
- 概念:
元素的浮动是指设置了浮动属性的元素会
1. 脱离标准普通流的控制
2. 移动到指定位置
- 作用
1. 让多个盒子(div)水平排列成一行,使得浮动成为布局的重要手段。
2. 可以实现盒子的左右对齐等等。
3. 浮动最早是用来控制图片,实现文字环绕图片的效果。
- 语法
标签选择器 {
float: 属性值;
}
属性值 | 描述 |
---|---|
none | 元素不浮动(默认值) |
left | 元素向左浮动 |
right | 元素向右浮动 |
浮动口诀 float ----- 浮 漏 特
-
浮动口诀之 浮
浮:漂浮在普通流的上面,脱离标准流,俗称"脱标"。
.box1 {
width: 300px;
height: 300px;
background-color: red;
float: left;
}
.box2 {
width: 400px;
height: 400px;
background-color: green;
}
<div class="box1"></div>
<div class="box2"></div>
效果如下:
- float 属性会让盒子漂浮在标准流的上面,所以第二个标准流的盒子跑到浮动盒子的底下了。
-
浮动口诀之 漏
漏:把自己原来的位置漏给下面标准流的盒子,就是不占有原来位置,是脱离标准流的,我们俗称"脱标"。
我们看个立体图:
就是一个盒子跑到了另一个盒子的下面,被压起来了,遮挡起来了
-
浮动口诀之 特
浮动----特性 float 属性会改变元素 display 属性。
任何元素都可以浮动,浮动元素会生成一个块级框,而不论它本身是何种元素,生成的块级框和我们前面的行内块极其相似。
水平排列案例 div {
width: 300px;
height: 300px;
color: white;
/* 转换为行内块元素,可以水平显示,但是之间有缝隙,不方便处理 */
/* display: inline-block; */
/* 设置浮动属性,也可以水平排列,并且没有缝隙 */
float: left;
}
.box1 {
background-color: red;
}
.box2 {
background-color: green;
}
.box3 {
background-color: blueviolet;
}
<div class="box1">我是盒子1</div>
<div class="box2">我是盒子2</div>
<div class="box3">我是盒子3</div>
效果如下:
浮动的元素互相贴靠一起的,如果父级宽度装不下这些浮动的盒子,多出的盒子会另起一行对齐。
-
浮动(float) 小结
我们使用浮动的核心目的————让多个块级盒子在同一行显示,因为这是我们最常见的一种布局方式。
特点 说明 浮 加了浮动的盒子是浮起来的,漂浮在其他标准流盒子的上面 漏 加了浮动的盒子是不占位置的,它原来的位置漏给了标准流的盒子 特 特别注意: 浮动元素会改变 display 属性,类似转换为了行内块,但是元素之间没有空白缝隙
7.4 浮动(float)的应用
-
浮动和标准流的父盒子搭配
我们知道,浮动是脱标的,会影响下面的标准流元素,此时,我们需要给浮动的元素添加一个标准流的父亲,这样,最大化的减小了对其他标准流的影响。
浮动应用案例效果图
导航栏案例
注意,实际重要的导航栏中,我们不会直接用链接 a 而是用 li 包含链接(li+a) 的做法 1. li+a 语义更清晰,一看这就是有条理的列表型内容 2. 如果直接用 a,搜索引擎容易辨别为有堆砌关键字嫌疑(故意堆砌关键字容易被搜索引擎有降权的风险),从而影响网站排名。
7.5 浮动(float)扩展
7.5.1 浮动元素与父盒子的关系
-
子盒子的浮动参照父盒子对齐
-
不会与父盒子的边框重叠,也不会超过父盒子的内边距
7.5.2 浮动元素与兄弟盒子的关系
说明
在一个父级盒子中,如果前一个兄弟盒子是:
1. 浮动的,那么当前盒子会与前一个盒子的顶部对齐。
2. 普通流的,那么当前盒子会显示在前一个兄弟盒子的下方。
注意:
浮动只会影响当前的或者是后面的标准流盒子,不会影响前面的标准流。
建议:
如果一个盒子里面有多个子盒子,其中一个盒子浮动了,其他兄弟也应该浮动,防止引起问题。
7.6 CSS 清除浮动
7.6.1 为什么要清除浮动?
答:因为父级盒子很多情况下,不方便给高度,但是子盒子浮动就不占有位置,导致父级盒子高度塌陷,也就是说父级盒子高度为 0 ,由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影响,准确的说,并不是清除浮动,而是清除浮动的影响。
-
举例
7.6.2 清除浮动的方法
- 额外标签法(隔墙法)
-
举例
-
<style> .box { width: 600px; border: 1px solid red; } .box div { float: left; width: 200px; height: 200px; margin-right: 10px; background-color: rgb(0, 200, 255); } </style> <body> <div class="box"> <div></div> <div></div> <p style="clear: both;"></p> </div> </body>
-
效果如下
-
-
分析
- 原理:添加一个空块级元素标签,利用 CSS 的
clear: both;
清除浮动,让父级盒子可以自动获取高度 - 注意一定要添加块级元素标签
- 原理:添加一个空块级元素标签,利用 CSS 的
- 父级添加
overflow
属性方法
-
举例
-
分析
- 原理
- 因为 CSS 的 BFC 机制,全称是块级格式化上下文,用于对块级元素排版,默认情况下只有根元素(body)一个块级上下文,这个块级元素内部的排版完全独立。
- 作用:独立的块级上下文可以包裹浮动流,全部浮动子元素也不会引起容器高度塌陷,也就是说包含块会把浮动元素的高度也计算在内,所以就不用清除浮动来撑起包含块的高度。
- 形成 BFC 的条件
- 1、浮动元素,float 除 none 以外的值;
- 2、定位元素,position(absolute,fixed) ;
- 3、display 为以下其中之一的值 inline-block,table-cell,table-caption;
- 4、overflow 除了 visible 以外的值(hidden,auto,scroll);
- 原理
- 使用 ::after 伪元素清除浮动
-
举例
-
<style> .box { width: 600px; border: 1px solid red; } .box div { float: left; width: 200px; height: 200px; margin-right: 10px; background-color: rgb(0, 200, 255); } .box::after { content: ""; display: block; clear: both; } </style> <body> <div class="box"> <div></div> <div></div> </div> </body>
-
效果如下
-
-
分析
- 原理:元素生成伪类的作用和效果相当于额外标签法的原理,这个更简单便捷。
- 使用双伪元素清除浮动
-
举例
7.6.3 清除浮动总结
- 父级没高度
- 子盒子浮动了
- 影响下面布局了,我们就应该清除浮动了
清除浮动的方式 | 优点 | 缺点 |
---|---|---|
额外标签法(隔墙法) | 通俗易懂,书写方便 | 添加许多无意义的标签,结构化较差 |
父级 overflow: hidden; | 书写简单 | 溢出隐藏 |
父级 after 伪元素 | 结构语义化正确 | 由于 IE6-7不支持 :after,兼容性问题 |
父级双伪元素 | 结构语义化正确 | 由于 IE6-7不支持 :after,兼容性问题 |
八、定位
8.1 为什么使用定位
我们如果想要实现如上图框选的效果,就需要我们学习定位的知识来进行实现。
```css
说明:
1. 将盒子定在某一个位置,自由的漂浮在其他盒子(包括标准流和浮动)的上面
2. 三种布局机制的上下顺序
1) 标准流在最底层----> 浮动的盒子在中间层-----> 定位的盒子在最上层
```
8.2 定位详解
说明
定位也是用来布局的,由两部分组成:
1. 定位模式
2. 边偏移
- 边偏移
说明
1. 简单说,我们定位的盒子,是通过边偏移来移动位置的。
2. 在 CSS 中,通过 top、bottom、left 和 right 属性定义元素的边偏移。
3. 定位的盒子有了边偏移才有价值,一般情况下,凡是有定位地方必定有边偏移。
边偏移属性 | 示例 | 描述 |
---|---|---|
top | top: 80px | 顶端偏移量,定义元素相对于其父元素上边线的距离 |
bottom | bottom: 80px | 底部偏移量,定义元素相对于其父元素下边线的距离 |
left | left: 80px | 左侧偏移量,定义元素相对于其父元素左边线的距离 |
right | right: 80px | 右侧偏移量,定义元素相对于其父元素右边线的距离 |
- 定位模式(position)
说明 在 CSS 中,通过 position 属性定义元素的定位模式 语法 标签选择器 {
positon: 属性值;
}
定位模式是有不同分类的,在不同情况下,我们用到不同的定位模式
值 | 语义 |
---|---|
static | 静态定位 |
relative | 相对定位 |
absolute | 绝对定位 |
fixed | 固定定位 |
-
静态定位(static)
说明 1. 静态定位是元素的默认定位方式,无定位的意思,它相当于 border 里面的 none,不要定位的时候用。 2. 静态定位按照标准流特性摆放位置,它没有边偏移。 3. 静态定位在布局时几乎不用。
-
相对定位(relative)
说明 1. 相对于 自己原来在标准流中位置来移动的。 2. 原来在标准流的区域继续占有,后面的盒子仍然以标准流的方式对待它。
效果图:
-
绝对定位(absolute)
说明
1. 绝对定位是元素以带有定位的父级元素来移动位置(拼爹型)
2. 完全脱标———— 完全不占位置
3. 如果父元素没有定位,则以浏览器为准定位
效果如下:
父元素有定位时
将元素依据最近的已经定位(绝对、固定或相对定位)的父元素进行定位。
注意:
1. 因为绝对定位的盒子是拼爹的,所以要和父级搭配一起来使用。
2. 定位口诀——子绝父相
1) 意思就是子级用绝对定位,父级要用相对定位。
- 固定定位(fixed)
说明
1. 固定定位是绝对定位的一种特殊形式,如果说绝对定位是一个矩形,那么固定定位就类似于正方形。
2. 完全脱标——完全不占位置。
3. 只认浏览器的可视窗口——浏览器可视窗口 + 边偏移属性 来设置元素的位置;
1) 跟父元素没有任何关系,单独使用的
2) 不随滚动条滚动
8.3 定位(position)扩展
- 绝对定位的盒子居中
说明
1. 绝对定位/固定定位的盒子不能通过设置 margin: 0 auto; 设置水平居中。
2. left: 50%; 让盒子的左侧移动到父级元素的水平中心位置。
3. margin-left: -100px; 让盒子向左移动自身宽度的一半。
- 堆叠顺序(z-index)
说明 1. 在使用定位布局时,可能会出现盒子重叠的情况。 2. 加了定位的盒子,默认后来者居上,后面的盒子会压住前面的盒子。 3. 应用 z-index 层叠等级属性可以调整盒子的堆叠顺序 特点 1. 属性值: 正整数、负整数或 0,默认值是 0,数值越大,盒子越靠上。 2. 如果属性值相同,则按照书写顺序,后来居上。 3. 数字后面不能加单位。 格式 标签选择器 {
z-index: 0;
}
注意:
1. 只能应用于相对定位、绝对定位和固定定位的元素。
2. 其他标准流、浮动和静态定位无效。
- 定位改变
display
属性
display 是显示模式,可以改变显示模式有以下方式:
1. 可以用 inline-block 转换为行内块
2. 可以用浮动 float 默认转换为行内块(并不完全一样,因为浮动是脱标的)
3. 绝对定位和固定定位也和浮动一样,默认转换为行内块。
所以说,一个行内的盒子,如果加了浮动、固定定位和绝对定位,不用转换,直接就可以给这个盒子设置宽和高等。
注意:
浮动元素、绝对定位(固定定位)元素都不会触发外边距合并的问题,没有接触浮动、定位以前是用 padding、border、overflow来解决的。
九、CSS 版心
-
说明
版心(可视区)指的是网页中的主体内容区域,一般在浏览器窗口中水平居中显示,常见的宽度值为 960px、980px、1000px、1200px等。
-
布局流程
为了提高网页制作的效率,布局时通常需要遵守一定的布局流程
- 确定页面的版心(可视区)
- 分析页面中的行模块,以及每个行模块中的列模块
- 制作 HTML 结构
- CSS 初始化,运用盒子模型的原理,通过 div + css 布局来控制网页的各个模块
如下图所示就是小米商城网页的版心