HTML技巧篇:實現元素水平與垂直居中的幾種方式

2020-12-25 大鵬學前端

本篇文章主要給大家介紹一下如何使用html+css實現元素的水平與垂直居中效果,這也是我們網頁在編碼製作中會經常用到的問題。

1)單行文本的居中

主要實現css代碼:

水平居中:text-align:center;垂直居中:line-height:XXpx; /*line-height與元素的height的值一致*/

我們先來看這樣一個例子,加入我們這裡有一個div,寬度和高度為300px,背景顏色為黑色,然後在div中有一行簡短文字,我們只需要使用line-height:200px;就可以實現文字的居中效果,具體的代碼如下所示:

由上圖可以看出我們實現了單行文字的垂直居中效果,但是很多時候我們的文字並不知道具體有多少,可能有一行,也可能有很多行,那麼遇到多行文字的這種問題我們要如何處理呢。

2)多行文本的垂直居中

對於多行文本的垂直居中我們有很多種實現方式,我們這裡逐個的來看一下;

1、使用display:table來實現

主要實現代碼:

display: table使塊狀元素成為一個塊級表格;

display: table-cell;子元素設置成表格單元格;

vertical-align: middle;使表格內容居中顯示,即可實現垂直居中的效果;

具體的html與css的代碼就如下所示:

2、使用absolute與transform配合實現

主要實現代碼:

position:absolute; 首先給文本絕對定位;

left:50%;top:50%;transform:translate(-50%,-50%); 讓文本距離盒子左邊和上邊分別為50%,再用transform向左(上)平移它自己寬度(高度)的50%,也就達到居中效果了。

具體的html與css的代碼就如下所示:

3、使用flex實現

主要實現代碼:

display: flex;設置 display 屬性的值為 flex 將其定義為彈性容器

align-items: center;定義項目在交叉軸(縱軸)上如何對齊,垂直對齊居中

justify-content: center; 定義了項目在主軸上的對齊方式,水平對齊居中

具體的html與css的代碼就如下所示:

好了,本篇文章就給大家說到這裡,大家自己動手寫一下看能不能寫出一樣的頁面效果出來,也可以找一些類似的頁面自己練習一下。

每日金句:了解別人心裡想什麼,你才能得到自己想要的。喜歡我的文章的小夥伴記得關注一下哦,每天將為你更新最新知識。

