【前端】自適應布局方法總結


一欄固定一欄自適應

實現代碼:

<!DOCTYPE html>
<html>
<head>
	<title>自適應布局-一欄固定一欄自適應</title>
	<meta charset="utf-8">
	<style type="text/css">
		*{
			padding: 0;
			margin: 0;
		}
		#left{
			height: 600px;
			width: 200px;
			float: left;
			background-color: #fffc00;
		}
		#main{
			height: 600px;
			width: 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{
			width: 100%;
			margin: 0 auto;
		}
		#left{
			width: 200px;
			height: 600px;
			float: left;
			background-color: #fffc00;
		}
		#right{
			width: 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{
			width: 200px;
			height: 600px;
			position: absolute;
			top: 0;
			left: 0;
			background-color: #fffc00;
		}
		#right{
			width: 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{
		width: 100%;
		float: left;
	}
	#main{
		height: 600px;
		margin: 0 100px 0 200px;
		background-color: #03c03c;
	}
	#left{
		width: 200px;
		height: 600px;
		float: left;
		margin-left: -100%;
		background-color: #fffc00;
	}
	#right{
		width: 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{
			width: 100%;
			display: -webkit-flex;
			display: -moz-flex;
			display: -ms-flex;
			display: -o-flex;
			display: flex;
		}
		#left{
			width: 200px;
			height: 600px;
			background-color: #fffc00;
		}
		#main{
			width: auto;
			height: 600px;
			background-color: #03c03c;
			-webkit-flex: 1;
			-moz-flex: 1;
			-ms-flex: 1;
			-o-flex: 1;
			flex: 1;
		}
		#right{
			width: 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>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM