当前位置: 首页 > news >正文

CSS学习

Day05 CSS 课堂笔记

1 CSS 的基本语法

1.1 HTML 和 CSS 的关系

1. HTML 实现页面结构,CSS 实现页面样式
2. CSS 样式需要作用在 HTML 元素上

1.2 HTML 元素树(元素和元素之间的关系)

父元素
祖先元素
子元素
后代元素
兄弟元素		具体相同父元素的才是兄弟元素

1.3 在 HTML 中使用 CSS

① 行内式
<标签 style="CSS代码...;"></标签>
② 内嵌式
<style>CSS 代码...
</style>
style 标签放在页面的任意位置都可以生效,建议放在 head 中!
③ 外链式
<link rel="stylesheet" href="CSS文件地址">
link 标签放在页面的任意位置都可以生效,建议放在 head 中!

1.4 CSS 基本语法结构

选择器: 用于选择要设置样式的元素。

声明块: 选择器后面的大括号,声明块由多条声明组成。

声明: 每条声明以分号结尾,声明由CSS属性和它的值组成。

① 内嵌式和外链式的语法结构
选择器 {属性名:;属性名:;属性名:;属性名:;....
}
② 行内式的语法结构
<标签名 style="属性名:; 属性名:; 属性名:; 属性名:;..."></标签名>
③ 注意区分HTML 属性 和 CSS 属性
<!-- 使用HTML属性设置图片尺寸 -->
<img src="./images/小乐出浴图.jpg" alt="小乐出狱" width="400" height="300"><!-- 使用CSS属性设置图片尺寸 -->
<img src="./images/小乐出浴图.jpg" alt="小乐出狱" style="width:400px;height:300px">

1.5 CSS 的层叠性

不同方式、不同选择器所设置的样式都会层叠在该元素上

1.6 CSS 注释

/* CSS 注释 */
/* CSS 注释CSS 注释CSS 注释CSS 注释
*/

2 CSS 长度单位和颜色设置

2.1 CSS 中的长度单位

px 像素
em 字体大小的倍数
%  百分比

2.2 CSS 中的颜色设置方式

① 使用颜色名表示颜色

常见的颜色名有:

red、orange、yellow、green、cyan、blue、purple、pink、deeppink、skyblue、greenyellow ...
② rgb 方式表示颜色
/*计算机三元色red         0~255   0%~100%green       0~255   0%~100%blue        0~255   0%~100%
*/
background: rgb(100, 200, 120);
background: rgb(255, 0, 0);
background: rgb(255, 0, 255);/* 三个元色 取相同的数值  灰色 */
/* 数值越大颜色越浅,全是255是白色,数值越小颜色越深,全是0是黑色 */
background: rgb(255, 255, 255);
background: rgb(0, 0, 0);
background: rgb(100, 100, 100);
background: rgb(199, 199, 199);/* 使用百分比 */
background: rgb(45%, 80%, 74%);
③ hex 十六进制方式表示颜色
/* 十六进制 原理同rgb一样 *//* 十进制:    0 1 2 3 4 5 6 7 8 9 10 11 12 13 ... 19 20 21 ... 99 100 ...二进制:    0 1 10 11 100 101 110 111 1000 ...十六进制:  0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 ... 1f 20 21 ... ff 100 ...
*//* 十进制255 = 十六进制ff两位十六进制的数字可以表示一种原色,六位十六进制数字能够表示三元色
*//* 使用6位十六进制的数字表示颜色 每两位表示一个元色 */
background: #4fa8bb;
background: #0000ff;
background: #ababab;
background: #131313;/* 表示一种元色的两个数字是相同的,且三组元色各自都是相同, 可以简写为3位十六进制数字 */
background: #a8c;  /* #aa88cc */
background: #bbb;  /* #bbbbbb */
background: #ab2233;  /* 不可简写 */

3 CSS 基本选择器

3.1 四种基本选择器

① 标签名(元素名)选择器
标签名 {}
② 类名选择器
.类名 {}
1. 多个元素可以设置相同的类名
2. 一个元素可以设置多个类名
③ ID 选择器
#ID名 {}

元素的ID名必须是唯一的!

④ 全局(通配)选择器
* {}

3.2 基本选择器之间的权重

1. ID选择器 > 类选择器 > 标签名选择器 > 全局选择器
2. 行内式大于所有的选择器

