关于盒模型1

1、什么是盒模型以及html文件

盒模型

  • html文件是由一个个的html标签(元素)组成
  • 盒模型:把每一个html元素想象成一个盒子

盒模型的结构

  • content(内容):用来显示内容
  • padding(内边距):内容与边框之间的距离
  • border(边框):元素的边框
  • margin(外边距):元素与元素之间的距离(兄弟关系,父子关系)
  • 盒子的宽=width + 左右padding + 左右border + 左右margin
  • 盒子的高=height + 上下padding + 上下boder + 上下margin

2、margin和padding的写法

1.合写 (以margin为例,padding同理)

  • 一个值:代表上 下 左 右 margin都是20px;margin:20px;上下左右
  • 两个值:第一个值代表上下margin,第二个值代表左右margin;margin:20px 15px
  • 三个值:第一个值表示上,第二个值表示左右,第三个值表示下;margin:20px 15px 10px;
  • 四个值:分别代表上 右 下 左(顺时针记)margin:20px 15px 10px 5px

2.分开写 (以margin为例,padding同理)

  • 上margin: margin-top:20px; 距离上边界20px;
  • 下margin: margin-bottom: 20px; 距离下边界20像素;
  • 左margin: margin-left: 20px; 距离左边界20像素;
  • 右margin: margin-right: 20px; 距离右边界20像素;

3、margin的坑点

相邻兄弟的元素在竖直方向上margin会出现融合。

  • 融合的标准:以较大的为准

解决办法:

  • 尽量只给一个元素设置竖直margin
  • 给两个元素的任意一个元素设置display:inline-block;

父子关系的元素在竖直方向上margin会出现传递现象;

解决办法:

  • 给父级加一个边框
  • 给父级加display:inline-block;
  • 给父级添加overflow:hidden;(溢出隐藏)
  • 用父级的padding代替子集的margin。

4、盒模型练习之margin写法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>盒模型6层练习</title>
		<style type="text/css">
			/* *{
				margin: 0;
				padding: 0;
			} */
			
			#div1{
				width: 590px;
				height: 590px;
				border: 5px dashed #000;
				margin: auto;
				margin-top: 50px;
			}
			
			#div2{
				width: 490px;
				height: 490px;
				border: 5px solid lightblue;
				margin: 45px;
			}
			
			#div3{
				width: 400px;
				height: 400px;
				background-color: purple;
				margin: 45px;
				overflow: hidden;
			}
			
			#div4{
				width: 300px;
				height: 300px;
				border: 5px dashed white;
				margin: 45px;
			}
			#div5{
				width: 200px;
				height: 200px;
				border: 5px dashed white;
				margin: 45px;
			}
			
			#div6{
				width: 100px;
				height: 100px;
				border: 5px solid yellow;
				margin: 45px;
				background-color: greenyellow;
			}
		</style>
	</head>
	
	<body>
		<div id="div1">
			<div id="div2">
				<div id="div3">
					<div id="div4">
						<div id="div5">
							<div id="div6"></div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</body>
</html>

5、盒模型练习之padding写法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>盒模型之padding的用法</title>
		<style type="text/css">
			#div6{
				width: 100px;
				height: 100px;
				border: 5px solid yellow;
				background-color: greenyellow;
			}
			
			#div5{
				width: 110px;
				height: 110px;
				border: 5px dashed #000;
				padding: 45px;
			}
			#div4{
				width: 210px;
				width: 210px;
				border: 5px dashed #000;
				padding: 45px;
			}
			
			#div3{
				width: 310px;
				height: 310px;
				padding: 45px;
				background-color: purple;
			}
			#div2{
				width: 400px;
				height: 400px;
				border: 5px  solid royalblue;
				background-color: lightgrey;
				padding: 45px;
			}
			#div1{
				width: 500px;
				height: 500px;
				border: 5px dashed black;
				padding: 45px;
				margin: auto;
				margin-top: 50px;
			}
		</style>
	</head>
	<body>
		<div id="div1">
			<div id="div2">
				<div id="div3">
					<div id="div4">
						<div id="div5">
							<div id="div6"></div>
						</div>
					</div>
				</div>
			</div>
		</div>
	</body>
</html>

6、背景样式

1.背景色

  • background-color

2.背景图片

  • background-image