相關焦點

  • css 垂直居中的幾種實現方式
    網上列舉的實現方式一大把,或許在這裡你都看到過,但既然來到這裡我希望這篇能讓你看有所收穫,畢竟這也是前端面試的基礎。實現方式備註:如下頁面效果中的灰色方框高度都做了限定為 100 px(即父元素)1、line-height 方式line-height 設置行高,多用於控制多行文本之間的間隔大小。但利用它的特性也可以控制垂直居中。
  • 你知道CSS實現水平垂直居中的第10種方式嗎?
    0,此時再講 margin 設為 auto,就可以在各個方向上居中了。50%,就可以做到居中了,代碼如下:/* 此處引用上面的公共代碼 *//* 此處引用上面的公共代碼 *//* 定位代碼 */.wp {    position: relative;}.box {    position: absolute;    top: 50%;    left: 50%;    transform: translate(-50%, -50%);}
  • CSS實現水平垂直居中的10種方式
    ,實則暗藏玄機,本文總結了一下CSS實現水平垂直居中的方式大概有下面這些,本文將逐一介紹一下,我將本文整理成了一個github倉庫,歡迎大家star僅居中元素定寬高適用absolute + 負marginabsolute + margin autoabsolute + calc居中元素不定寬高absolute + transform
  • CSS實現水平垂直居中的1010種方式(史上最全)
    要實現上圖的效果看似很簡單,實則暗藏玄機,本文總結了一下CSS實現水平垂直居中的方式大概有下面這些,本文將逐一介紹一下,我將本文整理成了一個github倉庫,歡迎大家star。點擊查看完整DEMOtable曾經table被用來做頁面布局,現在沒人這麼做了,但table也能夠實現水平垂直居中,但是會增加很多冗餘代碼<table>
  • css 水平居中的幾種實現方式
    網上列舉的實現方式一大把,或許在這裡你都看到過,但既然來到這裡我希望這篇能讓你看有所收穫,畢竟這也是前端面試的基礎。實現方式1、text-align 方式text-align 是入門最常用的屬性,根據字面意思是文本對齊用的。
  • 前端面試:CSS 如何實現水平居中和垂直居中
    行內元素的水平居中如果該元素是行內元素,只需設置 text-align: center; 即可實現水平居中。如圖,我們看到文本在 <textarea> 元素中實現了水平居中。,然後設置 margin-left: 負值 將元素左移自身寬度一半距離即可實現水平居中。
  • CSS垂直居中、水平居中
    👏👏👏我們先從固定寬高的div開始為方便演示,默認寬高各為100px的div<div class="wrapper"> <div class="content"></div></div>以下方式全部是水平及垂直居中
  • 23種CSS的垂直居中技巧,你都學會了嗎?
    ,而其困難度也始終沒有讓人輕鬆過,據說部分公司甚至將CSS的垂直居中技巧當成面試題,其重要性可見一斑,經過了Amos通靈了一下之後把垂直居中的寫法擴展到了23種,今天就帶著大家輕鬆的了解一下CSS的垂直居中的方式。
  • CSS垂直居中技巧,我只會23個,你會幾個?
    ~),網頁CSS的垂直居中需求始終沒有停過,而其困難度也始終沒有讓人輕鬆過,經過了每位開發先烈的研究後,據說CSS的垂直居中技巧已達到近十種之多,但始終鮮為人知,部分公司甚至將CSS的垂直居中技巧當成面試題,其重要性可見一斑,經過了Amos通靈了一下之後把垂直居中的寫法擴展到了23種,今天就讓Amos帶著大家輕鬆的了解一下CSS的垂直居中的方式吧。
  • CSS 垂直水平完全居中手冊
    為什麼實現起來這麼辛苦?所以有人被嘲笑。我覺得問題不是沒有辦法做到,只是視情況而定,有很多不同方式,但是很難弄清楚應該用何種方式。因此我寫了這篇文章,希望能把他變得容易點。水平居中內聯元素(inline or inline-*)居中?
  • CSS的23個垂直居中技巧,你都學會了嗎?
    在不斷探索,發現中,CSS的垂直居中的方式竟然能達到23種,大家可以看看自己熟知的是哪幾種?1、Line-height適用情景:單行文字垂直居中技巧這個方式應該是最多人知道的了,常見於單行文字的應用,像是按鈕這一類對象,或者是下拉框、導航此類元素最常見到的方式了。
  • 對CSS居中的一點總結
    居中的技巧有很多,但在編寫代碼的過程中,發現有時候技巧管用,有時候不管用,於是就將每個知道的方案都試一遍,找到合適的。這種情況究其原因是對居中的認識不夠深入,只是停留在實現需求的水平上。為了更好的加深對居中的理解,搜集和閱讀相關資料,發現不錯的文章將其整理出來。
  • css常見問題:塊級元素和行內元素在水平和垂直方向怎樣居中呢?
    相信大家在寫css樣式的時候會經常遇到這樣一個問題,那就是塊級元素和行內元素在水平和垂直方向怎麼居中呢?又怎麼即在水平方向居中,又在垂直方向居中呢?,咱們開始進入正題,怎麼解決水平和垂直方向居中以及即在水平方向居中,又在垂直方向居中的問題。
  • flex 多列水平居中 - CSDN
    CSS布局布局是CSS中一個重要部分,本文總結了CSS布局中的常用技巧,包括常用的水平居中、垂直居中方法,以及單列布局、多列布局的多種實現方式(包括傳統的盒模型布局和比較新的flex布局實現),希望能給需要的小夥伴帶來一些幫助。
  • 【語音解題系列】margin : auto 為什麼可以實現垂直居中?
    【語音解題系列】是前端Q公眾號的一個新嘗試,旨在通過講述的方式去說明一些知識,讓人更容易理解掌握技術點,在公眾號上更高效地學習。
  • 為什麼當高度為固定大小值時,marign:auto 0很難垂直居中元素?
    是因為塊級元素在垂直方向上不具備和水平方向同樣的特性。但這並不等於說我們就沒有辦法使用margin:auto 0讓它垂直居中。看我來我分析一下不能垂直居中的本質原因。一、理解有關CSS中包含塊的特性首先大家要對包含塊在CSS中地位要特別清楚。
  • CSS實例:水平居中和垂直居中的多種解決方案
    在定義網頁的CSS樣式的時候,我們或許並不怎麼用到垂直居中。在站長書庫(book.chinaz.com)中,大量的文章介紹了這些知識。在和別人合作的時候,你的代碼的自適應性就需要做到最大程度的好。
  • CSS技巧:解決未知高度DIV垂直居中
    【IT168 論壇採風】儘管有 CSS 的 vertical-align 特性,但是並不能有效解決未知高度的垂直居中問題(在一個 DIV 標籤裡有未知高度的文本或圖片的情況下)。
  • 公司的一個面試題:如何用CSS讓一個容器水平垂直居中?
    DOCTYPE html>   <html>      <head>          <meta charset="UTF-8">          <title>demo</title>      </head>      <body>          <style type="
  • 用CSS如何實現單行圖片與文字垂直居中
    首頁 > 教程 > 關鍵詞 > CSS最新資訊 > 正文 用CSS如何實現單行圖片與文字垂直居中