美文网首页Python程序员
解决高度塌陷、定位问题

解决高度塌陷、定位问题

作者: 叫我老村长 | 来源:发表于2018-07-11 00:47 被阅读7次

    高度塌陷

    父元素包含的子元素,子元素多高。父亲没指定,默认子元素高。
    子元素设置浮动以后,子元素脱离文档流,此时子元素无法撑起父元素的高度,导致父元素的高度塌陷
    我们可以将父元素的高度写死,避免塌陷
    元素重叠,子父一起动。

    解决高度塌陷

    面试 开启BFC
    特点
    1 设置元素浮动 缺点宽度丢失 不推荐
    2设置元素绝对定位 不推荐和1一样
    3 设置元素为inline-block 缺点宽度丢失 也不推荐
    4将元素的overflow设置为一个非visible的值 推荐


    ie6以下不执行BFC。
    (但是还有背的属性 haslayout(类似BFC))
    (只是在ie里面支持)zoom:1;后面代表放大倍数。1是默认不放大。
    所以默认这二个同时写。
    ie6设置宽度了,在服务器端就不会踏。

    清除浮动

         .box1{
             width: 100px;
             height: 100px;
             background-color: yellow;
             /*设置box1向左浮动*/
             float: left;
         }
         .box2{
             width: 200px;
             height: 200px;
             background-color: yellowgreen;
             
    

    box1影响box2上移,为了不影响浮动对当前元素产生的影响。
    clear来完成功能
    可选值:
    none,默认值,不清除浮动
    left,清除左侧浮动元素对当前元素的影响
    right,清除右侧浮动元素对当前元素的影响
    both,清除两侧浮动元素对当前元素的影响
    清除对他影响最大的那个元素的浮动

    解决高度塌陷

    可以直接在高度塌陷的父元素的最后,添加一个空白的div,由于这个div并没有浮动,所以他是可以撑开父元素的高度的

    .clear{
                clear: both;
            }
    

    可以通过after伪类向元素的最后添加一个空白的块元素,然后对其清除浮动最推荐
    after内联元素。伪类

    .clearfix:after{
                content: "";
                /*转换为一个块元素*/
                display: block;
                /*清除两侧的浮动*/
                clear: both;
            }
            /*在ie6中不支持after伪类处理*/
            .clearfix{
                zoom: 1;
            }
    
    

    相对定位

    相对定位元素,位置还有,不脱离文档流。所以块还是快,内联还是内联。position:relative。会提升一个层级。
    相对自身的位置定位。

    left: 100px;
    top: 200px;
    

    绝对定位。

    position:absolute。
    脱离文档流。
    相对于离他最近开启定位的祖先元素。都没开就是浏览器左上角。
    会提升一个层级。
    内联变块,宽高有效,块变被内容撑开。
    父元素开相对
    子元素相对于父元素开绝对。
    relative(必须有)

    固定定位

    static:默认值,元素没有开启定位
    relative:开启元素的相对定位
    absolute:开启元素的绝对定位
    fixed:开启元素的固定定位(也是绝对定位的一种)

    固定定位也是一种绝对定位,它的大部分特点都和绝对定位一样
    不同的是:
    固定定位永远相对00
    当滚动条动,他也不走。
    fixed

    homework3.png

    demo

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>homework</title>
        <style type="text/css">
    
            *{
                margin: 0;
                padding: 0;
            }
            body{
                font: 12px/1 字体
            }
            .outer{
                width: 300px ;
                /*height:471px ;*/
                /*background-color: #bfa;*/
                margin: 0 auto;
            }
            .title{
                border-top: 2px #019e8b solid;
                height:36px ;
                background-color: #f5f5f5;  
                line-height: 36px;
                padding: 0px 22px 0px 16px;
            }
    
            .title a{
                float: right;
                color: red
            }
            
            .title h3{
                font: 16px/36px '微软雅黑'
                /*改掉默认的行高*/
            }
    
            .content h3{
                margin-top: 15px;
                margin-bottom: 15px;
            }
            
            .content{
                border: 1px solid #deddd9;
                /*高考内容撑开*/
                padding: 0px 28px 0px 20px
            }
            .content li{
                margin-bottom: 15px;
            }
    
            .content a{
                color: black;
                text-decoration: none;
                font-size:12px; 
            }
    
            .content a:hover{
                color: red;
                text-decoration:underline;
            }
    
            .content ul{
                list-style: none;
                border-bottom: 1px dashed #deddd9;
            }
    
            .content .red-font{
                color: red;
                font-weight: bold;
            }
    
    
    
            .content .right{
                float: right;
            }
    
            .content .no-border{
                border: none;
            }
    
    
    
    
    
        </style>
    </head>
    <body>
        
        <div class="outer">
            <div class="title">
                <a href="#">18年面授开班计划</a>
                <h3>近期开班</h3>
                
            </div>
            <div class="content">
                <h3><a href="#">人工智能+python-高薪就业班</a></h3>
                <ul>
                    <li>
                        <a class='right' href="#"><span class="red-font">预约报名</span></a>
                        <a href="#">开班时间: <span class="red-font">2018-04-26</span></a>
                        
                    </li>
                    <li>
                        <a class='right' href="#"><span class="red-font">无座名额爆满</span></a>
                        <a href="#">开班时间: <span class="red-font">2018-04-26</span></a>
                        
                    </li>
                    <li>
                        <a class='right' href="#"><span >开班盛况</span></a>
                        <a href="#">开班时间: <span >2018-04-26</span></a>
                        
                    </li>
                    <li>
                        <a class='right' href="#"><span >开班盛况</span></a>
                        <a href="#">开班时间: <span ">2018-04-26</span></a>
                        
                    </li>
                    <li>
                        <a class='right' href="#"><span >开班盛况</span></a>
                        <a href="#">开班时间: <span >2018-04-26</span></a>
                        
                    </li>
                    
                </ul>
                <h3><a href="#">Android开发+测试-高薪就业班</a></h3>
                <ul>
                    <li>
                        <a class='right' href="#"><span class="red-font">预约报名</span></a>
                        <a href="#">开班时间: <span class="red-font">2018-04-26</span></a>
                        
                    </li>
                    
                    <li>
                        <a class='right' href="#"><span >开班盛况</span></a>
                        <a href="#">开班时间: <span >2018-04-26</span></a>
                        
                    </li>
                    <li>
                        <a class='right' href="#"><span >开班盛况</span></a>
                        <a href="#">开班时间: <span ">2018-04-26</span></a>
                        
                    </li>
                    <li>
                        <a class='right' href="#"><span >开班盛况</span></a>
                        <a href="#">开班时间: <span >2018-04-26</span></a>
                        
                    </li>
                    
                </ul>
                <h3><a href="#">大数据软件开发-青芒工作室</a></h3>
                <ul class="no-border">
                    <li>
                        <a class='right' href="#"><span class="red-font">预约报名</span></a>
                        <a href="#">开班时间: <span class="red-font">2018-04-26</span></a>
                        
                    </li>
                    
                    <li>
                        <a class='right' href="#"><span >开班盛况</span></a>
                        <a href="#">开班时间: <span ">2018-04-26</span></a>
                        
                    </li>
                    <li>
                        <a class='right' href="#"><span >开班盛况</span></a>
                        <a href="#">开班时间: <span >2018-04-26</span></a>
                        
                    </li>
                    
                </ul>
            </div>
        </div>
    
    
    
    
    
    </body>
    </html>
    

    相关文章

      网友评论

        本文标题:解决高度塌陷、定位问题

        本文链接:https://www.haomeiwen.com/subject/pxoxpftx.html