• 几种常见的三列布局,中间自适应,两边定宽


    在这里,介绍几种我所了解到的几种三列布局。实现的方法分别是:

    1. 两边绝对定位,中间设置margin-left和margin-right。

    2. 两边分别左右浮动,中间设置margin-left和margin-right。

    3. 圣杯布局。

    4. 双飞翼布局。

    5. BFC布局,左边左浮动,设置margin-right:120px, 右边右浮动,设置margin-left:120px,设置中间部分:overflow: hidden, 形成BFC。

    6. flex,这里就没有单独介绍了。

    看代码:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<title></title>
    	<style>
    
    		.clearfix:after {
    			content: '';
    			display: block;
    			clear: both;
    		}
    		.container {
    			 100%;
    			margin-bottom: 20px;
    		}
    		.main {
    			height: 200px;
    			background: red;
    		}
    		.left, .right {
    			 100px;
    			height: 200px;
    			background: #999;
    		}
    
    		/*绝对定位*/
    		.absolute {
    			position: relative;
    		}
    		.absolute .left {
    			position: absolute;
    			left: 0;
    			top: 0;
    		}
    		.absolute .right {
    			position: absolute;
    			right: 0;
    			top: 0;
    		}
    		.absolute .main {
    			margin-left: 120px;
    			margin-right: 120px;
    		}
    
    		/*浮动定位*/
    		.float .left {
    			float: left;
    		}
    
    		.float .right {
    			float: right;
    		}
    		
    		.float .main {
    			margin-left: 120px;
    			margin-right: 120px;
    		}
    
    		/*圣杯布局*/
    		.shengbei .main, .shengbei .left, .shengbei .right {
    			float: left;
    		}
    
    		.shengbei .left {
    			margin-left: -100%;
    			position: relative;
    			left: -120px;
    		}
    
    		.shengbei .right {
    			margin-left: -100px;
    			position: relative;
    			right: -120px;
    		}
    
    		.shengbei .main {
    			 100%;
    		}
    		
    		/*这里用了box-sizing, 兼容性不是很好*/
    		.shengbei.clearfix {
    			box-sizing: border-box;
    			padding-left: 120px;
    			padding-right: 120px;
    		}
    
    		..clearfix::after {
    			content: '';
    			display: block;
    			clear: both;
    		}
    
    
    		/*双飞翼布局*/
    		.fly .main {
    			 100%;
    			background: #fff !important;
    		}
    		.fly .main, .fly .left, .fly .right {
    			float: left;
    		}	
    		.fly .left {
    			margin-left: -100%;
    		}
    		.fly .right {
    			margin-left: -100px;
    		}
    		.fly .main .inner {
    			margin-left: 120px;
    			margin-right: 120px;
    			background: red;
    			height: 200px;
    		}
    
    		/*bfc布局*/
    		.bfc .left {
    			float: left;
    			margin-right: 20px;
    		}
    
    		.bfc .right {
    			float: right;
    			margin-left: 20px;
    		}
    		
    		.bfc .main {
    			overflow: hidden;
    		}
    
    	</style>
    </head>
    <body>
    	<div class="container absolute">
    		<div class="left"></div>
    		<div class="main">absolute</div>
    		<div class="right"></div>
    	</div>
    
    	<div class="container float">
    		<div class="left"></div>
    		<div class="right"></div>
    		<div class="main">float: 因为浮动脱离了文档流,所以将main放在最后。</div>
    	</div>
    	
    	<div class="container shengbei clearfix">
    		<div class="main">圣杯布局,main放在最前面,最开始渲染</div>
    		<div class="left">left</div>
    		<div class="right">right</div>
    	</div>
    
    	<div class="container fly clearfix">
    		<div class="main">
    			<div class="inner">
    				双飞翼布局: 注意取消main的背景颜色,设置inner的颜色和高度。
    			</div>
    		</div>
    		<div class="left"></div>
    		<div class="right"></div>
    	</div>
    
    	<div class="container bfc">
    		<div class="left">margin-right: 20px;</div>
    		<div class="right">margin-left: 20px;</div>
    		<div class="main">bfc布局: overflow: hidden;</div>
    	</div>
    
    </body>
    </html>
    
  • 相关阅读:
    黑马java课程2222
    屏幕亮度软件和一些自己必用的软件设置
    ahk保存
    天天洗一次澡还真是好方法
    自动化测试 就这两张图
    python __init__.py用途
    bash检查文件格式
    cygwin中运行命令提示command not found的解决方法
    Python批量插入SQL Server数据库
    怎样去掉FireFox的导入向导
  • 原文地址:https://www.cnblogs.com/yzfdjzwl/p/6552287.html
Copyright © 2020-2023  润新知