目录
盒子模型
内边距padding
padding-left
padding-right
padding-top
padding-bottom
padding
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
span {
border: 1px solid red;
/* 设置span标签中内容与边框之间的距离 */
/* padding: 30px; */
/* 设置上下内边距为20px,左右内边距为10px */
/* padding: 10px 20px; */
/* 上内边距10px,左右内边距20px 下内边距50px */
/* padding: 10px 20px 50px; */
/* 上内边距10px,左右内边距20px 下内边距50px */
/* padding: 10px 20px 50px 80px; */
padding-top: 10px;
padding-right: 20px;
padding-bottom: 60px;
padding-left: 30px;
}
</style>
</head>
<body>
<span>我是span标签</span>
</body>
</html>
外边距margin
margin-top
margin-right
margin-bottom
margin-left
margin
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.father{
border: 3px solid red;
}
.son{
width: 220px;
height: 200px;
border: 1px dashed blue;
/* margin-top: 20px;
margin-right: 10px;*/
/*父元素没有设置宽度,占整个一行,所以设置右边距是没有作用的 */
/* margin-bottom: 20px;
margin-left: 30px; */
/* margin: 60px; */
/* margin:20px 50px */
/* margin:20px 50px 100px; */
margin:20px 50px 100px 80px;
}
</style>
</head>
<body>
<div class="father">
<div class="son"></div>
</div>
</body>
</html>
外边距的妙用
网页居中对齐 margin:0px auto;
网页居中对齐的必要条件
块元素
固定宽度
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div{
width: 200px;
height: 50px;
border: 1px solid red;
margin: 0px auto ;
/* 元素内容水平居中通过 */
text-align: center;
/* 元素内容垂直居中,将行高属性与元素高度设置为一样就可以实现 */
line-height: 50px;
}
</style>
</head>
<body>
<div>我是div元素</div>
</body>
</html>
盒子型模的尺寸
盒子模型总尺寸=border+padding+margin+内容宽度
box-sizing
content-box 默认值,盒子的总尺度
border-box 盒子的宽度或高度等于元素内容的宽度或高度
inherit 元素继承父元素的盒子模型模式
标准文档流的组成
块级元素
<h1>…<h6>、<p>、<div>、列表
内联元素
<span>、<a>、<img/>、<strong>...
display属性
控制元素的显示和隐藏
块级元素与行内元素的转变
浮动
设置左浮动 float:left
设置右浮动 float:right
高度塌陷
浮动元素脱离标准文档流
清除浮动
clear属性
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>浮动</title>
<link href="css/float.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="father">
<div class="layer01"><img src="image/photo-1.jpg" alt="日用品"/></div>
<div class="layer02"><img src="image/photo-2.jpg" alt="图书"/></div>
<div class="layer03"><img src="image/photo-3.jpg" alt="鞋子"/></div>
<div class="layer04">
浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。
</div>
</div>
</body>
</html>
div {
margin:10px;
padding:5px;
}
#father {
border:1px #000 solid;
}
.layer01 {
border:1px #F00 dashed;
/*float:right;*/
float:left;
}
.layer02 {
border:1px #00F dashed;
float:right;
}
.layer03 {
border:1px #060 dashed;
float:left;
}
.layer04 {
border:1px #666 dashed;
font-size:12px;
line-height:23px;
width: 200px;
float: right;
/*clear:left;*/
/*clear: right;*/
clear: both;
}
body {
font-size:12px;
line-height:22px;
}
#content {
width:200px;
height:150px;
border:1px #000 solid;
/*overflow:visible;*/
/*overflow:hidden;*/
/*overflow:scroll;*/
overflow:auto;
}
解决父级边框塌陷的方法
浮动元素后面加空div
简单,空div会造成HTML代码冗余
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>浮动</title>
<link href="css/float.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="father">
<div class="layer01"><img src="image/photo-1.jpg" alt="日用品"/></div>
<div class="layer02"><img src="image/photo-2.jpg" alt="图书"/></div>
<div class="layer03"><img src="image/photo-3.jpg" alt="鞋子"/></div>
<div class="layer04">
浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。
</div>
<!--方法一:空div防止父级边框塌陷-->
<div class="clear"></div>
</div>
</body>
</html>
div {
margin:10px;
padding:5px;
}
#father {
border:1px #000 solid;
}
.layer01 {
border:1px #F00 dashed;
float:left;
}
.layer02 {
border:1px #00F dashed;
float:right;
}
.layer03 {
border:1px #060 dashed;
float:left;
}
.layer04 {
border:1px #666 dashed;
font-size:12px;
line-height:23px;
width: 200px;
float: right;
}
.clear{
clear: both;
margin: 0;
padding: 0;
}
设置父元素的高度
简单,元素固定高会降低扩展性
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>浮动</title>
<link href="css/float.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="father">
<div class="layer01"><img src="image/photo-1.jpg" alt="日用品" /></div>
<div class="layer02"><img src="image/photo-2.jpg" alt="图书" /></div>
<div class="layer03"><img src="image/photo-3.jpg" alt="鞋子" /></div>
<div class="layer04">浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。</div>
</div>
</body>
</html>
div {
margin:10px;
padding:5px;
}
#father {
border:1px #000 solid;
/*方法二:在父级里设置高度来防止边框塌陷*/
height: 400px;
}
.layer01 {
border:1px #F00 dashed;
float:left;
}
.layer02 {
border:1px #00F dashed;
float:right;
}
.layer03 {
border:1px #060 dashed;
float:left;
}
.layer04 {
border:1px #666 dashed;
font-size:12px;
line-height:23px;
width: 200px;
float:left;
}
父级添加overflow属性
溢出处理overflow属性
简单,下拉列表框的场景不能用
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>浮动</title>
<link href="css/float.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="father">
<div class="layer01"><img src="image/photo-1.jpg" alt="日用品"/></div>
<div class="layer02"><img src="image/photo-2.jpg" alt="图书"/></div>
<div class="layer03"><img src="image/photo-3.jpg" alt="鞋子"/></div>
<div class="layer04">
浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。
</div>
</div>
</body>
</html>
div {
margin:10px;
padding:5px;
}
#father {
border:1px #000 solid;
overflow: hidden;
}
.layer01 {
border:1px #F00 dashed;
float:left;
}
.layer02 {
border:1px #00F dashed;
float:right;
}
.layer03 {
border:1px #060 dashed;
float:left;
}
.layer04 {
border:1px #666 dashed;
font-size:12px;
line-height:23px;
width: 200px;
float:left;
}
父级添加伪类after
.clear:after{
content: ''; /*在clear类后面添加内容为空*/
display: block; /*把添加的内容转化为块元素*/
clear: both; /*清除这个元素两边的浮动*/
}
写法比上面稍微复杂一点,但是没有副作用,推荐使用
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>浮动</title>
<link href="css/float.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="father" class="clear">
<div class="layer01"><img src="image/photo-1.jpg" alt="日用品" /></div>
<div class="layer02"><img src="image/photo-2.jpg" alt="图书" /></div>
<div class="layer03"><img src="image/photo-3.jpg" alt="鞋子" /></div>
<div class="layer04">浮动的盒子可以向左浮动,也可以向右浮动,直到它的外边缘碰到包含框或另一个浮动盒子为止。本网页中共有三个图片,分别代表日用品图片、图书图片和鞋子图片。这里使用这三个图片和本段文字来演示讲解浮动在网页中的应用,根据需要图片所在的div分别向左浮动、向右浮动,或者不浮动。</div>
</div>
</body>
</html>
div {
margin:10px;
padding:5px;
}
#father {
border:1px #000 solid;
}
.layer01 {
border:1px #F00 dashed;
float:left;
}
.layer02 {
border:1px #00F dashed;
float:right;
}
.layer03 {
border:1px #060 dashed;
float:left;
}
.layer04 {
border:1px #666 dashed;
font-size:12px;
line-height:23px;
width: 200px;
float:left;
}
.clear:after{
content: ''; /*在clear后面添加内容为空*/
display: block; /*把添加的内容转化为块元素*/
clear: both; /*清除这个元素两边的浮动*/
}
inline-block和float的区别
display:inline-block
可以让元素排在一行,并且支持宽度和高度,代码实现起来方便
位置方向不可控制,会解析空格
float
可以让元素排在一行并且支持宽度和高度,可以决定排列方向
float 浮动以后元素脱离文档流,会对周围元素产生影响,必须在它的父级上添加清除浮动的样式