-
CSS中能够是元素脱离文档流的操作有如下:
-
1、float(只要设置浮动,则默认自带
display: inline-block;
,可设宽高,且不占行) -
2、position:absolute;绝对定位(只要设置绝对定位,则默认自带
display: inline-block;
,可设宽高,且不占行) - 3、position:fixed;固定定位 //IE6不兼容
文档流的定义:
行内元素默认从左到右流,遇到阻碍或者宽度不够自动换行,继续按照从左到右的方式布局。块级元素单独占据一行,并按照从上到下的方式布局(这种就是默认布局)。-
如下图所示:
- ①块级元素,以各自独占一行的布局,从上而下;
- ②行内元素,无论是在块级元素内,还是在body内,都是从左到右布局。
- ③默认情况下,如果不是父子级关系的块级元素和行内元素,是不可能同行布局的。(块级元素独自占一行,单个块级元素也会一行显示,但是不会占用一行,剩余的空间只给其他行内元素使用。)
代码测试:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>文档流(默认布局)</title>
<style type="text/css">
div{
background-color: #CCFF00;
border: 2px solid #000000;
}
p{
background: #CC99FF;
border: 2px solid #ffffff;
}
span{
background-color: #6633FF;
}
</style>
</head>
<body>
<div>我是块级元素div
<p>我是块级元素p
<span>我是行内元素span</span>
</p>
<p>我是块级元素p</p>
<span>我是行内元素span</span>
<span>我是行内元素span</span>
</div>
<div>我是块级元素div</div>
<div>我是块级元素div</div>
<p>我是块级元素p</p>
<span>我是行内元素span</span>
<span>我是行内元素span</span>
<span>我是行内元素span</span>
<span>我是行内元素span</span>
<div>我是块级元素div</div>
<span>我是行内元素span</span>
<p>我是块级元素p</p>
</body>
</html>
下面是关于脱离文档流的操作
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>float脱离文档流</title>
<style type="text/css">
body{
padding: 0px;
margin: 0px;
}
.box1,.box2,.box3,.box4{
width: 100px;
height: 100px;
color: #ffffff;
}
.box1{
background-color: green;
}
.box2{
background-color: pink;
}
.box3{
background-color: red;
/*此处练习*/
/* float: right; */
/* position: absolute; right: 0px; */
/* position: fixed; right: 0px; */
}
.box4{
background-color: blue;
}
</style>
</head>
<body>
<div style="height:1000px;">
<div class="box1">我是第一个块级元素</div>
<div class="box2">我是第二个块级元素</div>
<div class="box3">我是第三个块级元素</div>
<div class="box4">我是第四个块级元素</div>
</div>
</body>
</html>
一、使用float(浮动)来脱离文档流
二、使用position:absolute;
(绝对定位)来脱离文档流
三、使用牛皮癣大法position:fixed;
(固定定位)来脱离文档流