91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CSS如何實現水平垂直居中布局

發布時間:2020-08-04 09:12:36 來源:億速云 閱讀:180 作者:Leah 欄目:web開發

本篇文章為大家展示了CSS如何實現水平垂直居中布局,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

html

<body>
		<div class="div1">
			<div class="box  size">垂直水平居中</div>
		</div>
	</body>

公共css代碼如下

<style type="text/css">
			/* 公共樣式 */
			.div1{
				width: 300px;
				height: 300px;
				border:1px solid aqua;
				
			}
			.box{
				background: #00FFFF;
			}
			.box.size{
				width:100px;
				height:100px;
			}
</style>

這些css樣式在后續介紹中默認帶上,不再贅述!

一、 absolute 和 margin auto(常用)

同樣居中元素的寬高必須固定,并且需要得知子元素的寬高
這種方式通過設置各個方向的距離都是0,此時再將margin設為auto,就可以在各個方向上居中了

.div1{
				position: relative;
			}
			.box{
				position: absolute;
				top:0;
				left: 0;
				right: 0;
				bottom: 0;
				
				margin: auto;
			}

二、absolute 和margin(負值)

簡單說一下原理,利用了絕對定位,絕對定位的百分比是相對于父元素的寬高,所以我們可以根據這個原理將元素居中顯示。但是要注意:絕對定位是基于子元素的左上角來說的,但是要想讓子元素居中顯示,就要解決這個問題。
此時可以利用margin的負值來實現效果,當外邊距為負值時,元素向相反方向定位,這樣我們將子元素的外邊距設置為子元素的寬高的一半就可以實現了。(PS:缺點就是必須得到子元素的寬高)

.div1{
				position: relative;
			}
			.box{
				top: 50%;
				left: 50%;
				position: absolute;
				margin-top: -50px;
				margin-left: -50px;
			}

三、absolute 和 calc

同樣需要子元素的寬高固定,并知道寬高,css3具有計算屬性。
top的百分比是基于元素左上角減去寬度的一半即可(PS:依賴calc的兼容性)

.div1{
			   position: relative;
		   }
		   .box{
			   position: absolute;
			   top: calc(50% - 50px ); 
				/* 減號前后沒有空格,該樣式不生效*/
			   left: calc(50% - 50px );
		   }

當我在寫這段代碼的時候,發現一個有趣的事情,calc(50%-50px)如果減號前后沒有空格的話,樣式就不會生效,寫上空格的話,就會正常生效了,具體原因我也不太清楚emmmmm

下面的方法將不需要知曉子元素的寬高即可設置

html修改為:

<body>
		<div class="div1">
			<div class="box">水平垂直居中,不需要子元素固定寬高</div>
		</div>
	</body>

公共css如下

	.div1{
				width: 300px;
				height: 300px;
				border: 1px solid red;
			}
			.box{
				background: #00FFFF;
			}

四、flex(常用)

flex是現代的布局方案僅僅需要幾行代碼即可實現居中效果

.div1{
				display: flex;
				justify-content: center;
				align-items: center;
			}			

五、line-height

利用行內元素居中屬性也可以做到水平垂直居中。把box設置為行內元素,通過text-align就可以實現水平居中vertical-align 也可以在垂直方向做到居中(PS:這種方法需要在子元素中將文字顯示重置為想要的效果)

          .div1{
				line-height: 300px;
				text-align: center;
				font-size: 0px;
			}
			.box{
				font-size: 10px;
				display: inline-block;
				vertical-align: middle;
				line-height:initial;
				/* 修正文字 */
			 	text-align: left;
	        }

六、absolute 和 transform

不需要子元素寬高固定,但是依賴于translate2d的兼容性

           .div1{
				position: relative;
			}
			.box{
				position: absolute;
				top: 50%;
				left: 50%;
				transform: translate(-50%,-50%);
			}

七、css-table

css新增的table屬性,可以把普通元素改變為table元素的顯示效果,也可以實現水平居中

           .div1{
				display:table-cell;
				text-align: center;
				vertical-align: middle;
			}
			.box{
				display:inline-block;
			}

以上就是我總結的一些居中布局的方法了,還有什么其他的歡迎補充!

個人感覺: 我比較喜歡 absolute +margin auto   、flex、absolute 和 transform,移動端最好用flex吧,pc端我喜歡absolute +margin auto

上述內容就是CSS如何實現水平垂直居中布局,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

五台县| 大石桥市| 锡林浩特市| 大城县| 大渡口区| 黄浦区| 遂宁市| 福海县| 无棣县| 达尔| 彰化市| 洪洞县| 天气| 兰溪市| 东台市| 东乌珠穆沁旗| 淳安县| 太谷县| 陈巴尔虎旗| 江达县| 大姚县| 菏泽市| 云林县| 长丰县| 贵阳市| 乡宁县| 上蔡县| 左云县| 台州市| 江安县| 开原市| 开远市| 忻州市| 铜鼓县| 兴仁县| 富民县| 玛沁县| 太谷县| 神池县| 麟游县| 莱西市|