使用vh來制作高度自適應頁面和元素垂直居中

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

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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284630.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284630.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284630.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

傳智168期JavaEE struts2杜宏 day32~day33(2017年2月15日23:27:09)

struts2學習完畢,寒假學習效率還不錯。 筆記鏈接 鏈接:http://pan.baidu.com/s/1boBJLVp 密碼:wwl4轉載于:https://www.cnblogs.com/huangtao1996/p/6403886.html

GitLab的安裝、配置、使用

前言上周去參與“中國數字經濟創新發展大會”了,然后又忙新項目的事情,博客又有一段時間沒有更新,今天周一事情比較少,立刻開始寫文,最近有挺多值得記錄的東西~進入正文,最近我們搭了個Gitlab,并…

【BIM入門實戰】Navisworks2018簡體中文安裝教程(附安裝包下載)

Navisworks是Autodesk公司開發的一款三維模型可視化軟件,它以輕量化的運行方式進行BIM成果的后期處理及整合,是一款非常實用的軟件。基于Navisworks,項目的參建方可以在施工前進行模擬施工,以達到減少返工、縮短工期、提供經濟效益的目的。 Navisworks同時支持4D和5D模擬,…

微軟 Windows11 Build 22000.71 更新(KB5004252)發布

微軟推出了一個全新的娛樂小工具。這一部件允許用戶查看 Microsoft Store 中可用的新電影和精選電影。選擇一部電影會引導用戶到 Microsoft Store 查看有關該影片的更多信息。 7 月 16 日消息 今日凌晨,微軟宣布向預覽體驗計劃用戶發布 Windows 11 Build22000.71 更…

Python入門教程之Python保留字符大全

Python中的保留字不能用作常數或變數,或任何其他標識符名稱。所有 Python 的關鍵字只包含小寫字母。 andexecnotassertfinallyorbreakforpassclassfromprintcontinueglobalraisedefifreturndelimporttryelifinwhileelseiswithexceptlambdayield轉載于:https://blog.…

Linux操作系統基礎解析之(五)——grep命令家族及正則表達式初識

grep號稱文本處理三劍客之一,雖然說是三劍客中功能最少也是最簡單的,但仍然不能小覷。 grep的全稱為:Global search REgular expression and Print out the line,即:全面查找正則表達式并將匹配的行顯示出來。 那么這…

Ubuntu16.04換源

Ubuntu16.04換源 轉載于:https://www.cnblogs.com/xielisen/p/6404607.html

【BIM入門實戰】Revit模型導入到第三方軟件方法匯總

本文以案例的方式,匯總展示了Revit模型導入到ArcGIS Pro、3ds max、Navisworks、Lumion、InfraWorks等的方法。 文章目錄 1. Revit導入ArcGIS Pro2. Revit導入3ds Max3. Revit導入Navisworks4. Revit導入Lumion5. Revit導入InfraWorks1. Revit導入ArcGIS Pro ArcGIS Pro2.8可…

Blazor University (37)JavaScript 互操作 —— JavaScript 啟動過程

原文鏈接:https://blazor-university.com/javascript-interop/javascript-boot-process/JavaScript 啟動過程在 Blazor 啟動過程中,瀏覽器將在 Blazor 初始化之前創建 HTML 文檔,這意味著從引導 HTML 引用的任何 JavaScript 都將立即加載&…

git clone出現 fatal: unable to access ‘https://github.com/...‘的解決辦法

錯誤信息: fatal: unable to access https://github.com/JackieZheng/**.git/: OpenSSL SSL_read: Connection was reset, errno 10054 清除代理即可 git config --global --unset http.proxy git config --global --unset https.proxy

時代聚焦AI安全——可解釋性

今年的NIPS多集中在人工智能安全上,此外精彩的部分還有凱特克勞福德關于人工智能公平性問題上被忽視的主題演講、ML安全研討會、以及關于“我們是否需要可解釋性?”可解釋ML討論會辯論。 值校準文件 逆向獎勵設計是為了解決RL代理根據人類設計的代理獎勵…

【BIM入門實戰】渲染器Vray for 3d max 2018圖文安裝教程

VRay是由chaosgroup和asgvis公司出品的一款高質量渲染軟件。VRay是業界最受歡迎的渲染引擎。基于V-Ray 內核開發的有VRay for 3ds max、Maya、Sketchup、Rhino等諸多版本,為不同領域的優秀3D建模軟件提供了高質量的圖片和動畫渲染。方便使用者渲染各種圖片。 Vray for 3d max …

Android--Activity四種啟動模式

launchMode在多個Activity跳轉的過程中扮演著重要的角色,它可以決定是否生成新的Activity實例,是否重用已存在的Activity實例,是否和其他Activity實例公用一個task里。這里簡單介紹一下task的概念,task是一個具有棧結構的對象&…

常用SEO優化之META標簽

之前對meta標簽的理解只有<meta charset"UTF-8">和移動端適口<meta name"viewport" content"widthdevice-width,initial-scale1.0, minimum-scale1.0, maximum-scale1.0, user-scalableno"/> 組成 meta標簽共有兩個屬性&#xff0c…

Hibernate初探

Hibernate對數據庫結構提供了較為完整的封裝&#xff0c;Hibernate的O/R Mapping實現了POJO 和數據庫表之間的映射&#xff0c;以及SQL 的自動生成和執行。程序員往往只需定義好了POJO 到數據庫表的映射關系&#xff0c;即可通過Hibernate 提供的方法完成持久層操作。程序員甚至…

【BIM入門實戰】InfraWorks2018圖文安裝教程

Autodesk InfraWorks是易于使用的草圖繪制工具,適用于土地規劃師和基礎設施設計師。AutodeskInfraWorks可以生成可視化的高級模型,而無需借助輔助,可以獨立進行建模的BIM可視化軟件。 InfraWorks2018軟件預覽: 雙擊安裝包進行安裝。 自解壓中,等待即可。 點擊【安裝】。 點…

weblogic清除緩存

清除/weblogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/cache/下的文件 &#xff1a; [rootlocalhost Middleware]# mv /weblogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/cache/* /opt/20171208/ 清除/w…

有點酷,使用 .NET MAUI 探索太空

設計 我準備用 .NET Maui 實現一個非常有意思的 "前往太空" 的程序。第一步&#xff0c;需要圖片素材&#xff0c;我使用了 Aan Ragil 的一組非常棒的 Dribbble 素材圖片。當然&#xff0c;你也可以在最下面的鏈接進行下載。實現 這個應用程序的完整源代碼可以在 G…

CSS3 動畫插件 aos.js

aos.js是一款效果超贊的頁面滾動元素動畫jQuery動畫庫插件。該動畫庫可以在頁面滾動時提供28種不同的元素動畫效果&#xff0c;以及多種easing效果。在頁面往回滾動時&#xff0c;元素會恢復到原來的狀態。 安裝 yarn add aosnext或者 npm install --save aosnextimport AOS …

nginx匯總(z)

Nginx相關文章Nginx基礎1. nginx安裝2. nginx 編譯參數詳解3. nginx安裝配置清緩存模塊安裝4. nginxPHP 5.55. nginx配置虛擬主機6. nginx location配置7. nginx root&alias文件路徑配置8. ngx_http_core_module模塊提供的變量9. nginx日志配置10. apache和nginx支…