Day07-CSS

0809
盒子模型:
盒模型:是css布局的基石,规定了网页之间的位置关系
	组成:内容区,填充区padding,边框区,外边距
		内容区:content,显示内容的区域
		填充区:padding,边框和内容之间的空白区
		边框区:border,显示边缘的区域
		外边距:margin,显示盒子边缘以外的空白区
1.标准盒模型:
	计算方式:标准盒模型的实际占有空间为content(width/height)+padding+border+margin
	padding和border会把盒子撑大
	margin不会将盒子的宽撑大
	保持原有的宽高不变,需要减掉相应的padding和border
2.怪异盒模型:
	<input type="submit"> border和padding不会把盒子的宽高撑大,而是把内容区挤小,margin不会改变元素的宽高;
	实际占有空间的方式:
		width/height(content+padding+border) + margin;
	默认遵循怪异盒模型:table,button,input为按钮类型的时候
	
3.盒模型的转换
	box-sizing:;
		content-box 显示为标准盒模型
		border-box 	显示为怪异盒模型
盒子模型—padding属性:
padding属性:内边距
	说明:padding对背景无效,背景可以显示到padding区域,内容不可以
		padding不能设置负值
	作用:
		父子元素之间的关系
	使用:
	1.单独设置某一方向的padding值:
		padding-top:上
		padding-left:左
		padding-bottom:下
		padding-right:右
	2.复合属性:
		padding:上/下/左/右1
		padding:上/下 左/右2
		padding:上 左/右 下3
		padding:上 右 下 左4
盒子模型—margin属性:
说明:
	显示在元素边框以外的空白区
	可以设置负值
	margin的属性值可以为auto,目前只能设置左右,上下的auto值需要在特殊情况下生效;
		auto:自由显示,自动分配
作用:同辈元素之间的位置关系
使用:与padding一致

margin:
	上下两个元素之间的margin会重叠,以最大值显示
	解决方法:给其中一个添加
margin塌陷:
	父元素里的第一个子元素的margin-top会向父元素传递
	解决方法:
		1.给父元素添加overflow:hidden;(推荐使用)
		2.给父元素或子元素添加浮动属性;
		3.给父元素添加上边框;
盒子模型—border属性:
说明:
	显示在元素边缘的位置上,在标准盒模型会撑大
作用:
	1.修饰性线条
	2.作为分割线使用
使用:
	1.设置边框的复合属性:
		border:width color style;
	2.单独设置边框的属性:
		设置边框宽度:border-width:Value;默认值:3px
		设置边框颜色:border-color:;默认值:#000
		设置边框线型:border-style;
			默认值:none
				solid	实线
				dashed	虚线
				dotted	点线
				double	双线
	3.单独设置某一个方向的样式:
		border-top:width color style;
	4.设置某一方向的宽度:
		border-top-width:;
	5.设置边框宽度的复合属性:
		border-width:上 右 下 左;
	其他同理
	
使用border创建三角形:
	宽高为0,为边框设置transparent属性值
元素类型:
根据CSS显示,把html的标签分为三大类
	1.块元素:
		1.独占一行,自上而下排列
		2.直接定义宽高,不定义宽高时,宽度会以100%显示,高度会根据内容显示
		3.会严格遵循盒模型的显示规则,可以正确显示padding、margin、border等属性
		4.可以嵌套块元素和行内元素
		5.p和h1-h6是不能嵌套其他块元素
	2.行内元素:
		1.自左向右依次排列,<br>/元素边缘才会折行
		2.不能直接定义宽高,宽高根据内容显示
		3.遵循盒模型的显示规则,padding-top/bottom,margin-top/bottom,borderr-top/bottom显示是不正确的
		4.img是比较特殊的行内元素,也称作置换元素,有默认的宽高比,是通过属性添加的内容,input也属于置换元素
	3.行内块元素:
		1.自左向右依次排列,br/元素边缘才会折行
		2.可以直接定义宽高,不写宽高根据内容显示
		3.严格遵循盒模块的显示类型
		4.常见的行内块元素:td、input、button、textarea、select...

元素类型的转换:
	属性:display:;
		属性值:
			none	隐藏元素类型
			block	块元素类型
			inline	行内元素类型
			inline-block	行内块元素类型
posted @ 2022-08-11 21:45  TTender  阅读(19)  评论(0编辑  收藏  举报