【前端】這可能是你看過最全的css居中解決方案了~

1.水平居中:行內元素解決方案

適用元素:文字,鏈接,及其其它inline或者inline-*類型元素(inline-block,inline-table,inline-flex)

html部分代碼:<div>文字元素</div><nav><a href="">鏈接元素01</a><a href="">鏈接元素02</a><a href="">鏈接元素03</a></nav>css部分代碼:nav, div{text-align: center;}
/*
解決方案:
將inline元素包裹在一個display屬性為block的父級元素中(如,div, nav)
設置這個父級元素屬性: text-align:center即可
*//* 現在大家可以看到nav和div中的子元素水平居中了 */

2. 水平居中:塊狀元素解決方案

對于塊狀元素(display:block)來說,我們需要將它的左右外邊距(即,margin-left,margin-right)設置為auto,即可實現塊狀元素的居中,如下:

 html部分代碼:<div class="center">水平居中的塊狀元素</div><p class="center">水平居中的塊狀元素</p>css部分代碼:
/*
注意:需要居中的塊元素需要有固定的寬度,否則無法實現居中,因為占據100%寬度
*/
div,p {width: 200px; /* 這里需要設置元素寬度 */height: 150px;background: #222;color: #FFF;
}
/* 定義居中關鍵屬性 */
.center{/* 這里可以設置頂端外邊距 */margin: 10px auto;
}
/* 現在大家可以看到居中效果的塊狀元素了 */

3.水平居中:多個塊狀元素解決方案

如果頁面里有多個塊狀元素需要水平排列居中,可以將元素的display屬性設置為inline-block,并且把父元素的text-align屬性設置為center即可實現。

 html部分代碼:<div class="center">水平居中的塊狀元素</div><div class="center">水平居中的塊狀元素</div><!--
現在大家可以看到以上兩個塊狀元素水平橫向排列并且居中
提示:如果需要將以上兩個元素垂直排列居中的話,使用上一節的margin: 0 auto;即可實現
-->css部分代碼:
/*
解決方案:
設置這幾個塊狀的元素display屬性為inline-block,并且設置父元素text-align屬性為center即可
*/
.center{display:inline-block;
}
body{text-align:center;
}
/* 元素美化 */
div{width: 100px;background: #222;height: 50px;color: #FFF;padding: 10px;
}

4.水平居中:多個塊狀元素解決方案 (使用flexbox布局實現)

使用flexbox布局,只需要把待處理的塊狀元素的父元素添加屬性display:flex及justify-content:center即可

 html部分代碼:<div>水平居中的塊狀元素</div>
<div>水平居中的塊狀元素</div>css部分代碼:解決方案:
設置需要水平居中的塊狀元素的父元素display為flex ,并且justify-content屬性為center即可body{display: flex;justify-content: center;
}
/* 頁面美化元素 */
div{width: 100px;background: #222;height: 50px;color: #FFF;padding: 10px;margin: 10px;
}

5. 垂直居中:單行的行內元素解決方案

當一個行內元素,即inline,inline-*類型的元素需要居中的話,可以將它的height和line-height同時設置為父元素的高度即可實現垂直居中效果。

 html部分代碼:<div id="container"><a href="#">hello, gbtags.com</a></div>css部分代碼:解決方案:將inline元素的高度和line-height設備為一致即可
#container{background: #222;height: 200px;
}
/*  以下代碼中,將a元素的height和line-height設置的和父元素一樣高度即可實現垂直居中 */
a{height: 200px;line-height:200px;  color: #FFF;
}

6.垂直居中:多行的行內元素解決方案

組合使用display:table-cell和vertical-align:middle屬性來定義需要居中的元素的父容器元素生成效果,如下:

 html部分代碼:<div class="container"><a href="#">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Reiciendis blanditiis optio accusamus quia sapiente at labore consectetur in quasi veritatis possimus quod nihil aliquam vero saepe rem quas. Ratione eligendi!</a>
</div>css部分代碼:
解決方案:
使用display:table-cell和vertical-align來控制元素的居中效果
.container{background: #222;width: 300px;height: 300px;/* 以下屬性垂直居中 */display: table-cell;vertical-align:middle;
}
a{color:#FFF;
}

7. 垂直居中:已知高度的塊狀元素解決方案

html代碼:<div class="item">
</div>css代碼:解決方案:將待居中元素設置為絕對定位,并且設置margin-top為居中元素高度一半的負值
div{width: 100px;height: 100px;background: #222
}
/* 以下為居中代碼 */
.item{top: 50%;margin-top: -50px;position: absolute;padding:0;
}
/* 現在可以看到這個元素垂直居中了,如果元素有padding設置,請自己相對計算一下margin-top值 */

8.垂直居中:未知高度的塊狀元素解決方案

對于無法知道高度的元素,使用transform屬性來垂直移動來實現垂直居中:

html代碼:<div class="item">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Amet sint repellendus ab aut quisquam eligendi est in deleniti.
</div>css代碼:
解決方案:
因為無法指定margin-top的偏移量,所以這里使用transform屬性,垂直移動-50%即可
div{width: 150px;background: #222;color: #FFF;
}
/* 元素垂直居中代碼 */
.item{top: 50%;position: absolute;transform: translateY(-50%); /* 這里我們使用css3的transform來達到類似效果 */
}

9. 水平垂直居中:已知高度和寬度的元素解決方案

html代碼:<div class="item">
</div>
css代碼:解決方案:
將設置元素絕對定位,并且設置margin-left和margin-right為居中元素(高度或寬度/2)的負值即可
div{width: 150px;height: 150px;background: #222;color: #FFF;
}
.item{position: absolute;top: 50%;left: 50%;margin-top: -75px;margin-left: -75px;
}
/* 以上代碼即可保證一個已知高度和寬度的元素水平垂直都居中 */

10.水平垂直居中:未知高度和寬度元素解決方案

html代碼:<div class="item">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Cupiditate nostrum quaerat debitis.
</div>css代碼:解決方案:將設置元素絕對定位,并且設置transform的translate為X,Y軸同時移動-50%即可
div{background: #222;color: #FFF;
}
/* 以下代碼保證元素在水平和垂直方向上絕對居中 */
.item{position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}

11.水平垂直居中:使用flex布局實現

 html代碼:<div class="parent"><div class="item"></div>
</div>css代碼:解決方案:設置flex布局,并且定義居中元素的父元素justify-content和align-items屬性為center即可
/* 子元素CSS */
.item{background: #222;color: #FFF;width: 100px;height: 100px;
}
.parent{display: flex;justify-content:center;align-items: center;/* 注意這里需要設置高度來查看垂直居中效果 */background: #AAA;height: 300px;
}

注:以上資源整理自極客標簽學習文檔,推薦大家學習使用

附上網址:http://www.gbtags.com           

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

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

相關文章

java手機一款三國游戲_JAVA熱游—富甲三國之雄霸天下原創心得

因為工作忙碌的關系&#xff0c;很長時間都沒有來關注手機游戲論壇&#xff0c;這款富甲三國.雄霸天下&#xff0c;我也是前天才拿到手。游戲比想象中的簡單&#xff0c;個人僅用了兩個小時時間&#xff0c;就將三個人物全部通關。游戲的開始畫面制作得比較精美&#xff0c;而且…

Python多線程--互斥鎖、死鎖

1、互斥鎖 為解決資源搶奪問題&#xff0c;使用mutex Threading.Lock()創建鎖&#xff0c;使用mutex.acquire()鎖定&#xff0c;使用mutex.release()釋放鎖。 代碼一&#xff1a; import threading import time# 定義一個全局變量 g_num 0def test1(num):global g_num# 上鎖…

freemind 要下載java_Freemind

動手編輯先按Ctrln&#xff0c;新建一個文件。這時出現了一個根節點。用光標單擊它&#xff0c;改成“我學FreeMind”&#xff0c;然后在節點之外任一地方點擊鼠標(或按Enter)完成編輯。然后&#xff0c;按Insert鍵&#xff0c;輸入“下載安裝”&#xff0c;按Enter鍵&#xff…

本地連不上遠程mysql數據庫(2)

Host is not allowed to connect to this MySQL server解決方法 今天在ubuntu上面裝完MySQL&#xff0c;卻發現在本地登錄可以&#xff0c;但是遠程登錄卻報錯Host is not allowed to connect to this MySQL server,找了半天試了網上的一些方法都沒有解決&#xff0c;最終在一篇…

理解EnterCriticalSection 臨界區

通俗解釋就像上廁所&#xff1a; 門鎖了&#xff0c;就等著&#xff0c;等到別人出來了&#xff0c;進去鎖上&#xff0c;然后該干什么干什么&#xff0c;干完了&#xff0c;把門打開 門沒鎖&#xff0c;就進去&#xff0c;鎖上&#xff0c;然后該干什么干什么&#xff0c;干…

Python多線程--UDP聊天器

import socket import threadingdef recv_msg(udp_socket):"""接收數據并顯示"""# 接收數據while True:recv_data udp_socket.recvfrom(1024)print(recv_data)def send_msg(udp_socket, dest_ip, dest_port):"""發送數據"&…

mvc:default-servlet-handler/作用