4 盒子模型(显示模式)

4.1 元素的显示模式

① 块级元素 block

显示模式是块级的元素称为块级元素,特点:

1. 在页面中是一个块,能够独占一行
2. 可以设置宽度和高度
② 行内元素 inline

显示模式是行内的元素称为行内元素,特点:

1. 显示在行内,不能独占一行
2. 无法设置宽度和高度
③ 行内块元素 inline-block

显示模式是行内块的元素称为行内块元素,特点:

1. 显示在行内,不能独占一行
2. 可以设置宽度和高度

按照最早的标准,行内块元素也被当做行内元素!

4.2 HTML 元素的默认显示模式

① 默认显示模式是 block 的元素:
排版标签: h1~h6、p、pre、hr、div
列表标签: ul、ol、li、dl、dt、dd
表单标签: form、option
② 默认显示模式是 inline 的元素:
文本标签: em、strong、del、ins、sub、sup、span
超链接标签: a
表单标签: label
③ 默认显示模式是 inline-block 的元素:
图片标签: img
表单标签: input、button、textarea、select
框架标签: iframe

4.3 修改元素的显示模式

使用CSS属性 display 可以设置元素的显示模式,该属性的值如下:

inline
block
inline-block
按照最早的标准只有行内和块级,默认显示模式是行内块的元素,无法设置成真正的行内

5 CSS 属性总结

5.1 字体样式

属性名作用属性值
font-size字体大小长度
font-weight字体粗细normal:正常。
lighter:细。
bold:粗。
100到900数字:100到300是细体,400、500正常,600以及以上粗体
font-style斜体字normal:正常。
italic:斜体字。
font-family字体族科字体名称、字体列表
font设置多种字体样式多个值,使用空格分隔
① 字体族科 font-family

字体族科的设置:

font-family: 字体名称;
font-family: "字体名称";  /* 如果字体名称中有空格,如 Microsoft YaHei 建议使用引号包裹*/

设置字体列表:

font-family: arial, "Hiragino Sans GB", "Microsoft Yahei", 微软雅黑, 宋体, Tahoma, Arial, Helvetica, STHeiti;
font-family: "Microsoft YaHei", 微软雅黑, 宋体, sans-serif;

衬线字体和非衬线字体:

serif 表示衬线字体,笔画粗细不一致,如宋体、仿宋体、楷体等
sans-serif 表示非衬线字体,笔画粗细一致,如微软雅黑、黑体、Helvetica
② 复合属性 font
/* 最少两个值 字体大小 字体族科 */
font: 20px 宋体;
font: 20px "Microsoft YaHei",微软雅黑,宋体,sans-serif;/* 粗体字 字体大小 字体族科  */
font: 800 16px "Microsoft YaHei",微软雅黑,宋体,sans-serif;/* 斜体字 字体大小 字体族科  */
font: italic 16px "Microsoft YaHei",微软雅黑,宋体,sans-serif;/* 又粗又斜 字体大小 字体族科  */
font: 800 italic 16px "Microsoft YaHei",微软雅黑,宋体,sans-serif;
font: italic italic 16px "Microsoft YaHei",微软雅黑,宋体,sans-serif;
③ 子属性和复合属性的关系
1. 复合属性写在子属性的后面,前面的子属性全部失效,复合属性即使没写对应的值也会用默认值覆盖掉子属性
2. 子属性写在复合属性的后面,子属性会覆盖掉复合属性中与之对应的样式

5.2 文本颜色

属性名作用属性值
color设置文字颜色颜色

5.3 文本样式

属性名作用属性值
letter-spacing字间距长度
word-spacing词间距(中文无效果)长度
text-decoration文本修饰线none:无修饰线。
underline:下划线。
overline:上划线。
line-throuth:删除线
text-indent首行缩进长度
text-align文本水平对齐方式left:左对齐。
right:右对齐。
center:居中对齐
vertical-align与同行文本如何对齐baseline:基线对齐。
top:顶线对齐。
middle:中线对齐。
bottom:底线对齐。
sub:下标字。
super:上标字。
长度:元素底部与基线的距离
line-height
① vertical-align
 - 设置行内元素或行内块元素与同行文本如何对齐,如 基线对齐、顶线对齐、中线对齐、底线对齐等- 设置上标字和下标字- 设置单元格中内容的纵向对齐方式,只能用于 td、th

在这里插入图片描述

  • 基线:红色的线
  • 顶线:绿色的线
  • 底线:紫红色的线
  • 中线:蓝色的线
② line-height 设置行高

行高的概念:

使用行高实现元素中的一行文字垂直居中,满足以下条件:

line-height 是 font 的子属性:

行高可选值:
1.normal:由浏览器根据文字大小决定的一个默认值。
2.像素(px)
3.数字:参考自身font-size的倍数(很常用。通常是1.5~2倍之间)
4.百分比:参考自身font-size的百分比。
备注:由于字体设计的原因,文字在一行中,并不是绝对垂直居中,若一行中都是文字,不会太影响观感。注意:
1.行高过小:导致文字重叠,且最小值是0,不能为负数(负数会无效,默认为normal)。
2.行高是可以继承的。
3. 

作业

1. 课堂案例
2. google 字体设置

Day06 CSS 课堂笔记

1 回顾

1. 长度单位和颜色设置方式长度单位: px、em、%颜色设置方式:颜色名、rgb()、HEX2. CSS基本选择器ID选择器类名选择器标签名选择器全局选择器3. 显示模式inline、block、inline-blockdisplay4. 属性总结4.1 字体样式font-size、font-weight、font-style、font-family、font4.2 文字颜色color4.3 文本样式letter-spacing、word-spacing、text-indent、text-decoration、text-alignvertical-align

2 CSS 常用属性

2.1 文本样式

属性名作用属性值
letter-spacing字间距长度
word-spacing词间距(中文无效果)长度
text-decoration文本修饰线none:无修饰线。
underline:下划线。
overline:上划线。
line-throuth:删除线
text-indent首行缩进长度
text-align文本水平对齐方式left:左对齐。
right:右对齐。
center:居中对齐
vertical-align与同行文本如何对齐baseline:基线对齐。
top:顶线对齐。
middle:中线对齐。
bottom:底线对齐。
sub:下标字。
super:上标字。
长度:元素底部与基线的距离
line-height行高长度
① vertical-align
1. 设置行内元素或行内块元素与同行文本如何对齐,如 基线对齐、顶线对齐、中线对齐、底线对齐等
2. 设置上标字和下标字
3. 设置单元格中内容的纵向对齐方式,只能用于 td、th
② line-height 设置行高

在这里插入图片描述

行高的概念:

1. 上一行文字中线与下一行文字中线的距离称为行高
2. 上一行文字底线与下一行文字顶线的距离称为行距,调整行高大小,行距受到影响

第一行文字中线与元素顶部距离是行高一半,最后一行文字中线与元素底部距离是行高一半!

使用行高实现元素中的一行文字垂直居中,满足以下条件:

1. 只有一行文字
2. 设置行高与高度一致

line-height 是 font 的子属性:

 /* 将行高写在font复合属性中 */
font: bold 14px/30px 'Microsoft YaHei';
font: bold 14px/3 'Microsoft YaHei';  /* 此时 3 表示字体大小的倍数,相当于em */

2.2 背景样式

属性名作用属性值
background-color背景颜色颜色
background-image设置背景图像地址url(地址)
background-repeat设置背景图像重复方式repeat:重复。
repeat-x:横向重复。
repeat-y:纵向重复。
no-repeat:不重复。
background-position设置背景图像位置关键字。
两个长度表示的坐标。
百分比
background-attachment背景图像固定scroll:随元素滚动,默认值。
fixed:固定。
background背景复合属性多个值使用空格分隔
① 背景颜色
1. 元素默认背景颜色是透明,background-color的默认值是 transparent(透明)
2. 给 body 设置背景色就是给整个页面设置背景色
① 设置背景图像的位置 background-position

使用关键字设置属性值:

/* x轴位置:left right centery轴位置:top bottom center
*/
/* 使用两个值 */
background-position: left top;
background-position: right bottom;
background-position: right center;
background-position: right top;
/* 使用一个值  另一个值默认center*/
background-position: left;   /* left center */
background-position: bottom; /* center bottom */
background-position: center; /* center center */

通过指定坐标(用长度)设置属性值:

