設計是帶有主觀色彩的,同樣網頁設計中的 css 一樣讓人摸不頭腦。網上列舉的實現方式一大把,或許在這里你都看到過,但既然來到這里我希望這篇能讓你看有所收獲,畢竟這也是前端面試的基礎。
1、text-align 方式
text-align 是入門最常用的屬性,根據字面意思是文本對齊用的。
只需在父級標簽上設置即可,雖然內部的子元素不管是塊級元素 or 非塊級元素都可以使用,但需注意塊級元素會占用整行的寬度,文本是在這個寬度中作水平居中。
代碼舉例
頁面效果
2、定寬 margin auto 方式
這也是常見的水平居中方式,通過設置子元素的 margin 屬性來控制距離父元素的距離。需要注意:子元素如果是塊級元素,就最好設置寬度,不然就會占滿于父元素,在通過 text-align 文本居中對齊就沒有意義了。對于非塊級元素必須要設置寬度。
代碼舉例
頁面效果
3、flex 方式
通過設置浮動布局來實現居中,這是相對上兩種方法某種程度上最簡單的實現,因為在其基礎上可以做更多布局的擴展,不用擔心破壞布局。
如果你不了解 flex 布局,可以看下這個鏈接:
https://eminoda.github.io/2018/08/20/css-flex/
設置 justify-content 輕松搞定定位:
代碼舉例
頁面效果
4、position + 浮動 方式
現在這兩種是比較有趣的定位方式,實際場景不建議使用,我是不愿意別人這樣寫,腦袋還要轉個彎,來理解這樣布局的計算方式。
如果元素是塊級元素,通過 float 浮動屬性,將它的寬度“抹去”。然后通過對于上級元素的相對定位通過錯位修正的方式來居中。
讓父元素的左側從中間開始定位,子元素再根據自己的實際寬度往左偏移一半達到水平居中的目的。
代碼舉例
頁面效果
5、position + transform 方式
思路同上,不同的是這次設置子元素為絕對定位,并距離左側偏離一半,最后通過 transform 根據元素的實際寬度往左再偏移一半,達到居中效果。
代碼舉例
頁面效果
上面只列舉了 5 種水平居中的實現方法,相信還要更多的方式。不過不管哪種方法,能在業務代碼實踐中最快速、最準確的運用才是最佳實踐。
希望在讀的各位能有所收獲。
一名工作在一線的前端工程師,樂于實踐,并分享前端開發經驗。
關注【前端雨爸】,歡迎評論留言,愿與各位交流進步。
點擊 ↙ 了解更多,了解更多前端開發技術文章。!
自己是一名從事了多年開發的web前端老程序員,目前辭職在做自己的web前端私人定制課程,今年年初我花了一個月整理了一份最適合2019年學習的web前端學習干貨,各種框架都有整理,送給每一位前端小伙伴,想要獲取的可以關注我的頭條號并在后臺私信我:前端,即可免費獲取
Html5-CSS之五大居中方式
你是不是也對元素居中的知識點很是模糊?是不是苦于找不到一個總結的通俗易懂的說明?是不是自己懶得去總結?恭喜你,搜到這篇博客! 這是鄙人在前端的學習與實踐中總結出的元素的五大居中方式,黏貼了代碼并對代碼做了解釋,希望對迷茫的有所幫助!
下面的居中示例中,統一使用了同一個div作為父元素和p作為子元素
設置一個div,并且設置了div的寬高邊框,div里面設置一個塊元素p,設置了它的寬高和背景色
css居中方式1
<!doctype html> <html> <head> <meta charset="utf-8"> <title>五大居中1</title> <style> *{margin:0;} div{width:200px;height:300px;border:2px solid #000;margin:200px auto; text-align:center;font-size:0; } div p{width:100px;height:100px;background:#666; display:inline-block;vertical-align:middle; } div:after{content:"";display:inline-block;height:100%;vertical-align:middle;} </style> </head> <body> <div> <p></p> </div> </body> </html>
這里利用了偽元素讓子元素p在div盒子里左右水平居中只需要在它的父元素div里加text-align:center;垂直方向居中需要在父元素后面加了一個偽元素,并使得樣式為inline-block;height:100%;就是和父元素一樣高,vertical-align:middle;垂直居中,也就是p元素相對與偽元素居中,由于偽元素和div一樣高,所以相當于p元素在div里垂直居中。
css居中方式2
<!doctype html> <html> <head> <meta charset="utf-8"> <title>五大居中2</title> <style> *{margin:0;} div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;} p{position:absolute;left:0;bottom:0;right:0;top:0;margin:auto;width:100px;height:100px;background:#f99;} </style> </head> <body> <div> <p></p> </div> </body> </html>
這里利用了定位居中
子元素p設置position:absolute脫離文檔流,默認以html作為父元素,所以我們給父元素div設置position:relative;使得p以div為父元素做位置的變動,left:0;tight:0;top:0;bottom:0;(只有設置了定位的元素才可以使用這種方式來移動),最后margin:auto;就會水平和垂直都居中。
css居中方式3
<!doctype html> <html> <head> <meta charset="utf-8"> <title>五大居中3</title> <style> *{margin:0;} div{display:flex;justify-content:center;align-items:center;width:300px;height:400px;border:1px solid #000;margin:100px auto;} p{width:100px;height:100px;background:#f99;} </style> </head> <body> <div> <p></p> </div> </body> </html>
這里利用了彈性盒居中
父元素div設置成彈性盒樣式,justify-content:center;主軸居中
align-items:center;垂直居中(而且這兩個只能設置在父元素上,彈性盒知識)
css居中方式4
<!doctype html> <html> <head> <meta charset="utf-8"> <title>五大居中4</title> <style> *{margin:0;} div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;} p{width:100px;height:100px;background:#f99;position:absolute; left:50%;top:50%;margin:-50px 0 0 -50px;} </style> </head> <body> <div> <p></p> </div> </body> </html>
利用定位線左上角居中,然后左移子元素寬度的一半,再上移子元素高度的一半。
css居中方式5
<!doctype html> <html> <head> <meta charset="utf-8"> <title>五大居中5</title> <style> *{margin:0;} div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;} p{position:absolute;width:100px;height:100px;background:#f99;left:50%;top:50%; transform:translate(-50%,-50%);} </style> </head> <body> <div> <p></p> </div> </body> </html>
利用動畫移動屬性transform
結語
相信看了上面的有關Html5、css的元素五大居中方式,你們就可以解決自己的小問題了,但是也要養成一個總結的好習慣。好記性不如爛筆頭!以前留下來的話語總是有他的道理。Come on!
原文鏈接:https://blog.csdn.net/qq_38110274/article/details/102756968
今天的內容中,廊坊網站建設公司的技術人員將分享下網站導航水平居中設置的方法,其實辦法有很多,以CSS代碼為例,這種代碼操作很方便,后期修改的時候也簡單,以下是詳細的實例操作。
方法一:使用display:inline-block控制
這個方法比較簡單,是將容器轉成display:inline-block行內塊級元素,然后就可以直接用text-align:center使其達到水平居中效果。HTML代碼中需要一個div來包圍這個導航菜單。
方法二:使用position:relative解決
position:relative定位方法來讓元素水平居中,一般來說小編推薦這方法,因為代碼多了個div去包住,當然這些是根據情況來使用的。將定位div設為浮動,再定位left:50%,然后導航定位至left:-50%。
方法三:使用display:table解決
HTML代碼實例
<ul class="navbar">
<li><a href="/">Home</a></li>
</ul>
CSS代碼實例
.navbar {
display:table;
margin:0 auto;
}
.navbar li {
display:table-cell;
}
.navbar li + li {
padding-left:20px;
}
方法四:使用display:inline-flex解決
HTML代碼實例操作
<div class="navbar">
<ul>
<li><a href="/">Home</a></li>
</ul>
</div>
CSS代碼代碼編寫
.navbar {
text-align:center;
}
.navbar > ul {
display:-webkit-inline-box;
display:-moz-inline-box;
display:-ms-inline-flexbox;
display:-webkit-inline-flex;
display:inline-flex;
}
.navbar li + li {
margin-left:20px;
}
提示:瀏覽器兼容問題,目前這個代碼不支持IE7及以下版本的IE瀏覽器。
其實這些方法很好的解決了網站導航菜單居中的問題,使用CSS編寫有助于后期的修改,極大的方便了我們的操作和節省了寶貴的時間。在以后的內容中,小編還將會繼續為朋友們分享更多更有價值的知識。
原創文章出自暢想網絡,轉載地址:http://www.e-wkj.cn/xw/2316.html
*請認真填寫需求信息,我們會在24小時內與您取得聯系。