三栏布局-左右定宽,中间自适应

三栏布局-左右定宽,中间自适应

flex弹性盒子

思想:容器内的项目自动调整
只需在左右的俩个项目中调整flex-basis设置固定宽度即可

<style type="text/css">
	*{
		margin: 0;
		padding: 0;
	}		
    .con {
        width: 100%;
        height:100%;
        background: red;
        display: flex;
        display: -webkit-flex;
        /* flex-direction: row;
        justify-content: center;
        align-items: center; */
        }
       .left,.right{
        flex:0 1 300px;//属性flex-grow,flex-shrink,flex-basis简写
        height: 100px;
        background: green;
       }
       .middle{
        flex-grow: 1;
        height: 100px;
        background: black;
       }
</style>
<body>
    <div class="con">
        <div class="left">1</div> 
        <div class="middle">2</div> 
        <div class="right">3</div>
    </div>
</body>

float+margin布局

思想:左右盒子均float,左边左浮动,右边右浮动。中间文档流使用margin将其称出来。
出现问题:右边的那栏另起一行居右
解决:将中间那栏放在最后面

<style type="text/css">
	*{
		margin: 0;
		padding: 0;
	}
		
        .left{
        float:left;
        height: 100px;
        width: 300px;
        background: yellow;
        } 
       .right{
        float:right;
        height: 100px;
        width: 300px;
        background: green;
       }
       .middle{
       	margin: 0 300px;
        height: 100px;
        background: black;
       }
</style>
<body>
    <div class="con">
        <div class="left">1</div> 
     //注意顺序    
        <div class="right">3</div>
        <div class="middle">2</div>
    </div>
</body>

绝对定位布局

思想:左中右均绝对定位,外包盒子相对定位
中间盒子左右各距离左右的宽度

<style type="text/css">
	*{
		margin: 0;
		padding: 0;
	}
	.con{position: relative;}
	.left,.right,.middle{
		position: absolute;
	}
		
        .left{
        left:0;
        height: 100px;
        width: 300px;
        background: yellow;
        } 
       .right{
        right:0;
        height: 100px;
        width: 300px;
        background: green;
       }
       .middle{
       	left:300px;
       	right:300px;
        height: 100px;
        background: black;
       }
</style>
<body>
    <div class="con">
        <div class="left">1</div> 
         <div class="middle">2</div>
        <div class="right">3</div>       
    </div>
 </body>

猜你喜欢

转载自blog.csdn.net/qq_40151857/article/details/82837871