3.背景尺寸:background-size

  • 百分比 分别相对于容器的宽和高
  • px值
  • cover
  • contain
    1. cover和contain都是按比例缩放图片
    2. cover要保证按比例铺满整个容器,有可能造成图片无法显示完全。
    3. contain只要宽或者高一个方向铺满容器,就停止缩放,有可能造成内容留白。

4.背景图平铺 background-repeat

  • repeat 水平竖直方向都平铺(默认)
  • repeat-x 水平方向平铺
  • repeat-y 竖直方向平铺
  • no-repeat 不平铺

5.背景图片是否跟随网页滚动

  • background-attachment
  • scroll 跟随网页滚动
  • fixed 不跟随网页滚动

背景图位置:background-position:x y

  • x:水平方向位置
  • y:竖直方向位置

写法:
1) 直接写px数值

  • x方向:正值-> 负值<-
  • y方向:正值(往下) 负值(往上)

2)使用方位单词

  • x方向:left center right
  • y方向:top center bottom

7、盒模型-auto

  • auto是一个值,可以帮助我们灵活地进行块级元素的布局
    在盒模型中,我们一般可以把width,margin设置为auto
  • 1.如果width,margin-left,margin-right三个样式有一个auto,其余两个值必须是定值。
  • 2.如果width,margin-left,margin-right三个样式都为定值且发生了冲突,系统会强制修改margin-right的值;
  • 3.如果margin-left,margin-right两个值都为auto,那么宽必须为定值。

8、添加的样式

  • cursor:pointer;变成小手

  • test-decoration 文本修饰

    1. underline
    2. overline
    3. line-through
    4. none
  • list-style 列表样式修饰

    1. none 去掉黑点
    2. circle 变成空心圆
    3. square 变成实心正方形

9、浮动

什么时文档流?

  • 默认状态下文档中元素所处的位置。

什么是浮动?

  • 设置了浮动的元素,元素会脱离文档流
  • 浮动是一个样式:float
  • 值1:left:向左浮动;值2:right:向右浮动;

浮动的特点

  • 浮动只有左浮动和右浮动
  • 设置了浮动的元素,其大小默认由内容撑出
  • 设置了浮动的元素,可以设置宽高(行和块都可以)
  • 设置了浮动的元素,水平浮动,直到遇到父级的边框或者另外一个浮动元素,停止浮动
  • 设置了浮动的元素,脱离文档流,会影响到后面的元素,但是当后面的元素有图片或者文字的时候,图片和文字不受影响。
  • 设置了浮动的元素,自动margin失效

清除浮动造成的影响

  • 方法:给受浮动影响的元素添加clear样式
  • left 清除左浮动造成的影响
  • right 清除右浮动造成的影响
  • both 清除左右浮动造成的影响

浮动造成的问题

  • 如果父级不设置高度,那么父级的高度由其内容不设置浮动的元素撑出,但是如果其内部所有的元素都设置了浮动,则父级无法撑出高度,该现象称之为“内容塌陷”

如何解决

  • 给父级设置一个高度
  • 给父级添加overflow:hidden;
  • 在父级里所有浮动的元素的后面,添加一个空元素,并设置clear:both;空元素的类型必须是块元素或者行级块元素。

10、阴影

盒模型 box-shadow
文字阴影 test-shadow

取值:

  • x方向偏移量:若是正值,阴影向右方;若是负值,阴影向左移动
  • y方向偏移量:若是正值,阴影向下;若是负值,阴影向上移动
  • 阴影的发散度:值越小,阴影越实,值越大,阴影越虚幻
  • 阴影宽度:值越大,阴影越宽,值越小,阴影越细。
  • 阴影颜色:一般是暗色系列
  • 内阴影:(不必填,若不填,默认为外阴影) inset;

11、伪类选择器

:link{}

  • 该选择器能找到所有定义了超链接,且没有被访问过的元素,适用于a标签

:visited{}

  • 该选择器能找到所有的定义了超链接且已经被访问过的元素,适用于a标签

:hover{}

  • 该选择器能找到鼠标移动到其上面的元素

:active{}

  • 该选择器能找到鼠标在其上面按下并不松开的元素

注意:

如果我们在同一个文件里,给同一类元素设置了伪类时,需要使用到link visited hover active这四个中的多个时,需要按照如下顺序书写:LoVe HAte(爱恨法则)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值