2.布局解决方案 一列定宽+一列自适应<4>

时间:2022-06-09
本文章向大家介绍2.布局解决方案 一列定宽+一列自适应<4>,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

第一种方案 float+margin(有bug)

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,p{
            margin: 0;
            padding: 0;
        }
        .left{
            background: yellowgreen;
            float: left;
            width: 100px;
        }
        .right{
            background: pink;
            margin-left:120px;
        }

    </style>
</head>
<body>
<div class="parent">
    <div class="left">
        <p>left</p>
    </div>
    <div class="right">
        <p>right</p>
        <p>right</p>
    </div>
</div>
</body>
</html>

第一种方案进阶版

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,p{
            margin: 0;
            padding: 0;
        }
        .left{
            background: yellowgreen;
            float: left;
            width: 100px;
        }
        .right-con{
            float: left;
            width: 100%;
            margin-left: -100px;
        }
        .right{
            background: pink;
            margin-left: 120px;
        }
    </style>
</head>
<body>
<div class="parent">
    <div class="left">
        <p>left</p>
    </div>
    <div class="right-con">
        <div class="right">
            <p>right</p>
            <p>right</p>
        </div>
    </div>
</div>
</body>
</html>

第二种方案 margin+overflow

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,p{
            margin: 0;
            padding: 0;
        }
        .left{
            background: yellowgreen;
            float: left;
            width: 100px;
        }
        .right{
           margin-left: 120px;
           background: pink;
           overflow: hidden;
            /*不被浮动影响*/
        }
    </style>
</head>
<body>
<div class="parent">
    <div class="left">
        <p>left</p>
    </div>
    <div class="right">
         <p>right</p>
         <p>right</p>
    </div>
</div>
</body>
</html>

第三种方案 display:table

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,p{
            margin: 0;
            padding: 0;
        }
        .parent{
            display: table;
            width: 100%;
        }
        .left{
            display: table-cell;
            width: 100px;
            padding-right: 20px;
        }
        .left p{
            background: yellowgreen;
        }
        .right{
           background: pink;
           display: table-cell;
        }
    </style>
</head>
<body>
<div class="parent">
    <div class="left">
        <p>left</p>
    </div>
    <div class="right">
         <p>right</p>
         <p>right</p>
    </div>
</div>
</body>
</html>

第四种方案 display:flex

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style>
        body,p{
            margin: 0;
            padding: 0;
        }
        .parent{
          display: flex;
        }
        .left{
            background: yellowgreen;
           width: 100px;
        }
        .right{
            background: pink;
            flex: 1;
            margin-left: 20px;
        }
    </style>
</head>
<body>
<div class="parent">
    <div class="left">
        <p>left</p>
    </div>
    <div class="right">
         <p>right</p>
         <p>right</p>
    </div>
</div>
</body>
</html>