html盒子模型,内容区(content)、 内边距(padding)、边框(border)、外边距(margin)及行与块级元素的转换

布局

        文档流简介 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>布局-文档流</title>
		<style>
			/* 块元素	在页面中独占一行
							默认宽度:是父元素的全部
							默认宽度:根据内容成长
										 */
			.box1{
				width: 100px;
				background-color: yellow;
			}
			.box2{
				width: 100px;
				background-color: red;
			}
			/* 行内元素	不会独占一行,只占自己的大小
						行内元素在水平上自左向右,一行不够,自动换行
							默认宽度和高度都是被内容撑开
							*/
			span{
				background-color: #bfa;
			}
		</style>
	</head>
	<body>
		<!-- 文档流		网页是一个多层结构
						通过css可以分别为每一层设置样式
						作为用户来讲只能看见最顶上的一层
							我们创建的元素默认都在文档流中进行排序
						状态		在文档流中
								不在文档流中(脱离文档流)
						-->
		<div class="box1">我是div1</div>
		<div class="box2">我是div2</div>
		
		<span>我是span 1</span>	
		<span>我是span2</span>
		<span>我是span 1</span>
		<span>我是span2</span>
		<span>我是span 1</span>
		<span>我是span2</span>
		<span>我是span 1</span>
		<span>我是span2</span>
		<span>我是span 1</span>
		<span>我是span2</span>
	</body>
</html>

盒子模型由以下几个部分组成
                    内容区(content):存放内容
                    内边距(padding):内容与边框的距离
                    边框(border):盒子的边界
                    外边距(margin):盒子与盒子之间的位置

以下是边框的样式设置

border:宽度、样式、颜色

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>盒模型</title>
		<style>
			.box1{
				/* 内容区(content):元素中的所有子元素和文本内容的设置都是在内容区排列
							包含:width: 内容去宽度
								  height:内容区的高度*/
				width: 200px;
				height: 200px;
				background-color: #bfa;
			}
			/* 边框(border):属于盒子边缘,边框里边属于盒子内部,出了边框都是盒子的外部
						设置边框:需要设置三种样式
								边框的宽度:border-width
								边框的颜色:border-color
								边框的样式:border-style
									*/
			.box2{
				width: 200px;
				height: 200px;
				background-color: aqua;
				border-width: 10px;
				border-color: red;
				border-style: solid;
			}
			/* border-width:一般为3px
							语法:上,右,下,左
								  上,左右,下
								  上下,左右*/
				/* border-left-width
				 border-top-width
				 border-right-width
				 border-bottom-width*/
			.box3{
				width: 200px;
				height: 200px;
				background-color: aqua;
				border-width: 10px,20px,3px,10px;
				border-color: red;
				border-style: solid;
								
				}
				/* border-color:语法		与width相同
				 border-xxx-color
								默认使用字体颜色,不设置时*/
				/* border-style:语法	与width相同
										dotted:点状虚线
										solid:实线
										dashed:虚线
										double:双线
								默认值没有,none*/
				/* 简写:可以同时设置边框的所有样式,没有顺序要求
					border
					border-xxx:存在left、top、bottom、right*/
			.box4{
				width: 100px;
				height: 100px;
				background-color: black;
				border: 3px red solid;
			}
				 
		</style>
	</head>
	<body>
		<!-- 盒模型、盒子模型、框模型
				css将页面中的所有元素都设置为一个矩形的盒子
				布局就是将盒子摆放到合适的位置
				组成部分
					内容区(content)
					内边距(padding)
					边框(border)
					外边距(margin)-->
					
		<div class="box1">盒子内容区</div>
		<div class="box2">边框</div>
		<div class="box3"></div>
		<div class="box4"></div>
	</body>
</html>

内边距的设置 

padding:上、右、下、左

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>内边距</title>
		<style>
			.box1{
				width: 200px;
				height: 200px;
				background-color: #bfa;
				border: 3px red solid;
				/* 
				 内边距(padding)
						内容与边框之间的距离
						一共有四个方向的内边距
						padding-top:
						padding-left: 
						padding-bottom: 
						padding-right: */
				/* 内边距的设置会影响盒子的大小
				背景颜色会延申到内边距上 */
				padding-top: 100px;
				padding-left: 100px;
				padding-right: 100px;
				padding-bottom: 100px;
			}
			/* padding: 简写  与border-width写法一样 */
			.inner{
				width: 100%;
				height: 100%;
				background-color: yellow;
			}
			/* 盒子的计算:内容区,内边距,边框共同计算 */
		</style>
	</head>
	<body>
		<div class="box1">
			<div class="inner"></div>
		</div>
	</body>
</html>

外边距的设置

margin:上、右、下、左 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>外边距</title>
		<style>
			.box1{
				width: 200px;
				height: 200px;
				background-color: #bfa;
				border: 10px red solid;
				/* 外边距(margin)
					外边距不会影响盒子可见框
					但是外边距会影响盒子的位置
						一共有四个方向的外边距
						margin: top;上外边距,设置一个正值,元素会向下移动: 
						margin-bottom: 下外边距,设置一个正值,其下边的元素会移动
						margin-left: 左外边距,设置一个正值,元素会向右移动
						margin-right:
						 元素在页面中,自左向右的顺序排列,
						 所以默认情况如果我们设置的左和上外边距,则会移动元素自身
										而向下和右都会移动其他元素
						简写:margin: 可以同时设置  上右下左*/
			margin-bottom: 100px;
			margin-left: 100px;
			margin-top: 100px;
			margin-right: 100px;
			}
			.box2{
				width: 220px;
				height: 220px;
				background-color: antiquewhite;
			}
		</style>
	</head>
	<body>
		<div>
			<div class="box1"></div>
			<div class="box2"></div>
		</div>
	</body>
