多個你不知道的 CSS 居中方案!

2022-01-24 大遷世界

文末送 5 本書

水平居中內聯元素

要使內聯元素(如連結,span 或img)居中,使用 text-align: center 足夠了。

<div class="desk">
   <span class="plate"></span>
</div>

.desk {
  text-align: center;
}

對於多個內聯元素,也可以使用text-align:center:

<div class="desk">
   <span class="plate"></span>
   <span class="plate"></span>
</div>

.desk {
  text-align: center;
}

Flexbox

使用 flexbox 也可以快速居中元素:

.desk {
  display: flex;
  justify-content: center;
}

對於多個內聯的項目,也可以正常工作:

CSS Grid

使用網格容器時,圖中的盤子將根據其網格區域居中。請注意,除非將它們包裹在一個元素中,否則這將不適用於多個盤子。

.desk {
  display: grid;
  justify-content: center;
}

塊元素Auto Margin

寬度和高度已知的塊元素可以通過設置margin-left:auto 和 margin-right:auto 居中元素。

.plate {
  width: 120px;
  height: 120px;
  margin-left: auto;
  margin-right: auto;
}

對於多個塊元素,它們應該包裝在一個元素中,然後讓這個父元素居中。

.tray {
  display: flex;
  margin-left: auto;
  margin-right: auto;
}

Flexbox

對於 flexbox 同樣也是使用   justify-content:center 來居中元素:

.desk {
  display: flex;
  justify-content: center;
}

對於多個元素,我們不需要將它們包裹在一個元素中,flexbox 可以將它們都居中。

CSS定位

通過絕對定位,我們可以輕鬆地通過CSS transform將其水平居中。

.plate {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

在已知元素寬度的情況下,可以使用負邊距代替CSS transform。

.plate {
  position: absolute;
  left: 50%;
  margin-left: -60px;
}

垂直居中內聯元素

Vertical Padding

垂直居中元素最簡單的方法之一是使用padding:

  padding-top: 24px;
  padding-bottom: 24px;
}

Vertical Align

vertical-align屬性可用於一個或多個元素。

在此示例中,叉子和刀子應與桌子垂直居中。

.desk {
  text-align: center;
}

.plate,
.fork,
.knife {
  vertical-align: middle;
}

Flexbox

為了對齊盤子,叉子和刀,我們可以使用 flexbox:

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

塊元素絕對定位

通過絕對定位元素,可以使用 CSS transform將元素垂直居中:

.plate {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

如果知道元素高度,則可以使用負邊距代替transform。

.plate {
  position: absolute;
  top: 50%;
  margin-top: -60px;
}

CSS Grid

使用CSS網格,我們可以使用align-items將項目垂直於其網格區域居中。

.desk {
  display: grid;
  align-items: center;
}

水平垂直居中內聯元素

Padding 和Text Align

.plate {
  text-align: center;
  padding-top: 24px;
  padding-bottom: 24px;
}

其他元素類型絕對定位
.plate {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);
}

Flexbox

通過 justify-content:center 和 align-items:center 就可以將元素垂直水平居中:

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

CSS Grid

通過place-items屬性就可以通過,它結合了justify-content和align-items:

.desk {
  display: grid;
  place-items: center;
}

作者:Ahmad Shadeed   譯者:前端小智  來源:ishadeed原文:https://ishadeed.com/article/learn-css-centering/


包郵送書

《HTML 5與CSS 3權威指南(第4版·下冊)》

本書是HTML 5與CSS 3領域公認的標杆之作,被讀者譽為「系統學習HTML 5與CSS 3的標準著作」,也是Web前端工程師案頭必備工作手冊。 本書上冊講解HTML 5技術,下冊全面系統地講解了CSS 3相關的各項主要技術,以CSS 3的功能和模塊結構開篇,順序講解了各種選擇器、文字與字體、盒相關樣式、背景與邊框、變形處理、動畫、布局、多媒體,以及CSS 3中的一些其他重要樣式。

福利時間

最後,我又來給大家送福利了,這麼好的書不送幾本給大家怎麼行呢?

這次準備了多種方式抽獎,「憑手氣、評論、在看」這三種方式都可以參與!感謝親愛的讀者們,你們的支持也是我持續更文最大的動力。

為了避免中獎後失聯,提前加我微信哈

憑手氣抽獎(3本)

參與方式:先掃碼添加小莉的微信(上圖)

回復暗號 666 獲取小程序抽獎碼,掃碼即可參與

開獎時間: 周三(10/14)中午12:00

留言抽獎(1本)在看抽獎(1本)

記得先添加我微信,不然我看不到哪些小夥伴點再看

大獎:隨機抽取「1位」在看同學送出一本 HTML5 與CSS3 權威指南(第4版·下冊)

相關焦點

  • CSS 垂直居中的正確打開方式
    web-css-gaoji-jichu.jpeg前言之爆錘面試官神器 - CSS無論是實際開發中,亦或者是求職面試中,css 垂直居中往往都是一個繞不開的話題,其中不乏有許多面試者在多次雙重嘗受打擊之後,而沒有一個很好的反擊點,剛好結合自己以前受的委屈和痛苦,來給大家一個錘爆面試官大佬們的機會。
  • 【常用整理】CSS布局方案大全
    我們在日常開發中經常遇到布局問題,下面羅列幾種常用的css布局方案話不多說,上代碼!
  • 你不知道的 CSS
    每個技巧將結合demo或者圖示來說明(如果demo無法打開,請自備梯子,原因你懂得🙀)。也許你此刻正在發愁的一個bug可以在這裡找到答案😆。用 ~ / + 兄弟選擇器來美化表單元素css(3)中選擇器眾多,具體可參考CSS 選擇器參考手冊。
  • 你不知道 CSS 可以做的 4 件事
    還可以使用 step-start 和 step-end 這樣的簡寫屬性,它們分別等同於 steps(1, start) 和 steps(1, end)❝很多時候我們的gif動畫都可以直接用css效果實現,快來試試吧!❞2、連字符CSS 屬性 hyphens 告知瀏覽器在換行時如何使用連字符連接單詞。
  • 50道CSS基礎面試題(附答案)
    6 如何居中div?如何居中一個浮動元素?如何讓絕對定位的div居中?第一種真正的品字:三塊高寬是確定的;上面那塊用margin: 0 auto;居中;下面兩塊用float或者inline-block不換行;用margin調整位置使他們居中。
  • 前端進階:css必知的幾個底層知識和技巧
    在介紹完問題學習法之後,進入我們今天的主題,接下來我會介紹css的一些底層的知識的現象,藉此來讓大家對css有更深入的理解。2.對於img元素,如果有css尺寸,則最終尺寸由css尺寸決定(css尺寸 > html尺寸 > 固有尺寸)3.當圖片的src屬性預設時,圖片不會有任何請求,是最高效的實現方式,如下展示的是使用此方式的圖片佔位代碼(對於firefox瀏覽器,src預設的img是一個普通的內聯元素,寬高設置無效):
  • 這裡有一些CSS中文排版技巧,值得收藏!
    文字排版 字體 我們可以使用css body 這裡注意不要設置不常用的字體,因為如果用戶本地電腦上如果沒有安裝你設置的字體,就會顯示瀏覽器默認的字體。(因為用戶是否可以看到你設置的字體樣式取決於用戶本地電腦上是否安裝你設置的字體。)
  • 組件化的css-module
    所以, 這就要求, 這些組件所需和隱藏的 css 屬性, 我們必須一個不拉的全部寫上去, 比如: display, font, text-align 等等。 # 原始的css .btn-normal{...}
  • Vertical-Align,你應該知道的一切
    而實際上,verticle-algin可以在不同上下文中靈活地對齊元素,以及進行細粒度的控制,不必知道元素的大小。元素仍然在文檔流中,因而其他元素可以根據它們大小的變化進行相應的調整。一個有用的例子就是居中圖標與旁邊的文本。Vertical-Align是個怪物可是,vertical-align有時候也很難搞,經常導致困惑。
  • 30+有用的CSS代碼片段
    在一篇文章中收集所有的CSS代碼片段幾乎是不可能的事情,但是我們這裡列出了一些相對於其他的更有用的代碼片段,不要被這些代碼的長度所嚇到
  • 網頁CSS設計樣式基礎知識點 小白教程
    屬性和屬性值之間用英文「」連接,多個鍵值對之間用英文「」進行區分。1.css樣式中的選擇器嚴格區分大小寫,屬性和屬性值不區分大小寫,但是按照規範一般「選擇器、屬性和屬性值」採用小寫的方式。2.多個屬性之間必須用英文狀態下的分號隔開,最後一個屬性後的分號可以省略,但是為了方便閱讀和添加新樣式,最好保留,養成良好的書寫習慣!3.如果屬性的值由多個英文單詞組成且中間包含空格,則必須為這個屬性值加上英文狀態下的引號。
  • DIV+CSS命名規範大全
    我們在開發CSS+DIV網頁的時候,比較困惑和糾結的事就是CSS命名,特別是新手不知道什麼地方該如何命名
  • 小程序開發之居中、視頻播放組件暫停優化、圓角、文本超出省略
    1、多行文本水平居中:利用display: table屬性#container{ width: 600px; height: 300px; border: 1px solid black; display: table;}#text{ display:
  • CSS動畫:animation、transition、transform、translate傻傻分不清
    容易混淆的幾個css屬性css屬性很多,並且有些無論是字母的拼寫還是字面上的意思,都容易混淆,比如我列出來的幾個屬性,是不是也混淆過你~屬性含義animation(動畫)用於設置動畫屬性,他是一個簡寫的屬性,包含6個屬性transition(過渡)用於設置元素的樣式過度,和animation有著類似的效果,但細節上有很大的不同transform
  • 前端複雜帶交互動畫的lottie-web方案實現
    所以在採用lottie的方案中,很多是動效本身並不帶有交互性質的,或者說是內容不變的。但對於動效本身存在交互、動效上的文字內容需要隨著狀態而變化的動畫來說,json文件層級較深,操作更改json內容是不太方便的。         那有什麼辦法能實現可帶交互的動畫lottie呢?下面將對做本次活動遇到的動畫場景及具體的動畫方案進行詳細介紹。
  • CSS中content屬性的妙用
    前言本文講解CSS中使用頻率並不高的content屬性,通過多個實用的案例,帶你由淺入深的掌握content的用法,讓代碼變得更加簡潔、高效。定義W3school中這樣定義:content 屬性與 :before 及 :after 偽元素配合使用,來插入生成內容。該屬性用於定義元素之前或之後放置的生成內容。
  • CSS各種姿勢實現Sticky Footer
    將內容部分的底部外邊距設為負數這是個比較主流的用法,把內容部分最小高度設為100%,再利用內容部分的負底部外邊距值來達到當高度不滿時,頁腳保持在窗口底部,當高度超出則隨之推出的效果。-- 頁面主體內容區域 --></div>    <div class="footer"><!
  • 【教程】html+css零基礎入門教程(九)
    在前面我們一起將HTML的基礎知識學習完了,我想你應該知道怎麼寫基礎的HTMl代碼了
  • HTML DIV+CSS 命名規範大全
    常用DIV+CSS命名大全集合,即CSS命名規則我們開發CSS+DIV網頁(Xhtml)時候,比較困惑和糾結的事就是CSS命名,特別是新手不知道什麼地方該如何命名,怎樣命名才是好的方法。7、給每一個表格和表單加上一個唯一的、結構標記 id8、給圖片加上alt 標籤,優點是在於在圖片發生錯誤時,alt 可以體現給用戶9、儘量使用英文命名原則10、儘量不縮寫,除非一看就明白的單詞下面給大家介紹常見CSS命名和DIV CSS命名方法。
  • 只用 CSS 就能做出非常漂亮的 WordPress 登錄界面
    在 WPJAM Basic 插件的樣式定製界面的文章中,我就介紹過如何使用 CSS 可以直接定義登錄界面的 logo:自定義整個 WordPress 登錄界面僅僅自定義一個 logo 是不夠的,我們想把整個登錄界面都自定義了,之前我以為要全面改造登錄界面的 HTML 結構,這樣就差不多要重寫登錄界面的功能。