/* 使用坐标设置背景图像位置 */
/* 设置的是图像的左上角位置 */
/* 使用两个长度(px、em) 分别是x坐标 y 坐标 */
background-position: 0 0;
background-position: 100px 20px;
background-position: 520px 320px;
background-position: -100px 100px;
/* 只设置一个长度, 被认为是x坐标 y轴位置默认取center */
background-position: 100px;
/* 长度表示的坐标和关键字混搭 */
background-position: right -50px;
background-position: 100px bottom;

使用百分比设置属性值:

/* 元素和图像各自创建一个坐标系原点在各自的左上角,x轴从左到右,y轴从上到下根据百分比从元素上找到坐标点,根据百分比从图像上找到坐标点,两点重合
*/
/* 两个百分比 */
background-position: 0% 0%;
background-position: 50% 50%;
background-position: 20% 10%;
background-position: 100% 100%;
/* 百分比和其他混搭 */
background-position: 100% 100px;
background-position: left 100%;
/* 值使用一个百分比 被认为x方向位置,另一个方向默认center */
background-position: 10%;

background-position 的两个子属性:

background-position-x	设置x位置
background-position-y   设置y位置
② 背景图像固定 background-attachment
如果设置 background-attachment 为 fixed, 背景图像定位的坐标原点是视口的左上角
背景图像只能显示图像与元素位置重合的位置
③ 背景复合属性 background
任何子属性的值都可以作为background的值,没有数量要去,没有顺序要求

2.3 鼠标光标样式

属性名作用属性值
cursor设置鼠标光标pointer:小手。
move:移动图标。
/* 自定义鼠标光标 */
cursor: url(../images/arrow03.png),pointer;

2.4 列表样式

属性名作用属性值
list-style-type设置列表项图标none:无
list-style-position设置列表项图标位置outside:在li外面。
inside:在li里面。
list-style-image自定义列表项图标url(图片地址)
list-style复合属性多个值使用空格分隔

注意: 只有 ul、ol、li 这些标签设置列表样式才有效果!

2.5 表格样式

属性名作用属性值
table-layout设置列宽固定auto:默认值。
fixed:固定。
border-spacing设置单元格之间的距离长度
border-collapse合并单元格边框separate:默认值。
collapse:合并
caption-side标题位置top:表格上面。
bottom:表格下面
empty-cells没有内容的单元格显示还是隐藏show:显示,默认值。
hide:隐藏

注意: 表格相关的属性只能设置到 table 标签上才生效!

3 CSS 选择器

3.1 基本选择器

① ID 选择器
#ID名 {}
② 类选择器
.类名 {}
③ 标签名选择器
标签名 {}
④ 全局选择器
* {}

3.2 组合选择器

① 后代元素选择器
选择器1 选择器2 {}
② 子元素选择器
选择器1 > 选择器2 {}
③ 交集选择器
选择器1选择器2 {}.item.active {}
.active.item {}
div.item {}
④ 并集选择器
选择器1, 选择器2 {}

3.3 伪类选择器

:link			选择未访问过的超链接
:visited		选择已访问过的超链接
:hover			鼠标悬停在元素上
:active			鼠标悬停在元素上且鼠标按键按下不抬起
多个伪类选择器一起使用,请按照 :link、:visited、:hover、:active 顺序书写 (love hate 记忆法)

3.4 选择器权重(优先级)

① 单个选择器之间的权重
ID选择器 > 类选择器、伪类选择器 > 标签名选择器 > 全局选择器
② 组合选择器优先级比较规则
1. 两个组合选择器,先比较ID的数量,数量多者权重高,比较结束
2. ID数量无法分胜负,比较类、伪类的数量,数量多者权重高,比较结束
3. 类、伪类的数量无法分胜负,比较标签名的数量,数量多者权重高, 比较结束
4. 两个选择器权重一致,后面覆盖前面

**组合: ** 并集选择器的组合,各自计算各自的权重,不会放在一起计算。

作业

1. 实现背景图片固定案例(交)https://example.fuming.site/HTML&CSS/04-%E8%83%8C%E6%99%AF%E5%9B%BE%E5%9B%BA%E5%AE%9A.html2. 列表效果案例(交)https://example.fuming.site/HTML&CSS/05-%E5%88%97%E8%A1%A8.htmlul,ol 自带40px左内边距 padding-left

Day07 CSS 课堂笔记

1 回顾

