zoukankan      html  css  js  c++  java
  • CSS布局方式

    1.内边距 padding

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
        <style>
        *{
            margin:0px;
        }
            .div1{
                width:100px;
                height:100px;
                background-color:red;
                padding:10px;/*内边距以内容为目标,距离边框的距离,盒子会被撑大*/
                //如果没有给出left-top-right-bottom,默认为全部都是这个边距
                }
    
        </style>
    
    <body>
    
        <div class="div1"></div>
    
    </body>    

    2.外边距 margin

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
        <style>
        *{
            margin:0px;
        }
            .div2{
                width:100px;
                height:100px;
                background-color:green;
                border:2px solid yellow;
    //Border:围绕在内边距和内容外的边框
     margin-top:40px;
    //
    margin:用于控制元素与元素之间的距离;margin最基本的用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的
    }
        </style>
    
    <body>
        <div class="div2"></div>
    <!--margin collaspe   边境坍陷或者说边境重叠
    外边距的重叠只产生在普通流文档的上下边距之间,这个看起来有点奇怪的规则,其实有其现实意义,设想
    当我们上下排列一系列规则的块及元素,(如段落 p时)那么块元素之间因为外边距重叠的存在,段落之间就不会产生双倍的距离

    1.兄弟div:上面的margin-bottom和下面的div的margin-top会塌陷,也就是会取上下两者margin里最大值作为显示值

    2.父子div: 如果父级div中没有border,padding,inline content,子级的div会一直向上找,
    直到找到某个标签包括border padding inline content 中的其中一个,然后按此div进行margin
    -->
    </body>

    </html>

    3.浮动 float

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
    
            .continer{
            border:1px solid red;
            width:300px;
        }
    
        .div1{
            width:100px;
            height:200px;
            background-color:yellow;
            float:left;
        }
    
        .div2{
            width:100px;
            height:200px;
            background-color:green;
            float:right;//浮动脱离文档流,后面的元素会填充进来,如果前面的元素也为浮动元素,会停在浮动元素后面
    
        }
    
        .div3{
            clear:both;
        }
    
    
        .div4{
            background-color:blue;
        }
    
        .clearfix:after{
            content:"";
            display:block;
            clear:both;/*清除左右浮动*/
        }
    
    
        </style>
    
    
    </head>
    <body>
    
    <div class="continer clearfix">
    
        <div class="div1">box1</div>
        <div class="div2">box2</div>
        <!--<div class="div3"></div>-->
    </div>
    <div class="div4">box4</div>
    
    </body>
    </html>

    4.定位 position

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>定位属性</title>
        <style>
    
        *{
            margin:0px;
        }
    
        .div1{
            width:200px;
            height:100px;
            background-color:yellow;
    
        }
    
        .div2{
            width:200px;
            height:100px;
            background-color:green;
    
            position:absolute;/*绝对定位脱离文档流,相对于已定位的祖先元素,如果祖先元素没有定位则相对于body元素*/
    
            /*position:relative;*//*相对定位,相对于自己原来的位置进行重新定位,不脱离文档流*/
            left:100px;
            top:100px;
        }
    
        .div3{
             width:100px;
             height:200px;
             background-color:red
        }
    
    
        .div4{
            width:200px;
            height:200px;
            background-color:blue;
        }
    
        .return{
            width:80px;
            height:80px;
            position:fixed;/*已窗口为参考点,固定定位*/
            bottom:50px;
            right:5px;
            color:green;
            text-align:center;
            line-height:80px;
            background-color:blue;
        }
    
        </style>
    </head>
    <body>
    
    <div class="continer clearfix">
    
        <div class="div1">box1</div>
        <div class="div2">box2</div>
        <div class="div3">box3</div>
        <div class="div4">box4</div>
    
    </div>
    <div style="height:2000px;background-color:pink"></div>
    
    <div class="return">返回顶部</div>
    
    <!--仅使用margin属性布局绝对定位:margin-bottom,margin-right的值不再对文档流产生影响,因为元素已经脱离文档流
    不管他的祖先元素有没有定位,都是以文档流中原来的位置偏移参照物-->
    
    </body>
    </html>

    5.display属性

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            div{
                width:50px;
                height:50px;
                background-color:yellow;
               /* display:inline;*/
            }
    
            p{
                width:50px;
                height:50px;
                background-color:red;
               /*display:inline*/
            }
    
            span{
                width:50px;
                height:50px;
                background-color:blue;
                display:inline-block;
            }
    
            a{
                width:50px;
                height:50px;
                background-color:green;
                            display:inline-block;
    
            }
        </style>
    
    
    </head>
    <body>
    
    <div>div1</div>
    <p>123</p>
    
    <span>spannnnn</span>
    <a href="#">abcaaaaa</a>
    
    </body>
    </html>
    如果我失败了,至少我尝试过,不会因为痛失机会而后悔
  • 相关阅读:
    【Vue】 computed和watch的区别
    【总结】html5新增标签以及css3新增属性
    【前端经典面试题】前后端分离(说一说你理解的前后端分离?)
    【前端面试CSS】—垂直水平居中终极版
    【CSS】清浮动的常用四种方法
    【前端面试CSS】——盒子模型(标准模型和怪异模型)
    【JavaScript】JS常用的方法总结(不定期更新中)
    【Cordova】开发app遇到的坑之 按两次返回键退出程序
    【JavaScript】深拷贝和浅拷贝的总结(含义、区别及实现)
    【vue】路由传参的三种方式
  • 原文地址:https://www.cnblogs.com/tangcode/p/11981843.html
Copyright © 2011-2022 走看看