zoukankan      html  css  js  c++  java
  • CSS布局:三列布局自适应问题

    一、列布局,左右宽度固定,中间一列随浏览器窗口变化宽度

    首先考到了定位中的方法中的文档流和浮动流,然后考到了文档流和浮动流默认宽度和显示层级(我一般理解成index这种含义,或者画布中的上下层一样,浮动流会居于上层,文档流会居于下层,因此浮动流区块可能会部分遮住文档流区块,但是文档流在下面是依然存在的,只是被遮住了而已)。

    首先写出两个div,让第一个div左浮动,第二个div右浮动,第三个div直接以文档流去定位。由于第一个和第二个div是浮动流定位,所以会脱离文档流,并且第一个div会浮动到父容器区域的左边,第二个div会浮动到父容器的右边,在一排中显示。这时候第三个div由于是文档流定位的,且如果不设宽度或默认成100%,会随着浏览器窗口变化宽度的,因此前面两个浮动流区块会部分遮住此文档流区块,这时只用对此区块设置左右margin即可。

    <!DOCTYPE html>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
            <title>无标题文档</title>
            <style type='text/css'>
                * {
                    margin: 0;
                    padding: 0;
                }
                
                #left {
                    width: 100px;
                    float: left;
                    background: green;
                    height: 300px;
                    overflow: hidden;
                }
                
                #right {
                    width: 100px;
                    float: right;
                    background: red;
                    height: 300px;
                    overflow: hidden;
                }
                
                #middle {
                    margin-right: 110px;
                    margin-left: 110px;
                    height: 300px;
                    background: #ccc;
                }
            </style>
        </head>
        <body>
            <div id="left">
            </div>
            <div id="right">
            </div>
            <div id="middle">
            </div>
        </body>
    </html>

    二、三栏布局,中间栏固定宽度,左右两边自适应

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>CSS</title>
    <style type="text/css">
    body{padding:0;margin:0;}
    div{
        height:100%;
    }
    #mid {
        z-index:2;
        background-color:#eee;
        width:500px;
        margin-left:-250px;
        position:absolute;
        top:0;
        left:50%;    
    }
    #left,#right {
        z-index:1;
        position:absolute;
        top:0;
        width:50%;
    }
    #left {
        left:0;
    }
    #left .container {
        margin-right:250px;
        background-color:#bbb;
    }
    #right {
        right:0;     
    }
    #right .container {
        margin-left:250px;
        background-color:#bbb;
    }
    </style>
    </head>
    <body>
    <div id="mid">
        mid 宽度固定 : 500px
    </div>
    <div id="left">
        <div class="container">
            left 宽度自适应
        </div>
    </div>
    <div id="right">
        <div class="container">
            right 宽度自适应
        </div>
    </div>
    </body>
    </html>
  • 相关阅读:
    my15_ mysql binlog格式从mixed修改为row格式
    my14_mysql指定时间恢复之模拟从库
    my13_mysql xtrabackup备份的时间点
    必知必会的图论算法
    leetcde37. Sudoku Solver
    leetcode36. Valid Sudoku
    leetcode52. N-Queens II
    leetcode51. N-Queens
    First Missing Positive
    Maximum Gap
  • 原文地址:https://www.cnblogs.com/eaysun/p/4669458.html
Copyright © 2011-2022 走看看