</html>

 水平布局

让盒子居中
                    常用写法:
                    width: xxxpx;
                    margin: 0 auto;

 元素水平方向的布局
                    水平方向的位置,元素在其父元素水平方向的位置由以下几个属性共同决定
                        margin-left: 
                        border-left: 
                        padding-left: 
                        width: 
                        padding-right: 
                        border-right: 
                        margin-right: 
                    一个元素在其父元素中,水平布局需要满足以下等式
                        margin-left:+border-left: +padding-left: +padding-right: +border-right: +margin-right
                         等于父元素内部宽度

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>水平布局</title>
		<style>
			.outer{
				width: 800px;
				height: 200px;
				border: 10px red solid;
			}
			.inner{
				width: auto;
				height: 200px;
				background-color: aqua;
				margin-right: 100px;
				margin-left: 200px;
				
				/* 元素水平方向的布局
					水平方向的位置,元素在其父元素水平方向的位置由以下几个属性共同决定
						margin-left: 
						border-left: 
						padding-left: 
						width: 
						padding-right: 
						border-right: 
						margin-right: 
					一个元素在其父元素中,水平布局需要满足以下等式
						margin-left:+border-left: +padding-left: +padding-right: +border-right: +margin-right
						 等于父元素内部宽度
						 200+100=800
						 差值margin-right自动增加500
			
					 width: 
					 margin-left
					 margin-right: 
						 以上三个可以设置为auto
						 三个都是auto时,width最大,
						 width固定,左右外边距auto,则两边宽度相同
					让盒子居中
					常用写法:
					width: xxxpx;
					margin: 0 auto;*/
			}
		</style>
	</head>
	<body>
		<div class="outer">
			<div class="inner">
				
			</div>
		</div>
	</body>
</html>

垂直方向布局 

利用overflow属性处理溢出现象
                可选值:
                    visbile:默认值
                    hidden:超出部分会裁剪
                    scroll:滚动条,观看完整内容
                    auto:根据需要生成滚动条

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>垂直方向布局</title>
		<style>
			.outer{
				background-color: aqua;
				/* 默认情况下,父元素的高度被内容撑开 */
			}
			.inner{
				width: 100px;
				background-color: olive;
				height: 300px;
				margin-bottom: 100px;
			}
			.box1{
				width: 200px;
				height: 200px;
				background-color: yellow;
				overflow: auto;
			}
			/* 子元素在父元素的内容区中排序
				if子元素的大小大于父元素,则子元素会从父元素中溢出*/
			.box2{
				width: 100px;
				height: 400px;
				background-color: greenyellow;
			}
			/* 利用overflow属性处理溢出现象
				可选值:
					visbile:默认值
					hidden:超出部分会裁剪
					scroll:滚动条,观看完整内容
					auto:根据需要生成滚动条
					*/
			/* overflow-x水平方向处理
			 overflow-y垂直方向处理*/
		</style>
	</head>
	<body>
		<!-- <div class="outer">
			<div class="inner">
				
			</div> -->
			<div class="box1">
				<div class="box2"></div>
			</div>
		</div>
	</body>
</html>

行内元素盒模型 

display: 用来设置元素显示的类型
                        inline:将元素设置为行内元素
                        block:将元素设置为块元素
                        inline-block:将元素设置为行内块元素
                                        特点:即可以设置宽度和高度,又不会独占一行
                        table:将元素设置为一个表格
                        none:元素不在该页面显示
                    visibility:用来设置元素的显示状态
                                visible:默认值,元素在页面中正常显示
                                hidden:元素在页面中隐藏,不显示,但是依然占据页面的位置

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>行内元素盒模型</title>
		<style>
			/* 行内元素盒模型
					行内元素不支持宽度和高度
					可以设置padding,但垂直方向不会影响布局
					可以设置border,垂直方向的border不会影响页面的布局
					可以设置margin,垂直方向的margin不会影响布局*/
			.s1{
				background-color: yellow;
				/* padding: 100px; */
				
				/* border: 100px solid red; */
				margin: 100px;
			}
			.box1{
				width: 200px;
				height: 200px;
				background-color: aquamarine;
			}
			a{
				width: 100px;
				height: 100px;
				background-color: orange;
				/* display: 用来设置元素显示的类型
						inline:将元素设置为行内元素
						block:将元素设置为块元素
						inline-block:将元素设置为行内块元素
										特点:即可以设置宽度和高度,又不会独占一行
						table:将元素设置为一个表格
						none:元素不在该页面显示
					visibility:用来设置元素的显示状态
								visible:默认值,元素在页面中正常显示
								hidden:元素在页面中隐藏,不显示,但是依然占据页面的位置
								
										*/
				display: none;
			
			}
		</style>
	</head>
	<body>
		<a href="javescript">超链接</a>
		<span class="s1">我是span</span>
		<div class="box1"></div>
		
	</body>
</html>

 默认样式

默认样式:
                浏览器会元素设置一些默认样式
                默认样式会影响页面布局
                通常情况下,写网页时,必须去除默认样式
                margin:0
                padding:0
                list-style:none(去除项目符号)
           

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值