日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用vh来制作高度自适应页面和元素垂直居中

發布時間:2023/12/9 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用vh来制作高度自适应页面和元素垂直居中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

vh單位

vh是CSS3中的一個長度單位,其值為:100vh == 視窗高度。即如果窗口高度為500px,那么 1vh == 5px。具體的值會隨著瀏覽器視窗高度的改變而實時改變,因此可以利用這個單位來制作高度自適應的頁面。

兼容舊的瀏覽器

IE9+的瀏覽器支持vh單位,其他的瀏覽器支持程度可以參考caniuse vh?,對于IE8等瀏覽器可以嘗試定義:

html,body{height:100%; }

再在需要自使用高度的元素上使用百分比來代替vh以達到類似的效果。如:

#div1{height:50%;//代替height:50vh;#div1為body的子節點 }

最小高度限制

在實際的應用中,我們往往不想讓一個頁面元素的高度過小,以免其無法容納某些關鍵元素,此時我們需要對這個元素加一個最小高度限制。如:

#div1{height:50vh;min-height:100px; }

以上代碼中,#div1元素的高度為50vh,即視窗高度的50%,但其最小高度為100px。即使實際的視窗高度小于200px,這個元素的高度也不會小于100px。

僅僅設置一個最小高度往往是不夠的,有時候需要利用line-height==height來實現元素的垂直居中,或者使用border來畫一個與父節點齊高的三角形的時候就會出現問題,因為line-height和border-width均不支持設定最小值的限制。

此時,可以在視窗高度小于某個值時,向body元素添加一個類,如:fixVH,然后根據這個類設置一個固定的line-height或border-width。如:

.fixVH #div1{line-height:300px; } .fixVH #div1:before{border-width:150px; }

可以查看一個具體的例子。

元素的垂直居中

上文提到使用line-height==height來垂直居中元素,另外還可以使用display:table-cell來垂直居中元素,這個方式不需要指定父元素line-height。

指定父元素display:table;子元素:display:table-cell;vertical-align:middle;如:

#div2{width:100%;height:20vh;min-height:100px;display:table;background-color:#cecece; } #div2>div{display:table-cell;vertical-align:middle; }

轉載于:https://my.oschina.net/hwxn/blog/679389

總結

以上是生活随笔為你收集整理的使用vh来制作高度自适应页面和元素垂直居中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。