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