1. 程式人生 > >H5+CSS3之如何簡單的實現自適應一排兩列布局

H5+CSS3之如何簡單的實現自適應一排兩列布局

先上效果圖:

再來程式碼:

<body>
	<section>
		<ul class="box">
			<li></li>
			<li></li>
			<li></li>
			<li></li>
		</ul>
	</section>
</body>
<style>
	html,body,section{
		width: 100%;
		height: 100%;
		margin: 0;
		padding: 0;
	}
	ul,li{
		list-style: none;
		margin: 0;
		padding: 0;
		width: 100%;
	}
	.box{
		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
		justify-content:space-between;
background: darkseagreen; } .box li{ width: calc(50% - 5px); height: 100px; background:mistyrose; margin: 5px 0; } </style>

程式碼橙色部分為關鍵。運用C3的display:flex佈局。

flex-direction: row; 設定元素按主軸方向(即水平方向,起點在左端)排列。

flex-wrap: wrap;預設情況下元素都排列在主軸上(即使超出),該屬性設定元素超出換行。

justify-content:space-between;設定元素在主軸上的對齊方式,即兩端對齊,元素中間間隔相等。

程式碼中的百分比決定了專案的自適應。

無上下邊距方法:

把上文css中原來的margin:5px 0;換成margin-top:10px;

再nth-child選中前兩個li,單獨設定margin-top:0;就好啦
.box li{
	width: calc(50% - 5px);
	height: 100px;
	background:mistyrose;
	margin-top: 10px;
}
.box li:nth-child(1),.box li:nth-child(2){
	margin-top: 0;
}

無上下邊距效果圖: