亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 網頁設計 > 正文

教你如何優雅的實現垂直居中(推薦)

2024-08-30 08:33:27
字體:
來源:轉載
供稿:網友

前言

css水平垂直居中的方法有很多,本文給大家介紹的方法非常的全面詳細,分享出來供大家參考學習,下面來一起看看詳細的介紹吧。

"44年前我們就把人類送上月球了,但現在我們仍然無法在 CSS 中實現垂直居中。" --Jams Anderson

在網頁設計中,每當涉及到居中時,最重要的就是將元素及其父元素居中。聽起來很簡單,那你有沒有考慮到很多的可能性呢(⊙o⊙)?

簡單的:已知寬高的元素

如果你同時知道一個元素的寬和高,并且要將元素相對其父元素垂直居中,那么使用絕對定位來實現或許是一種比較不錯的辦法。


已知寬高的元素

main{    position: absolute;    top: calc(50% - 3em); //向上移動等于父元素高度的50%及自身高度的一半    left: calc(50% - 9em); //向左移動距離等于父元素寬度的50%及自身寬度的一半    width: 18em;    height: 6em;}

進階: 未知寬高的元素

但頁面中很多元素都是未知寬高的。


未知寬高的元素

基于絕對定位,進行擴展。

當我們在使用 translate( ) 變形函數計算百分比值時,是以這個元素自身的高度和寬度為基準來進行換算和移動的。

translate()函數可以將元素向指定的方向移動,類似于position中的relative?;蛞院唵蔚睦斫鉃?,使用translate()函數,可以把元素從原來的位置移動,而不影響在X、Y軸上的任何Web組件。

因此,只要換用基于百分比的 CSS 變形來對元素進行偏移,就不需要在編譯量中將元素的尺寸寫死了。

main{    position: absolute;    top: 50%;    left: 50%;    transform: translate( -50%, -50% );}

不適用絕對定位的情況

當我們不想使用絕對定位時,仍然可以用 translate( ) 來將這個元素以其自身寬高的一半為距離來進行移動。

可以使用 margin 來達到移動的效果。

main{    width: 18em;    padding: 13m 1.5em;    margin: 50vh auto 0; //外邊距使用 vh 為單位,因為margin的百分比值是相對于其父元素的寬度作為基準解析,因此此處使用 vh    transform: translateY( -50% );}

基于table布局

CSS table 或許是個不錯的選擇。

因為 table 并不像常規塊級元素一樣渲染。比如說當元素寬 100% 時,table 只會占據其中實際內容的寬度,而默認的塊級元素則會自動的占據父級元素的100%。

<table style="100%">    <tr>        <td style="text-align: center; vertaical-align: center">            我是垂直居中的!        </td>    </tr></table>

如果考慮到頁面語義化,可以這么做

.something-semantic {    display: table;    width: 100%;}.something-else-semantic {    display: table-cell;    text-align: center;    vertical-align: middle;}

行內塊法

我們甚至可以考慮使用偽元素。
如果我們將偽元素在父元素內占滿 100% 的高度,然后我們將偽元素以及希望垂直居中的元素同時設置 vertrcal-align: center。

然后我們就可以得到垂直居中的效果。

這是一種比較 hack 的方法。

.block {  text-align: center;  white-space: nowrap;} /* 將高度撐到100% */.block:before {  content: '';  display: inline-block;  height: 100%;  vertical-align: middle;  margin-right: -0.25em; /* Adjusts for spacing */}/* 要被垂直居中的元素,可以是任意寬高 */ .centered {  display: inline-block;  vertical-align: middle;  width: 300px;}

基于 Flexbox 的解決方案

Flexbox通常能讓我們更好的操作他的子元素布局,例如:

  • 如果元素容器沒有足夠的空間,我們無需計算每個元素的寬度,就可以設置他們在同一行;
  • 可以快速讓他們布局在一列;
  • 可以方便讓他們對齊容器的左、右、中間等;
  • 無需修改結構就可以改變他們的顯示順序;
  • 如果元素容器設置百分比和視窗大小改變,不用提心未指定元素的確切寬度而破壞布局,因為容器中的每個子元素都可以自動分配容器的寬度或高度的比例。

無疑是最佳的解決方案。因為 Flexbox 就是專門針對這類需求設計的😄

body{    display: flex;    min-height: 100vh;    margin: 0;}main{    margin: auto;}

當居中元素內部文本也需要居中時:

main{    display: flex;    align-items: center;    justify-content: center;    width:18em;    height: 10em;}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林網的支持。

參考:

  • 《 CSS 揭秘》
  • http://css-tricks.com/centering-in-the-unknown
  • CSS 變形: http://w3.org/TR/css-transforms
  • CSS 值與單位:http://w3.org/TR/css-values
  • CSS 伸縮盒模型布局:http://w3.org/TR/css-flexbox
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品中文字幕在线观看| 亚洲天堂成人在线| 色综合伊人色综合网站| 欧美日韩亚洲精品一区二区三区| 亚洲成人激情小说| 欧美视频免费在线观看| 成人免费看黄网站| 日韩av免费观影| 久久久久久久亚洲精品| 日韩视频在线免费| 久久成人免费视频| 中文字幕日韩精品有码视频| 亚洲成人av片在线观看| 国产精品中文字幕久久久| 久久精品国产亚洲精品2020| 久久天堂电影网| 亚洲欧美一区二区三区四区| 日韩精品中文字幕在线播放| 91深夜福利视频| 亚洲精品国产精品自产a区红杏吧| 伊人男人综合视频网| 亚洲精品日韩久久久| 中文字幕不卡av| 亚洲欧美日韩另类| 欧美在线亚洲一区| 欧美午夜视频在线观看| 97精品免费视频| 日韩毛片在线观看| 国产香蕉一区二区三区在线视频| 精品性高朝久久久久久久| 精品国产精品自拍| 亚洲黄色www网站| 国产精品久久久久久久久男| 97视频在线观看成人| 精品福利一区二区| 国产成+人+综合+亚洲欧美丁香花| 国产狼人综合免费视频| 91亚洲精品一区二区| 亚洲xxxx做受欧美| 亚洲欧美三级在线| 成人网页在线免费观看| 国产精品美女久久久久久免费| 中文字幕在线看视频国产欧美| 91成人精品网站| 国产精品人成电影在线观看| 国产视频精品一区二区三区| 日韩精品免费综合视频在线播放| 国产女人18毛片水18精品| 日韩欧美在线视频观看| 青青草99啪国产免费| 欧美电影在线播放| 欧美亚洲另类在线| 欧洲亚洲妇女av| 狠狠干狠狠久久| 久久久噜久噜久久综合| 亚洲成人黄色在线观看| 亚洲国产一区二区三区四区| 成人欧美一区二区三区黑人孕妇| 国产精品久久网| 国产精品日日摸夜夜添夜夜av| 欧美老少做受xxxx高潮| 色综合久久中文字幕综合网小说| 91精品啪在线观看麻豆免费| 色多多国产成人永久免费网站| 久久99精品国产99久久6尤物| 国模视频一区二区三区| 在线看日韩欧美| 91在线高清视频| 国产免费成人av| 日本韩国在线不卡| 国产欧美va欧美va香蕉在线| 欧美激情视频一区二区| 欧美激情欧美激情在线五月| 中文字幕亚洲在线| 亚洲人成在线观看网站高清| 大胆欧美人体视频| 91免费在线视频网站| 国产丝袜视频一区| 中文字幕精品久久久久| 日韩av在线天堂网| 视频一区视频二区国产精品| 欧美日韩国产二区| 国产精品黄色影片导航在线观看| 日韩va亚洲va欧洲va国产| 超碰日本道色综合久久综合| 中文字幕久精品免费视频| 国产精品入口免费视频一| 日韩av大片免费看| 91亚洲国产精品| 在线亚洲男人天堂| 97视频色精品| 欧美成人一区二区三区电影| 欧美电影院免费观看| 97精品一区二区三区| 日韩免费在线视频| 欧美做受高潮1| 91手机视频在线观看| 最新中文字幕亚洲| 俺去亚洲欧洲欧美日韩| 成人网在线观看| 国产精品久久久久国产a级| 久久69精品久久久久久国产越南| 久久久精品一区二区三区| 欧美xxxx18性欧美| 97精品国产91久久久久久| 91美女片黄在线观看游戏| 亚洲欧美第一页| 在线播放亚洲激情| 久久久精品一区二区三区| 国产精品久久久久久av下载红粉| 精品国产欧美一区二区五十路| 在线播放国产一区二区三区| 日韩欧美亚洲综合| 亚洲天堂日韩电影| 国产香蕉精品视频一区二区三区| 在线观看久久久久久| 国产精品免费久久久久久| 日韩av在线最新| 日韩免费在线免费观看| www.日韩av.com| 91免费人成网站在线观看18| 国产成+人+综合+亚洲欧美丁香花| 欧美成人精品xxx| 国产精品手机播放| 国产日产久久高清欧美一区| 国产精品久久久久国产a级| 91麻豆桃色免费看| 亚洲国产成人一区| 成人a在线视频| 性金发美女69hd大尺寸| 亚洲视频免费一区| 久久久久久久久亚洲| 亚洲视频一区二区| 中文字幕在线看视频国产欧美| 亚洲国产女人aaa毛片在线| 欧美猛少妇色xxxxx| 亚洲国产欧美一区二区丝袜黑人| 国产精品自产拍在线观| 欧美日韩国产限制| 欧美视频在线看| 亚洲国产精品悠悠久久琪琪| 亚洲18私人小影院| 国产精品久久久久久亚洲调教| 欧洲s码亚洲m码精品一区| 亚洲欧美成人精品| 国产精品网红福利| 中文字幕日韩精品在线观看| 黑人欧美xxxx| 国产精品久久久久av| 国产精品久久久久av免费| 日本精品视频网站| 亚洲精品456在线播放狼人| 欧美亚洲国产视频小说| 亚洲一区二区日本| 欧美午夜影院在线视频| 色噜噜国产精品视频一区二区| 国产一区二区三区三区在线观看| 91福利视频网| 国产精品一区二区三区成人| 亚洲欧洲在线视频| 欧美夫妻性生活xx| 精品成人乱色一区二区| 日本人成精品视频在线| 97久久精品人人澡人人爽缅北|