码迷,mamicode.com
首页 > Web开发 > 详细

css 的定位,浮动和清除浮动——浅析

时间:2016-10-03 17:11:15      阅读:270      评论:0      收藏:0      [点我收藏+]

标签:

在下才疏学浅,不足之处,还请多多指教。

定位有这五种:

技术分享

常用的是前三种,接下来上代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .box{
            padding: 100px 100px;
            position: relative;
            width: 350px;
            height:350px;
            background: #cccccc;
        }
        .div1{
            width: 300px;
            height:300px;
            position: relative;
            background: red;
        }
        .div2{
            position: absolute;
            width: 180px;
            height:100px;
            background: greenyellow;
        }
        .div3{
            position: fixed;
            top: 500px;
            left:500px;
            width:300px;
            height:100px;
            border: 1px solid #00a8f3;
        }
    </style>
</head>
<body>
    <div class="box">big-relative
        <div class="div1">relative
            <div class="div2">
                absolute<br>
                absolute是跟最近的relative进行定位的。
                <div class="div3">
                    fixed<br>
                    fixed 是不受所在位置影响的,它就是死死定在距离顶500px,左边500px的位置
                </div>
            </div>
        </div>

    </div>

</body>
</html>

执行效果如下:

技术分享

再看一个小demo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            width: 100px;
            height:100px;
        }
        .div1{
            background: red;
        }
        .div2{
            width:250px;
            background: greenyellow;
            position: absolute;
        }
        .div3{
            background: burlywood;
            height:100px;
            padding-top: 100px;
        }
        .div4{
            background: #1d7ad9;
        }
    </style>
</head>
<body>
    <div class="div1">div1</div>
    <div class="div2">
        div2-absolute<br>
        当为绝对定位时,会脱离文档流。
    </div>
    <div class="div3">
        div3<br>
        由于div2脱离文档流,所以div3占据之前div2的位置
    </div>
    <div class="div4">div4</div>
</body>
</html>

执行效果如下

技术分享

接下来分析下浮动:

技术分享

inherit是:元素从父级继承float属性的值;

left是:元素向左浮动;

none是:元素保持默认,在本该出现的位置;

right是:元素向右浮动。

看如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div1{
            float: right;
            width:200px;
            height:200px;
            background: #1d7ad9;
        }
        .div2{
            float: inherit;
            width:100px;
            height:250px;
            background: rebeccapurple;
        }
        .div3{
            float:none;
            width:90px;
            height:100px;
            background: red;
        }
        .div4{
            float: left;
            width:60px;
            height:30px;
            background: greenyellow;
        }
    </style>
</head>
<body>
    <div class="div1">
        right;<br>
        此时容器为body,浮动到body的右边<br>
        <div class="div2">
            inherit<br>
            1.父元素div1是右浮动,所以div2也是右浮动(inherit继承父元素的浮动)<br>
            2.由于是浮动,所以自身比父元素高度大,也不会撑开父元素
        </div>
        <div class="div3">
            none;<br>
            出现在本该出现的位置
        </div>
        <div class="div4">
            left;
        </div>
    </div>
</body>
</html>

执行效果如下:

技术分享

这里,由于浮动,所以即便子元素高度超过父元素高度,也不会撑开。

但是我们如果想让子元素的高度撑开父元素怎么做呢?即我们需要清除浮动!

看如下代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .div1{
            width:200px;
            background: #1d7ad9;
        }
        .clearfix:after{
            clear:both;
            display:block;
            visibility:hidden;
            height:0;
            line-height:0;
            content:‘‘;
        }
        .clearfix{
            zoom:1;
        }
        .div2{
            float: left;
            width:100px;
            height:250px;
            background: rebeccapurple;
        }
    </style>
</head>
<body>
    <div class="div1 clearfix">
        给父元素div1,加上clearfix的类,使用伪对象after,控制浮动元素的影响。
        <div class="div2">
            浮动的元素
        </div>
    </div>
</body>
</html>

执行效果如下:

技术分享

 

css 的定位,浮动和清除浮动——浅析

标签:

原文地址:http://www.cnblogs.com/wanghongde/p/5929176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!