久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      談?wù)凜SS實現(xiàn)水平垂直居中布局的方法

      談?wù)凜SS實現(xiàn)水平垂直居中布局的方法

      最近面試的時候,面試官問到了CSS水平垂直居中布局的方式,對于剛?cè)肭岸藳]多久的我,無疑是一臉懵逼,閑了趕緊查閱資料分析一波,給各位分享一下,避免落坑。

      首先先說明一下html和一些基礎(chǔ)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樣式在后續(xù)介紹中默認帶上,不再贅述!

      一、 absolute 和 margin auto(常用)

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

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

      二、absolute 和margin(負值)

      簡單說一下原理,利用了絕對定位,絕對定位的百分比是相對于父元素的寬高,所以我們可以根據(jù)這個原理將元素居中顯示。但是要注意:絕對定位是基于子元素的左上角來說的,但是要想讓子元素居中顯示,就要解決這個問題。
      此時可以利用margin的負值來實現(xiàn)效果,當(dāng)外邊距為負值時,元素向相反方向定位,這樣我們將子元素的外邊距設(shè)置為子元素的寬高的一半就可以實現(xiàn)了。(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 ); 		   }

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

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

      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是現(xiàn)代的布局方案僅僅需要幾行代碼即可實現(xiàn)居中效果

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

      五、line-height

      利用行內(nèi)元素居中屬性也可以做到水平垂直居中。把box設(shè)置為行內(nèi)元素,通過text-align就可以實現(xiàn)水平居中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屬性,可以把普通元素改變?yōu)閠able元素的顯示效果,也可以實現(xiàn)水平居中

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

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號