1. 选择器1.1 基本选择器1.2 组合选择器后代元素选择器、子元素选择器、交集组合、并集组合1.3 伪类选择器:link :visited :hover :active1.4 选择器权重单个选择器权重组合选择器权重2. 属性总结2.1 字体样式font-size、font-weight、font-style、font-family、font2.2 文字颜色color2.3 文本样式letter-spacing、word-spacing、text-decoration、text-indent、text-alignvertical-align、line-height2.4 背景样式background-color、background-image、background-repeatbackground-position、background-attachment、background2.5 鼠标光标样式cursor: pointer、move2.6 列表样式list-style-type、list-style-positoin、list-style-image、list-style2.7 表格样式table-layout、border-spacing、border-collapse、caption-side、empty-cells

2 盒子模型 box model

2.1 盒子模型的组成

① 盒子模型的相关概念
1. 将元素比作成一个盒子
2. 页面布局就是盒子的排列和堆砌

内容(content): 内容是元素的核心区域,元素中的文本内容和后代元素都显示在内容上。

内边距(padding): 内容与元素边界的距离。

边框(border): 位于元素的边界上。

外边距(margin): 在元素边界之外,是与相邻元素的距离。

② 影响盒子大小的因素
盒子的总宽度 = 内容宽度 + 左右内边距 + 左右边框
盒子的总高度 = 内容高度 + 上下内边距 + 上下边框

2.2 盒子中的内容区域

① 设置内容区域的宽高的 CSS 属性
CSS 属性名功能属性值
width宽度长度
max-width最大宽度长度
min-width最小宽度长度
height高度长度
max-height最大高度长度
min-height最小高度长度

注意: 最大最小宽高一般不与固定宽高一同设置!

③ 元素的默认宽高

行内元素:

默认宽度被内容撑开,没有内容就没有宽度
默认高度被内容撑开,没有内容也会有一个文字的高度

行内块元素:

默认宽度被内容撑开,没有内容就没有宽度
默认高度被内容撑开,没有内容就没有高度

块级元素:

默认高度被内容撑开,没有内容就没有高度
默认总宽度 = 父元素内容宽度 - 自身的左右外边距
默认内容宽度 = 父元素内容宽度 - 自身的左右外边距 - 自身的左右内边距 - 自身的左右边框

2.3 盒子的内边距 padding

① 相关 CSS 属性
CSS 属性名功能属性值
padding-left左内边距长度
padding-right右内边距长度
padding-top上内边距长度
padding-bottom下内边距长度
padding上下左右内边距多个长度空格分隔
② padding 设置规则

padding 值设置的规则:

1. 不能是负值
2. 使用百分比,上下左右内边距都参照父元素内容宽度

padding 复合属性的设置规则:

/* 1个值: 上下左右 */
padding: 20px;
/* 2个值: 上下 左右*/
padding: 40px 30px;
/* 3个值: 上 左右 下*/
padding: 10px 20px 30px;
/* 4个值: 上 右 下 左*/
padding: 15px 25px 35px 45px;

不同显示模式的元素设置内边距:

1. 块级元素、行内块元素内边距可以完美设置
2. 行内元素,左右内边距可以完美设置,上下内边距效果不完美

在这里插入图片描述

2.4 边框 border

CSS 属性名功能属性值
border-style边框风格none:无风格。
solid:实线。
dashed:虚线。
dotted:点线。
double:双实线。
border-color边框颜色颜色,默认值是文字颜色
border-width边框宽度长度,默认值是3px
border同时设置风格、颜色、宽度多个值使用空格分隔
border-left-style
border-left-color
border-left-width
border-left

border-right-style
border-right-color
border-right-width
border-right

border-top-style
border-top-color
border-top-width
border-top

border-bottom-style
border-bottom-color
border-bottom-width
border-bottom
border的子属性有: border-style、border-color、border-widthborder-left 的子属性: bordre-left-style、border-left-color、border-left-width
border-right border-top border-bottom 各种具有子属性border-style 的子属性: border-left-style、border-right-style、border-top-style、border-bottom-style
border-color、border-width 各种具有子属性

2.5 外边距 margin

1. 外边距是元素与相邻兄弟元素的距离,如果没有相邻兄弟元素就是与父元素内容边界的距离
2. 左外边距和上外边距主要影响自己的位置,右外边距和下外边距主要影响相邻兄弟元素的位置
① 相关 css 属性
CSS 属性名功能属性值
margin-left左外边距长度
margin-right右外边距长度
margin-top上外边距长度
margin-bottom下外边距长度
margin外边距复合属性多个长度空格分隔
② margin 设置规则

margin 值设置的规则:

1. 使用百分比,上下左右内边距都参照父元素内容宽度
2. 外边距可以是负值
3. 块级元素左右外边距都设置为 auto,该元素在父元素中横向居中

margin 复合属性的设置规则:

1个值: 上下左右
2个值: 上下 左右
3个置: 上 左右 下
4个值: 上 右 下 左

不同显示模式的元素设置外边距:

1. 块级元素、行内块元素外边距可以完美设置
2. 行内元素,只能设置左右外边距,上下外边距设置无效

在这里插入图片描述

③ margin 塌陷

什么是 margin 塌陷?

1. 最上面元素的上外边距、最下面元素的下外边距会塌陷到父元素
2. 外边距塌陷只会发生在块级元素上

如何解决 margin 塌陷?

- 方案一: 父元素设置边框
- 方案二: 父元素设置内边距
- 方案三: 父元素开启BFC,设置 overflow:hidden;
④ margin 合并

什么是 margin 合并?

1. 上面兄弟元素的下外边距会与下面兄弟元素的上外边距合并,两者之间距离取较大的外边距
2. 外边距合并只会发生在块级元素上

如何解决 margin 合并?

不用解决

2.6 内容溢出

CSS 属性名功能属性值
overflow设置溢出内容的显示方式visible:显示,默认值。
hidden:隐藏。
scroll:滚动条。
auto:自动。
overflow-xx轴方向溢出内容的显示方式同上
overflow-yy轴方向溢出内容的显示方式同上

auto 和 scroll 的区别:

1. scroll 不论内容是否会溢出,都有滚动条
2. auto 只有内容溢出才会显示滚动条

2.7 隐藏元素

1. 设置 visibility:hidden;   元素隐藏但是占据位置
2. 设置 display:none;  元素彻底隐藏,不占据位置

3 样式继承和自带样式

3.1 样式继承

哪些样式可以被后代元素继承:

1. 字体样式 font-size、font-weight、font-style font-family、font
2. 文字颜色 color
3. 文本样式 letter-spacing、word-spacing、text-decoration、text-indent、text-align、line-height (vertical-align 不可以被继承)

3.2 自带样式(用户代理样式)

标题h1~h6 自带 font-size、font-weight、上下外边距
p 自带 上下外边距
em 自带 font-style
strong 自带 font-weight
a 自带 color、text-decoration、cursor
ul、ol 自带 padding-left、上下外边距
...

3.3 继承的样式、自带的样式、直接设置的样式

直接设置的样式 > 自带的样式 > 继承的样式

作业

1. 导航条
2. 安装标记工具 markman

Day08 CSS 课堂案例

1 回顾

1. 盒子模型1.1 内容 content1.2 内边距 padding1.3 边框 border1.4 外边距 margin塌陷 合并1.5 内容溢出 1.6 隐藏元素 display visibility2. 继承的样式和自带的样式继承的样式自带的样式直接设置的样式、自带的样式、继承的样式

2 浮动

2.1 浮动的简介

1. 浮动最初用于实现文字环绕效果
2. 现在,浮动是主流的布局方式之一

2.2 元素浮动之后的特点

元素浮动之后,称为浮动元素,具有如下特点:

1. 浮动元素脱离文档流
2. 多个浮动的元素会水平排列,一行放不下自动换行
3. 不论元素原来的显示模式是什么,设置成浮动之后,就是浮动元素,具有自己的显示特点:① 水平排列,自动换行,不存在外边距的塌陷和合并,设置左右外边距auto不会居中(与块级区别)② 设置宽高、内外边距都没有问题(与行内区别)③ 不会被父元素作为文本去处理(与行内块和行内区别)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

补充:行内、行内块元素会被父元素当作文本去处理
在这里插入图片描述

文档流: 文档流里的元素会按照顺序从上到下,从左到右排列。

2.3 浮动元素产生的影响

① 对后面兄弟元素的影响

影响:

后面兄弟元素会占据浮动元素原来的位置,可能造成位置的重叠,浮动元素显示在上

在这里插入图片描述
在这里插入图片描述

解决:

方案一: 给紧邻这浮动元素的后面的兄弟元素设置 clear:both
方案二: 兄弟元素要浮动都浮动,浮动元素不要跟不浮动的元素做兄弟

补充:只有块级元素才能使用clear:both
在这里插入图片描述

② 对父元素的影响

影响:

子元素浮动之后,不能撑起父元素高度,造成高度塌陷

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解决:

方案一: 父元素设置固定高度
方案二: 父元素设置浮动
方案三: 父元素设置 overflow, 值只要不是 visible 都可以
方案四: 给父元素添加个子元素,放在所有浮动元素的后面,该元素要求是块级元素,设置 clear:both
方案五: 原理同方案四相同,使用伪元素给父元素添加子元素,设置 clear:both (推荐)
父元素::after {content: "";display: block;clear:both;
}

补充:只有块级元素才能使用clear:both

2.4 浮动相关的 CSS 属性

CSS 属性功能属性值
float设置浮动left、right、none
clear清除浮动的影响left、right、both

3 行内元素或行内块元素在布局中的特点

3.1 父元素设置的文本属性可以作用于行内元素和行内块元素

① 让行内块元素在父元素中水平居中
给父元素设置 text-align:center
② 让行内块元素在父元素中纵向居中
1. 给父元素设置行高
2. 给行内块元素设置 vertical-align:middle

3.2 行内元素或行内块元素之间的空白问题

① 元素之间的空白(左右)

产生原因:

代码中,元素之间的换行

解决方案:

方案一: 代码中,元素之间不写换行(不推荐)
方案二: 父元素设置字体大小为0; 如果行内块元素中还有文字单独设置字体大小。
② 底部的空白(图片的幽灵空白)

产生原因:

行内块元素与文字基线对齐,底部的空白就是基线与底线的距离

解放方案:

方案一: 父元素设置字体大小 0
方案二: 给行内块元素设置 vertical-align:bottom (推荐)
方案三: 经典解决方案,针对图片,将图片设置成块级元素
③ 文字内容个数不同的行内块元素水平排列无法对齐

产生原因:

1. 如果行内块元素中没有文字,该元素的底部与基线对齐
2. 如果行内块元素中有一行文字,文字与外面的基线对齐,进而影响行内块元素的位置
3. 如果行内块元素中有多行文字,最后一行文字与外面的基线对齐,进而影响行内块元素的位置

解决方案:

给行内块元素设置 vertical-align, 值不是 baseline 都可以解决问题
http://www.dtcms.com/a/585237.html

相关文章:

  • 使用V4L2工具验证RK3588平台视频设备节点数据有效性
  • Rust 练习册 :Protein Translation与生物信息学
  • 网站开发课程知识点总结图片自动生成器
  • 【STL——常用遍历与查找算法】
  • 牛客网华为在线编程题
  • 29网站建设全部400网站总机 阿里云
  • 第四章 依赖项属性
  • wpf 结合 HALCON 编程 学习知识点列表有哪些?如何学习?
  • 学习C#调用OpenXml操作word文档的基本用法(5:Style类分析-3)
  • 系统运维Day03_FTP与磁盘挂载
  • 嘉兴网站备案去哪里优化网站是什么意思
  • SQL笔试题(2)
  • MATLAB/Simulink三机九节点
  • JVM 内存结构与 GC 调优全景图
  • 4.3.5【2024统考真题】
  • 如何进行MSSQL提权?sp_oacreate、sp_oamethod和沙盒提权以及xp_regwrighte提权
  • AI大模型开发架构设计(23)——LangChain技术架构和关键技术深度剖析
  • JavaScript 中的 void 关键字详解
  • 智能演示时代:8款免费AI PPT生成工具全面评测
  • 实验室建设网站网站开发公司经营范围
  • 怎样做能直接上传微信的视频网站钢结构招聘网最新招聘信息
  • 什么是缓存
  • 电力设备多模态数据融合与自适应阈值在线状态评估
  • 顺序表vector--------练习题8题解
  • 百度C++实习生面试题深度解析
  • rnn lstm transformer mamba
  • 卷积神经网络(CNN)全面解析
  • 50_AI智能体运维部署之集成LangSmith实现全链路追踪:AI系统的可观测性实践
  • Java 9 + 模块化系统实战:从 Jar 地狱到模块解耦的架构升级​
  • 及时通讯桌面端应用基vue+GO