<mvc:default-servlet-handler/>使用默認的servlet來相應靜態文件&#xff0c;因為在web.xml中使用了DispatcherServlet截獲所有的請求url&#xff0c;而引入<scprit type"text/javascript" src"js/jquery-1.11.0.mim.js"/>的時候&#xff0c;…

java中如何做模糊查詢_到底Java里的模糊查詢語句該怎么寫

該樓層疑似違規已被系統折疊 隱藏此樓查看此樓現在String sql"select * from car where carName like %?%";可以查詢出結果了&#xff0c;但問題又來了&#xff0c;只能查詢出一條結果&#xff0c;代碼如下carDao.java頁面public ArrayList queryAppoint(String car…

vector 、map 、iterator 之學習筆記

由于本人要接手一項C方面 的工作。由于不會C,不過做過JAVA 以及一些web方面的開發&#xff0c;加之時間比較短。所以需要速成&#xff0c;于是學習筆記也基本都是用代碼代替。 //范例資源文件 /****************************************************************************…

redis的密碼驗證,及哨兵的相關配置

背景我們知道&#xff0c;redis默認是不配置密碼的&#xff0c;這就造成只要有redis的IPPort就可以無需驗證&#xff0c;登陸redis。如果恰巧你的redis是開放在公網上的&#xff0c;很容易就被******&#xff0c;獲取你的系統權限&#xff0c;經常被黑去當成了礦機。redis的安全…

tag的使用

tag True while tag:print("level")choice input("level>>>").strip() #作用是暫停 不會一直死循環if choice "quit":break #終止當前循環進入到上一層if choice "quit_all": tag False #不用一層層退出 直接退出整個…

pyecharts對于經緯度_一文帶你掌握Pyecharts地理數據可視化的方法

本文主要介紹了Pyecharts地理數據可視化&#xff0c;分享給大家&#xff0c;具體如下&#xff1a;一、Pyecharts簡介和安裝1. 簡介Echarts 是一個由百度開源的數據可視化&#xff0c;憑借著良好的交互性&#xff0c;精巧的圖表設計&#xff0c;得到了眾多開發者的認可。而 Pyth…

使用Sqlmap對dvwa進行sql注入測試(初級階段)

0.測試準備 1&#xff09;打開Kali虛擬機終端; 2&#xff09;打開靶機OWASP&#xff0c;并通過瀏覽器&#xff0c;輸入IP地址進入dvwa的主頁&#xff0c;然后選擇SQL injection進入SQL注入的測試頁面 1.獲取DVWA的url和cookie 在輸入框中輸入1&#xff0c;顯示有內容&…

什么是軟件生命周期

軟件生命周期又稱為軟件生存周期或系統開發生命周期&#xff0c;是軟件的產生直到報廢的生命周期&#xff0c;周期內有問題定義、可行性分析、總體描述、系統設計、編碼、調試和測試、驗收與運行、維護升級到廢棄等階段&#xff0c;這種按時間分程的思想方法是軟件工程中的一種…

STL中map和string, vector 用法詳解

1. map 用法詳解 std map是STL的一個關聯容器&#xff0c;它提供一對一&#xff08;其中第一個可以稱為關鍵字&#xff0c;每個關鍵字只能在map中出現一次&#xff0c;第二個可能稱為該關鍵字的值&#xff09;的數據處理能力&#xff0c;由于這個特性&#xff0c;它完成有可能…

如果備份還原SecureCRT、Xshell遠程工具遠程

因為有時候電腦操作系統要重新安裝&#xff0c;需要將遠程備份下來。或者要將遠程發給其他同事。一、如何備份還原SecureCRT遠程1、打開options-global options---general---configuration paths找到配置文件保存路徑&#xff0c;如下圖&#xff1a;2、打開C:\Users\NUC\AppDat…

Centos7 下yum安裝mysql

轉載于:https://www.cnblogs.com/nbjjy/p/9023991.html

Python協程--迭代器

0. 實現一個可以迭代的對象 1&#xff09;要想使一個對象實現迭代的功能&#xff0c;須實現__iter__和__next__方法。 2&#xff09;判斷classmate是否是可以迭代的對象&#xff1a; from collections import Iterable isinstance(classmate, Iterable)結果為True則說明是可以…

什么是敏捷開發

什么是敏捷開發&#xff1f; 敏捷開發(Agile Development)是一種以人為核心、迭代、循序漸進的開發方法。 怎么理解呢&#xff1f;首先&#xff0c;我們要理解它不是一門技術&#xff0c;它是一種開發方法&#xff0c;也就是一種軟件開發的流程&#xff0c;它會指導我們用規定的…