行高(line-height)、margin、float

一.行高(line-height)

将行高设置等于容器的高度可以让文本垂直居中

1.行高是可以继承的

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<title>Document</title>

<style>

.father{

width:100px;

height:30px;

background:red;

line-height:30px;

}

.son{

}

</style>

</head>

<body>

<div class="father>

<div class="son">abcef</div>

</div>

</body>

</html>


二.margin 两种特殊的现象

1.外边距的合并现象:

如果两个div上下排序,给上面的那个div设置margin-bottom,给下面的那个设置margin-top,那么两个margin会发生合并现象,合并以后的值取最大的那个。

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin:0;
padding:0;
}
.one {
height:100px;
background: red;
margin-bottom:50px;
}
.two {
height:200px;
background: blue;
margin-top:100px;
}
</style>
</head>
<body>
<div class="one">div1</div>
<div class="two">div2</div>
</body>
</html>

2.margin塌陷现象

如果一个大盒子中包含一个小盒子,给小盒子设置margin-top大盒子会一起向下平移。、

解决方案:1.给大盒子加一个边框边框,颜色为透明(transparent),多出来的像素两种解决方法,
(1)手动做减法,在宽高属性上减去边框的所占像素
(2)固定死宽高,属性(box-sizing:border-box;)

2.在父标签里面设置一个overflow:hidden;属性

3.浮动也可以

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>

.father {
width:400px;
height:300px;
background: red;
overflow: hidden;
}
.son {
margin-top:1px;
width:200px;
height:150px;
background: blue;
}
</style>
</head>
<body>
<div class="father">
<div class="son"></div>
</div>
</body>
</html>

三.浮动(float)

作用:1.解决一行中显示多个盒子的问题   2.转换行级标签成块级标签,使其可以设置宽高

浮动有左浮动 float:left  和右浮动 float:right

浮动的特点:1.浮动的元素会脱离文档流:如果一个元素按照正常的标准流来显示,会在 html 中所属的位置占位,后面的元素会紧跟着它。但是浮动脱离文档流,将来在看到浮动的元素之后,不能以正常的文档流来进行判断。(在文档流中不占位置了,它是在文档流之上)

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<title>Document</title>
<style>
div{
width:200px;
height:200px;
}
.one {
background: red;
float: left;

}
.two {
background: blue;
}

.three {
background: pink;
}
</style>
</head>
<body>
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>
</body>
</html>

2.浮动以后的元素会覆盖在文档流的元素之上。

3. 浮动规则:浮动找浮动,不浮动找不浮动
浮动找浮动:只有写在同一个结构下面的浮动才会浮动找浮动。

例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">

<title>Document</title>
<style>
div{
width:200px;
height:200px;
}
.one {
background: red;
float: left;

}
.two {
background: blue;
}

.three {
background: pink;
}
</style>
</head>
<body>
<div class="one"></div>
<div class="two"></div>
<div class="three"></div>

<div style="background: yellow;"></div>

<div style="background: deeppink;"></div>
<div  style="background: skyblue"></div>
</body>
</html>

4.浮动显示的位置与原本不浮动之前的位置是对应的

5.浮动的重点:浮动的元素只会影响下面的元素,不会影响上面的元素

6.浮动的元素会改变显示方式,不管元素是行内元素还是块级元素将来在显示  的时候都会在同一行中显示。浮动以后的元素可以设置宽高。


清除浮动解决方案

(1)浮上去的元素,给它设置float:left;让它也浮动起来,但是它的结构便不是自然的结构了,不推荐
(2)在用完浮动的地方的后面建立一个空标签,给空标签设置一个属性,clear:both;弊端:会造成标签冗余,不推荐
(3)在父级盒子里设置超出隐藏,overflow:hidden;弊端:可能会对文档结构产生影响,如后期的特效,不推荐
(4)通过在用完浮动的盒子处建立伪类选择器清除浮动,格式.box:after{content:"";display:block;clear:both;}推荐使用

浮动的案例:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin:0;
padding:0;
}

/*确定版心的距离980*/

.nav {
width:980px;
height:50px;
background: red;
margin:0 auto;
}
.logo {
width: 980px;
height:100px;
background: purple;
margin:0 auto;
}
.message {
width:980px;
height:150px;
background: pink;
margin: 0 auto;
}
.content {
width:980px;
height:500px;
background: blue;
margin:0 auto;
}
.foot {
width:980px;
height:50px;
background: yellow;
margin:0 auto;
}
</style>
</head>
<body>
<div class="nav">导航</div>
<div class="logo">商标</div>
<div class="message">页面信息</div>
<div class="content">内容区域</div>
<div class="foot">底部</div>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值