• 【前端】自适应布局方法总结


    一栏固定一栏自适应

    实现代码:

    <!DOCTYPE html>
    <html>
    <head>
    	<title>自适应布局-一栏固定一栏自适应</title>
    	<meta charset="utf-8">
    	<style type="text/css">
    		*{
    			padding: 0;
    			margin: 0;
    		}
    		#left{
    			height: 600px;
    			 200px;
    			float: left;
    			background-color: #fffc00;
    		}
    		#main{
    			height: 600px;
    			 auto;
    			background-color: #03c03c;
    		}
    	</style>
    </head>
    <body>
    <div id="left">left 固定宽度</div>
    <div id="main">main 自适应宽度</div>
    </body>
    </html>
    

      

    左右两栏固定,中间自适应

    • 方法一 :使用float浮动

      自身浮动法的原理就是使用对左右使用分别使用float:left和float:right,float使左右两个元素脱离文档流,中间元素正常在正常文档流中,使用margin指定左右外边距对其进行一个定位。

    <!DOCTYPE html>
    <html>
    <head>
    	<title>自适应布局</title>
    	<meta charset="utf-8">
    	<style type="text/css">
    		*{
    			padding: 0;
    			margin: 0;
    		}
    		#container{
    			 100%;
    			margin: 0 auto;
    		}
    		#left{
    			 200px;
    			height: 600px;
    			float: left;
    			background-color: #fffc00;
    		}
    		#right{
    			 100px;
    			height: 600px;
    			float: right;
    			background-color: orange;
    		}
    		#main{
    			height: 600px;
    			margin-left: 0 100px 0 200px;
    			background-color: #03c03c;
    		}
    	</style>
    </head>
    <body>
    <div id="container">
    	<div id="left">left 200px</div>
    	<div id="right">right 100px</div>
    	<div id="main">main 自适应</div>
    </div>
    </body>
    </html>
    

      

    • 方法二:使用绝对定位

      绝对定位法原理是将左右两边使用absolute定位,因为绝对定位使其脱离文档流,后面的center会自然流动到他们上面,然后使用margin属性,留出左右元素的宽度,既可以使中间元素自适应屏幕宽度。

    <!DOCTYPE html>
    <html>
    <head>
    	<title>自适应布局</title>
    	<meta charset="utf-8">
    	<style type="text/css">
    		*{
    			padding: 0;
    			margin: 0;
    		}
    		#left{
    			 200px;
    			height: 600px;
    			position: absolute;
    			top: 0;
    			left: 0;
    			background-color: #fffc00;
    		}
    		#right{
    			 100px;
    			height: 600px;
    			position: absolute;
    			top: 0;
    			right: 0;
    			background-color: orange;
    		}
    		#main{
    			height: 600px;
    			position: absolute;
    			left: 200px;
    			right: 100px;
    			top: 0;
    			background-color: #03c03c;
    		}
    	</style>
    </head>
    <body>
    <div id="left">left 200px</div>
    <div id="right">right 100px</div>
    <div id="main">main 自适应</div>
    </body>
    </html>
    

      

    • 方法三:使用负margin(圣杯布局)

      圣杯布局的原理是margin负值法。使用圣杯布局首先需要在center元素外部包含一个div,包含div需要设置float属性使其形成一个BFC,并设置宽度,并且这个宽度要和left块的margin负值进行配合,具体原理参考这里。这里对圣杯布局解释特别详细。

    <!DOCTYPE html>
    <html>
    <head>
    	<title>自适应布局</title>
    	<meta charset="utf-8">
    	<style type="text/css">
    	*{
    		padding: 0;
    		margin: 0;
    	}
    	#wrap{
    		 100%;
    		float: left;
    	}
    	#main{
    		height: 600px;
    		margin: 0 100px 0 200px;
    		background-color: #03c03c;
    	}
    	#left{
    		 200px;
    		height: 600px;
    		float: left;
    		margin-left: -100%;
    		background-color: #fffc00;
    	}
    	#right{
    		 100px;
    		height: 600px;
    		float: left;
    		margin-left: -100px;
    		background-color: orange;
    	}
    	</style>
    </head>
    <body>
    <div id="wrap">
    	<div id="main">main 自适应</div>
    </div>
    <div id="left">left 200px</div>
    <div id="right">right 100px</div>
    </body>
    </html>
    

      

    • 方法四:使用flex(css3新特性)
    <!DOCTYPE html>
    <html>
    <head>
    	<title>自适应布局</title>
    	<meta charset="utf-8">
    	<style type="text/css">
    		*{
    			padding: 0;
    			margin: 0;
    		}
    		#container{
    			 100%;
    			display: -webkit-flex;
    			display: -moz-flex;
    			display: -ms-flex;
    			display: -o-flex;
    			display: flex;
    		}
    		#left{
    			 200px;
    			height: 600px;
    			background-color: #fffc00;
    		}
    		#main{
    			 auto;
    			height: 600px;
    			background-color: #03c03c;
    			-webkit-flex: 1;
    			-moz-flex: 1;
    			-ms-flex: 1;
    			-o-flex: 1;
    			flex: 1;
    		}
    		#right{
    			 100px;
    			height: 600px;
    			background-color: orange;
    		}
    	</style>
    </head>
    <body>
    <div id="container">
    	<div id="left">left 200px</div>
    	<div id="main">main 自适应</div>
    	<div id="right">right 100px</div>
    </div>
    </body>
    </html>
    

      

  • 相关阅读:
    何时使用Entity或DTO
    Lombok简介
    Spring Boot实现STOMP协议的WebSocket
    Java泛型构造函数
    Java 8 Comparator: 列表排序
    Spring Boot + Elastic stack 记录日志
    Sping、SpringMVC、SpringBoot的对比
    FileChannel指南
    让Spring Boot启动更快
    架构级开闭原则
  • 原文地址:https://www.cnblogs.com/dragonir/p/7744192.html
Copyright © 2020-2023  润新知