• CSS布局总结(二)


    前言:今天实训课依旧很水,继续总结,今天主要补了一下布局的知识。响应式的作业还没做完...

    一、两列布局

    html部分

        <div class="parent">
            <div class="left">left</div>
            <div class="right">
                <p>right</p>
                <p>right</p>
                <p>right</p>
                <p>right</p>
                <p>right</p>
            </div>
        </div>

    总体样式(为啥粘上去这么乱的...)

    div{
          border:1px solid #444;
       }
     .parent{
          background-color: #eee;
       }
     .left{
            background-color: yellow;
       }
     .right{
            background-color: pink;
       }
    • 一列定宽,另一列自适应,两列的高度不会同时增加 
    .left{
                float: left;
                width:100px;
            }
    
            .right{
                margin-left:120px;
            }
    .parent{
                position: relative;
            }
            .left{
                position: absolute;
                width:100px;
            }
            .right{
                margin-left: 100px;
            }
    • 其中一列定宽或者不定宽都可以,另一列自适应,两列的高度不会同时增加
    .left{
                float: left;
                margin-right:20px;
            }
    
            .right{
                overflow: hidden;
            }
    • 表格布局,父元素为table,子元素为table-cell,可以同时增加高度,如果不设置宽度,两者宽度相等
    .parent{
                display: table;
                width:100%;
            }
            .left,.right{
                display: table-cell;
            }
    
            .left{
                width:100px;
            }
    • flex 两边高度会同时增加
    .parent{
                display: flex;
            }
            .left{
                width: 100px;
            }
            .right{
                flex: 1;
            }
    • 表格布局,高度会同时增加
    .parent{
                display: grid;
                grid-template-columns: 1fr 1fr;
            }

    二、三列布局

    这里主要记录两个经典布局

    主要样式

    div{
                border:1px solid #ccc;
                box-sizing: border-box;
            }
    
            .middle{
                background-color:#eee;
            }
    
            .content{
                background-color: purple;
            }
    
            .left{
                background-color: yellow;
            }
    
            .right{
                background-color: pink;
            }
    • 双飞翼布局
    <div class="container">
            <div class="middle">
                <div class="content">
                    <p>content</p>
                    <p>content</p>
                    <p>content</p>
                    <p>content</p>
                    <p>content</p>
                </div>
            </div>
            <div class="left">
                <p>left</p>
            </div>
            <div class="right">
                <p>right</p>
                <p>right</p>
                <p>right</p>
            </div>
        </div>
    <!--1. 注意div的顺序 -->
    <!--2. .middle设置100%; .middle,.left,.right都为float:left,此时它们将分别占据1、2、2 行 -->
    <!--3. 为了让.left回到第一行的最左边,则需要设置margin-left:-100%; 为了让.right回到第一行的末尾,则需要设置margin-right:-自身的宽度 -->
    <!--4. 此时三者在同一行,但是middle的内容会被遮挡住,故此时应该设置middle里面的content内容,则content设置:margin:0 right的宽度 0 left的宽度 -->

    <!--p.s. 三列布局不等高 -->
     
    .container{
                width:100%;
            }
            .middle{
                float: left;
                width:100%;
            }
            .left{
                width:200px;
                float: left;
                margin-left: -100%;
            }
    
            .right{
                width:300px;
                float: left;
                margin-left: -300px;
            }
            
            .content{
                margin: 0 300px 0 200px;
            }
    • 圣杯布局
    <div class="container">
            <div class="middle">
                <p>content</p>
                <p>content</p>
                <p>content</p>
                <p>content</p>
                <p>content</p>
            </div>
            <div class="left">
                <p>left</p>
            </div>
            <div class="right">
                <p>right</p>
                <p>right</p>
                <p>right</p>
            </div>
        </div>
    
    <!--p.s. 一开始跟双飞翼布局有点像 -->
    <!--1. 注意div的顺序 -->
    <!--2. .middle设置100%; .middle,.left,.right都为float:left,此时它们将分别占据1、2、2 行 -->
    <!--3. 为了让.left回到第一行的最左边,则需要设置margin-left:-100%; 为了让.right回到第一行的末尾,则需要设置margin-right:-自身的宽度 -->
    
    
    <!--4. 由于middle的内容被遮挡,此时是 设置container的padding:0 right的宽度 0 left的宽度-->
    <!--5 此时内部直接往中间缩,则需要这是.left{position:relative;left:-自身的宽度;}    .right{position:relative;right:-自身的宽度;-->
    .container{
                width:100%;
                padding:0 300px 0 200px;
                background-color: #7e7e7e;
            }
            .middle{
                float: left;
                width:100%;
    
            }
            .left{
                width:200px;
                float: left;
                margin-left: -100%;
                position: relative;
                left:-200px;
            }
    
            .right{
                width:300px;
                float: left;
                margin-left: -300px;
                position: relative;
                right:-300px;
            }
  • 相关阅读:
    『深度应用』NLP机器翻译深度学习实战课程·零(基础概念)
    Sorl初始
    Hadoop简介
    lucene的分词器宝典
    Lucene 更新、删除、分页操作以及IndexWriter优化
    Lucene 初步 之 HelloWorld
    lucene介绍和存储介绍
    Spring 集成rabbiatmq
    RabbitMQ 之消息确认机制(事务+Confirm)
    RabbitMQ 的路由模式 Topic模式
  • 原文地址:https://www.cnblogs.com/armouy/p/10029852.html
Copyright © 2020-2023  润新知