CSS中怎麼設置元素水平垂直居中?

来源:https://www.cnblogs.com/HelloWorld1626/archive/2020/03/01/12347513.html
-Advertisement-
Play Games

記錄怎麼使用text-align與vertical-align屬性設置元素在容器中垂直居中對齊。text-align與vertical-align雖然都是設置元素內部對齊方式的,但兩者的用法還是有略微不同的。在討論這兩者的用法之前,我們首先需要瞭解元素的分類。 塊元素:獨占一行、可設寬高、標準盒模型 ...


記錄怎麼使用text-align與vertical-align屬性設置元素在容器中垂直居中對齊。
text-align與vertical-align雖然都是設置元素內部對齊方式的,但兩者的用法還是有略微不同的。
在討論這兩者的用法之前,我們首先需要瞭解元素的分類。

塊元素:獨占一行、可設寬高、標準盒模型、一般當容器使用。
內聯元素:多個元素是排在一行的,當它遇到邊緣或換行符時才會換行,它的寬高我們是定義不了的,它隨內容變化。
內聯塊元素:既有塊元素特點,又有內聯元素特點。

text-align是設置元素中文字的水平對齊方式。
它的作用對象是文本,控制文本,對塊狀元素等不起效果,只能讓塊元素里的內容(例如p標簽內的文字:讓文字在p標簽內居中)相對塊元素居中

vertical-align是設置元素的垂直對齊方式。
它的作用對象是元素;它只能作用於內聯或內聯塊元素。該屬性相對基線去進行對齊的,介紹一下基線,上圖:

也就是說基線是在元素中間靠下的位置的,而使用vertical-align屬性的時候,因為它定義內聯元素本身的基線與它所在行的基線做相應對齊的,所以在設置元素相對父元素垂直居中對齊的時候,如果在父元素中只有它一個元素,是沒辦法在父元素中進行垂直居中對齊的。這時就需要一個標尺(既同級元素),讓它相對於標尺對齊來達到居中效果。
如何設置一個元素在父元素中水平垂直居中:
1.給它的父元素寫text-align屬性;
2.要居中的元素將其類型轉為inline-block;
3.要居中的元素加vertical-align屬性;
4.添加一個“標尺”,既同級元素(span等),要居中的元素與其互相垂直居中
註意在編輯時標尺與需要居中的元素之間不能有空格回車;
標尺須加:
display:inline-block;
width:0;(目的是隱藏標尺)
height:100%(與父元素等高,中線位置既是居中位置);
vertical-align:middle;


例如:讓div1-1在div1水平垂直對齊,加上背景顏色以便區分。

<div class="div1">div1
	<div class="div1-1">div2</div><span></span>
</div>

 CSS部分:

 

*{
    margin: 0;
    padding: 0;
}
.div1{
    width: 200px;
    height: 150px;
    background: blue;
    margin: 20px 20px;
    text-align: center;
}
.div1-1{
    width: 100px;
    height: 100px;
    background: red;
    display: inline-block;
    vertical-align: middle;
}
.div1 span{
    display: inline-block;
    width: 0px;
    height: 100%;
    background: #0681D0;
    vertical-align: middle; 
}

 

效果圖:

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 如何搭建自己的網頁是每個學前端伙伴不可缺少的一個過程,特意去看過很多如何搭建的教程,但都看不懂覺得很麻煩, 在慢慢的學習中接觸到githob,發現了一個大寶藏(如果一個code都不認識githob 那無疑是失敗的) 下麵就來講下如何利用githob 來搭建屬於自己的網頁 開始教程之前的準備工作: 1 ...
  • 概述 AJAX是非同步的JavaScript和XML(Asynchronous JavaScript And XML)。簡單點說,就是使用 XMLHttpRequest 對象與伺服器通信。 它可以使用JSON,XML,HTML和text文本等格式發送和接收數據。AJAX最吸引人的就是它的“非同步”特性, ...
  • video API事件 play() 可以控制視頻自動播放 但是在chrome瀏覽器中不允許自動播放,只有在設置靜音時才能允許自動播放 理由是:視頻自動播放在終端非常耗電,因此被禁止 不過chrome瀏覽器允許自動播放7s以內的視頻,然而很少有人會放7s以內的視頻,而是直接用gif <!DOCTYP ...
  • css的優先順序之前一直沒怎麼註意沒當回事,總以為對同一元素靠後的渲染會覆蓋前面的渲染,要是覆蓋不了那就來個!important嘛。直到我那在學前端基礎的後端伙伴拿一個問題問住了我,我才意識到這是重點中的重點啊!啪啪啪打臉! 優先順序關係 先來看css為元素添加樣式的幾種規則(優先順序a>b>c>d,!i ...
  • 一、使用.的方式調用對象的屬性 格式:對象名.屬性名(不帶雙引號) 註意:JS對象的屬性標準一般是不用加引號的,加也可以,加了引號時,調用的時候還是要將引號去掉的。特別的情況必須加,如果key數字或者表達式等。引號只是為了表示引號內部的內容是一個整體。 二、使用[ ]的方式調用對象的屬性 格式:對象 ...
  • video在各瀏覽器中顯示的差異 video支持的基本視頻格式:mp4 / webm / ogv <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>video</title> </head> <body> <v ...
  • 【逆戰班】 1.flex佈局 Flexible Box 模型,通常被稱為 flexbox,是一種一維的佈局模型。它給 flexbox 的子元素之間提供了強大的空間分佈和對齊能力。我們說 flexbox 是一種一維的佈局,是因為一個 flexbox 一次只能處理一個維度上的元素佈局,一行或者一列。這裡 ...
  • 兩欄佈局是寫頁面時經常用到的,要想實現兩欄佈局,就需要明白BFC規則,Block formatting context,直譯為“塊級格式化上下文”,可以簡單的理解它為一個獨立的區域,把區域內部元素與外部元素區分開,兩者互不幹擾。它的規則:1.內部元素會在垂直方向一個接一個放置。2.屬於同一個BFC的 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...