首页 > Web开发 > 详细

css基础知识的复习总结(二)

时间:2017-07-01 23:52:35      阅读:492      评论:0      收藏:0      [点我收藏+]

文档流、浮动、清除浮动、overflow、定位


 

1.文档流

css文档流,标准流是什么?

元素自上而下,自左而右,块元素独占一行,行内元素在一行上显示,碰到父集元素的边框换行。

技术分享                技术分享

 

2.浮动布局

技术分享

设置了浮动的元素,脱离标准流(脱标)

a)

float:  left   |   right

元素浮动之后不占据原来的位置(脱标)

让块元素在一行上显示;浮动只影响后面的元素

行内元素浮动之后转换为行内块元素。(不推荐使用)

b)浮动的作用

文本绕图,制作导航,网页布局

文本绕图案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box{
            width: 400px;
            height: 300px;
            background: #eee;
        }
        .box img{
            float: left;
            /*在img标签里面只设置宽,不设置高,图片就会等比例缩放*/
        }
    </style>
</head>
<body>
    <div class="box">
    <img src="1.png" alt="" width="200px">
    <p>蝶恋花.百尺朱楼临大道</p>
    <p>清代/王国维</p>
    <p>百尺朱楼临大道</p>
    <p>楼外轻雷</p>
    <p>不间昏和晓</p>
    <p>独倚阑干人窈窕</p>
    <p>闲中数尽行人少</p>
    <p>一霎车尘生树杪</p>
    <p>陌上楼头</p>
    <p>都向尘中老</p>
    <p>薄晚西风吹雨到</p>
    <p>明照又是伤流潦</p>
    </div>
</body>
</html>

技术分享

制作导航案例

<!DOCTYPE html>
<html>
<head>
    <title>浮动应用之制作导航</title>
    <meta charset="utf-8">
    <style type="text/css">
        body,ul,li{
            margin:0;
            padding: 0;
        }
        ul,li{
            list-style: none;
        }
        .nav{
            width: 800px;
            height: 40px;
            background: pink;
            margin: 10px auto;
            /*自动居中*/
        }
        .nav ul li{
            float: left;
        }
        .nav ul li a{
            display: inline-block;
            height: 40px;
            font: 14px/40px 微软雅黑;
            padding: 0 20px;
            text-decoration: none;
        }
        .nav ul li a:hover{
            background: #aaa;
        }

        
    </style>

</head>
<body>
    <div class="nav">
        <ul>
            <li><a href="#">深闺</a> </li>
            <li><a href="#">黛拂双蛾浅</a> </li>
            <li><a href="#">秋来愁更深</a> </li>
        </ul>

    </div>


</body>
</html>

技术分享

 

网页布局案例

<!DOCTYPE html>
<html>
<head>
    <title>浮动应用之页面布局</title>
    <meta charset="utf-8">
    <style type="text/css">
        .header,.main,.footer{
            width: 500px;
        }
        .header,.footer{
            height: 100px;
            background: #ccc;
            margin-bottom: 40px;
        }
        /*header的margin会与main的margin重合,取较大值40px*/
        /*footer只存在底部的margin,故与main之间margin为20px*/
        .main{
            height: 300px;
            background: #eee;
            margin: 20px 0;
        }
        .content{
            width: 300px;
            height: 300px;
            background: orange;
            float: left;
        }
        .sidebar{
            width: 200px;
            height: 300px;
            background: green;
            float: right;
        }
        
    </style>
</head>
<body>
    <div class="header">导航</div>
    <div class="main">
        <div class="content">内容</div>
        <div class="sidebar">下滑栏</div>
    </div>
    <div class="footer">尾部</div>

</body>
</html>

技术分享

 

3.清除浮动 ***(尚不完全清除)

当父容器没有设置高度,里面的盒子没有设置浮动的情况下会将父容器的高度撑开。一旦父容器中的盒子设置浮动,脱离标准文档流,父容器立马没有高度,下面的盒子会跑到浮动的盒子下面。出现这种情况,我们需要清除浮动。

清除浮动不是不用浮动,清除浮动产生的不利影响。

方法:

1)给父容器设置高度

2)clear: left  |  right  | both(工作里用的最多的是clear:both;)

3)给父集元素使用overflow:hidden;

4)伪元素清除浮动  推荐使用

技术分享

父容器未设置高度,子盒子设置浮动

技术分享

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .header,.main,.footer{
            width:500px;

        }
        .header,.footer{
            height: 100px;
            background: #000;
        }

        .content{
            width: 300px;
            height: 300px;
            background: orange;
            float: left;
            margin-top:-100px;

        }
        .sidebar{
            width: 190px;
            height: 300px;
            background: green;
            float: right;
        }
        .main{
            background: #eee;
            margin: 10px 0;
            /*overflow: hidden;*/

        }
        /*.clearfix:after{
            content: ".";
            display: block;
            height: 0;
            line-height: 0;
            visibility: hidden;
            clear:both;
        }
        /*兼容ie浏览器*/
        /*.clearfix{
            zoom:1;
        }*/
    </style>
</head>
<body>
    <div class="header">header</div>
    <div class="main">
        <div class="content">content</div>
        <div class="sidebar">sidebar</div>

        <!-- 额外标签法 -->
        <!-- <div style="clear:both;"></div> -->
    </div>
    <div class="footer">footer</div>
</body>
</html>

 

4.overflow属性,内容溢出元素框的时候如何显示

技术分享

 

5.定位*****

a)

position:static;  静态定位。就是按照文档流(标准流)的方式展示。

b)

绝对定位

position:absolute;

特点:

★元素使用绝对定位之后不占据原来的位置(脱标)

★元素使用绝对定位,位置是从浏览器出发。

★嵌套的盒子,父盒子没有使用定位,子盒子绝对定位,子盒子位置是从浏览器出发。

★嵌套的盒子,父盒子使用定位,子盒子绝对定位,子盒子位置是从父元素位置出发。

★给行内元素使用绝对定位之后,转换为行内块。(不推荐使用,推荐使用display:inline-block;)

技术分享

c)相对定位

position: relative;

特点:

★使用相对定位,位置从自身出发。

★还占据原来的位置。

子绝父相(父元素相对定位,子元素绝对定位)

★行内元素使用相对定位不能转行内块

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    .father{
        width: 500px;
        height: 500px;
        background: #eee;
        margin: 100px 0 0 300px;
        position: relative;
    }

        .red{
            width:100px;
            height: 100px;
        }
        .red{
            background: red;
            position: absolute;
            top: 20px;
            
            
        }
        span{
            position: relative;
            width:100px;
            height: 100px;
            background:pink;
        }
    </style>
</head>
<body>
    <div class="father">
        <div class="red"></div>
    </div>
    <span>二子乘舟,泛泛其景</span>
</body>
</html>

技术分享

 

d)固定定位

position:fixed;

特点:

★固定定位之后,不占据原来的位置(脱标)

★元素使用固定定位之后,位置从浏览器出发。

★元素使用固定定位之后,会转化为行内块(不推荐,推荐使用display:inline-block;)

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        .box,.box1{
            width: 100px;
            height: 100px;

        }
        .box{
            background: red;
            position: fixed;
            left:20px;

        }
        .box1{
            background: green;
        }


    </style>
</head>
<body>
    <div class="box"></div>
    <div class="box1"></div>
    <!-- <span class="box"></span> -->

</body>
</html>

技术分享

<!-- <div class="box"></div> -->
    <div class="box1"></div>
    <span class="box"></span>

技术分享

 

css基础知识的复习总结(二)

原文:http://www.cnblogs.com/lovely7/p/7103727.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!