导图社区 Web前端基础Day04
这是一个关于Web前端基础Day04的思维导图,包含CSS 盒模型、 overflow详解、CSS背景等。
编辑于2024-05-01 00:01:18Day04
1、CSS 盒模型
1.1、盒模型及计算【笔试题】
概念:CSS盒模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边距、边框、填充、和实际内容。
盒模型的计算:
盒模型的占位宽 = width + padding-left + padding-right + border-left + border-right
盒模型的占位高 = height + padding-top + padding-bottom + border-top + border-bottom
盒模型的总宽 = width + padding-left + padding-right + border-left + border-right + margin-left + margin-right
盒模型的总高 = height + padding-top + padding-bottom + border-top + border-bottom + margin-top + margin-bottom
1.2、内容 content
width/height :设置宽度和高度 取值:auto默认值。浏览器可计算出实际的宽度。 px 百分比
min-width/height 最小宽/高 max--width/height 最大宽/高
1.3、内边距 padding
1.4.1、单个方向设置 padding-bottom 设置标签的下内边距 padding-left 设置标签的左内边距 padding-right 设置标签的右内边距 padding-top 设置标签的上内边距
1.4.2、取值:px 默认值0 百分比 不可使用负值
padding:内填充,也叫做内间距,指的是内容与边框之间的距离
% 相对于父元素的宽度来计算的,跟高度没有任何高度
1.4.3、简写:padding 简写属性在一个声明中设置所有填充属性。该属性可以有1到4个值。
1.4、边框 border
1.3.1、border-width边框宽度
作用:设置所有边框宽度,或者单独地为各边边框设置宽度。
取值:长度值 不允许指定负长度值。
1.3.2、border-style边框样式
设置标签所有边框的样式,或者单独地为各边设置边框样式。
none 定义无边框。 dotted 定义点状边框。 dashed 定义虚线。 solid 定义实线。 double 定义双线。双线的 宽度等于 border-width 的值。
1.3.3、border-color边框颜色
1.3.5、简写语法:border:宽度 样式 颜色;
注意: 边框会影响盒子实际大小 边框样式、边框宽度、边框颜色无书写顺序要求
制作三角形(四步)
.box1 { /* 步骤一:设置盒子的宽高为0 */ width: 0; height: 0; /* 步骤二:设置盒子的边框宽度属性和样式属性为实线 */ border: 100px solid; /* 步骤三:设置想要的尖角三角形方向及颜色,其它方向颜色为透明色transparent */ border-color: red transparent transparent transparent; /* 步骤四:去掉三角形对边的占位,即border-方向-width:0; */ border-bottom-width: 0; }
统一空格隔开1-4个值 1个值 设置所有方向 2个值 设置上下、左右 3个值 设置上、左右、下 4个值 设置上、右、下、左
1.5、外边距margin
1.5.1、单个方向定义 margin-bottom 设置下内边距 margin-left 设置左内边距 margin-right 设置右内边距 margin-top 设置上内边距
取值:px auto浏览器自动计算 允许使用负值
如果设置的是%,是跟父元素的宽度有关,跟高度没有关系
1.5.4、外边距问题
典理情形一:
结构关系:嵌套块元素的垂直外边距塌陷
问题描述:当父元素没有padding,margin,border时子元素与父元素直接相邻、子元素的margin值会传递给父元素并且再次与父元素的margin值发生合并最终的结果是正值取两者中的较大值,负值取绝对值较大的值。
表现:父子元素公用一个外边距
解决方法 给父元素设置边框或内边距(慎用) 父元素overflow:hidden,改变规则
典型情形二:
结构关系:相邻元素垂直外边距合并
问题描述:当两个块级兄弟元素垂直方向上的margin值直接相遇,会发生合并,最终结果是正值取两者中的较大值,负值取绝对值较大的值
表现:两个外边距合并成一个
解决方法 尽量只定义其中一个的margin值 给其中一个盒子加父元素 overflow:hidden ,改变渲染规则 其他情况同上【简单带过如后代元素出现同类问题等】
margin运用:水平居中margin:0 auto; 实现要求:1、块级元素;2、指定宽度
1.5.5、总结 设问通过对盒模型的实际使用对比出它与快递盒子的不同之处 总结盒子模型占位的计算:width/height + padding + border 提示学生注意实际开发的过程中要明确测量的宽高是内容宽还是包括了padding的占位宽高 垂直方向上相遇的margin值出现折叠问题
2、overflow详解
概述:溢出元素内容区的内容会如何处理
2.1、取值 visible 默认值。内容不会被修剪,会呈现在元素框之外 hidden 内容会被修剪,并且其余内容是不可见的 scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容 auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容
2.2、应用 产品描述的溢出隐藏 模块溢出显示滚动条
3、CSS背景
概述:CSS 背景属性用于定义 HTML 元素的背景,通过背景属性我们可以定义元素的背景颜 色、背景图片、背景图片的平铺方式和显示位置等。
3.1、background-color属性,设置元素的背景颜色。
常用的值
color_name 规定颜色值为颜色名称的背景颜色(比如red)
hex_number 规定颜色值为十六进制值的背景颜色(比如 #ff0000)
rgb_number 规定颜色值为 rgb 代码的背景颜色(比如 rgb(255,0,0))
transparent 默认,背景颜色为透明
rgba(0,0,0,0-1)设置半透明
注意:背景应用于由内容和内边距、边框组成的区域!
3.2、background-image 属性,为元素设置背景图像。
语法:background-image:url(" 图片资源路径 ");
常用的值: url(‘URL’) 指向图像的路径 none 默认值。不显示背景图像
元素的背景默认绘制区域包括内边距和边框。 默认地,背景图像位于元素的左上角,并在水平和垂直方向上重复。 我们也可以通过 background-repeat 属性可以改变背景图像的平铺方式
3.3、background-repeat 属性,设置是否或如何重复背景图像。
常用的值:
repeat 默认,背景图像将在垂直方向和水平方向重复
repeat-x 背景图像将在水平方向重复
repeat-y 背景图像将在垂直方向重复
no-repeat 背景图像将仅显示一次
3.4、background-position属性,设置图片起始位置
设置背景图像(由 background-image 定义)的起始位置。背景图像如果要重复,将从这一点开始。
语法:background-position: xpos(水平方向) ypos(垂直方向);
取值:
关键字:top、bottom、left、right 和 center; 指定图像放置于元素内边距区域的位置,一个对应水平方向,另一个对应垂直方向 例如:左上角为:left top;
长度值 指定图像相对于元素内边距区左上角的偏移量。左上角是 0 0,如果设置值为 50px 100px,图像的左上角将在元素内边距区左上角向右 50 像素、向下 100 像素的位置上;
百分比 指定百分数值将同时应用于元素和图像,左上角是 0% 0%;右下角是 100% 100%。 如果设置为 50% 50%,图像的中心点将与元素的中心点对齐显示;
3.5、background简写
语法:background:bg-color bg-image bg-repeat bg-position; background: red url(“bgimage.jpg”) no-repeat left top;
当使用简写属性时,属性值的顺序为: background-color background-image background-repeat background-attachment background-position 如果某个属性不需要设置,可以省略。
【笔试题】背景图与img的区别
是否占位:前景图是占位的,而背景图不占位 书写位置:前景图写在body,背景图写在样式表里面
是否重复平铺:默认情况下,背景图是重复平铺的, 前景图默认是不重复平铺的
是否有实际含义:img有实际含义的 背景图没有实际含义的,起到装饰作用
是否能被搜索引擎搜索到:img能被搜索引擎搜索到, 背景图不能被搜索引擎搜索到