日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

聊聊 CSS 實(shí)現(xiàn)自適應(yīng)導(dǎo)航欄

來源: 責(zé)編: 時(shí)間:2023-10-23 17:05:33 267觀看
導(dǎo)讀在移動(dòng)端應(yīng)用中,經(jīng)常會(huì)碰到這樣的導(dǎo)航欄,導(dǎo)航欄左邊通常是一個(gè)返回按鈕,中間是標(biāo)題,右邊是工具欄,如下:圖片值得注意的是,右側(cè)的工具欄是不固定的,有可能有多個(gè),也有可能沒有,并且中間的標(biāo)題是整體居中的,如果標(biāo)題過長(zhǎng),還能出現(xiàn)省

在移動(dòng)端應(yīng)用中,經(jīng)常會(huì)碰到這樣的導(dǎo)航欄,導(dǎo)航欄左邊通常是一個(gè)返回按鈕,中間是標(biāo)題,右邊是工具欄,如下:O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

值得注意的是,右側(cè)的工具欄是不固定的,有可能有多個(gè),也有可能沒有,并且中間的標(biāo)題是整體居中的,如果標(biāo)題過長(zhǎng),還能出現(xiàn)省略號(hào),各種適應(yīng)場(chǎng)景如下:O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

一、兩種不完美實(shí)現(xiàn)

假設(shè)布局是這樣的:O7G28資訊網(wǎng)——每日最新資訊28at.com

<appbar>  <tool>    <a class="icon back"></a>  </tool>  <h2 class="title">我是標(biāo)題</h2>  <tool class="right">    <a class="link">規(guī)則</a>  </tool></appbar>

很多同學(xué)可能會(huì)直接用 flex 布局讓標(biāo)題自動(dòng)填充剩余空間,然后設(shè)置文本居中。O7G28資訊網(wǎng)——每日最新資訊28at.com

appbar{  display: flex}.title{  flex: 1;  text-align: center;}

這種布局在左右功能區(qū)寬度差不多的時(shí)候還好,看著像居中的,一旦右邊的寬度差異很大,就看著不居中了。O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

還有一種是絕對(duì)定位,可以實(shí)現(xiàn)整體居中。O7G28資訊網(wǎng)——每日最新資訊28at.com

.title{  position: absolute;  left: 0;  right: 0;  text-align: center;}

但是,一旦文本過長(zhǎng),就會(huì)和左右的功能區(qū)發(fā)生重疊,如下:O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

那么,有沒有辦法可以同時(shí)滿足這兩種情況呢?O7G28資訊網(wǎng)——每日最新資訊28at.com

下面介紹兩個(gè)方法O7G28資訊網(wǎng)——每日最新資訊28at.com

二、flex 布局實(shí)現(xiàn)

還是前面的 flex 布局,相信大家都用過flex:1這樣的屬性,它可以讓子元素平均分配剩余空間。O7G28資訊網(wǎng)——每日最新資訊28at.com

.item{  flex: 1}

如果有3個(gè)子元素,那么就會(huì)平分為3等分。O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

如果僅僅設(shè)置左右兩邊的flex:1,中間寬度不設(shè)置,那么中間部分的寬度就自適應(yīng)內(nèi)容寬度,由于兩邊寬度相等,「因此中間的文本看著就是整體居中的」。O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

當(dāng)左右空間不足以均分剩余空間時(shí),會(huì)自動(dòng)壓縮另一個(gè)空間。O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

直到中間部分不足以放下文本內(nèi)容,出現(xiàn)省略號(hào)。O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

按照這個(gè)原理,先將左右兩邊設(shè)置平均分布。O7G28資訊網(wǎng)——每日最新資訊28at.com

tool{  flex:1;}

這樣標(biāo)題就是整體居中的了。O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

然后,只需要將右邊菜單居右展示就行了,比如用flex中的justify-content。O7G28資訊網(wǎng)——每日最新資訊28at.com

.right{  display: flex;  justify-content: end;}

這樣就就可以很輕松的實(shí)現(xiàn)文章開頭的效果。O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

完整代碼可以查看:O7G28資訊網(wǎng)——每日最新資訊28at.com

  • CSS Appbar flex (juejin.cn)[1]
  • CSS Appbar flex (codepen.io)[2]

三、grid 布局實(shí)現(xiàn)

grid 布局也能和能輕易的實(shí)現(xiàn)這種效果,原理也基本一致。O7G28資訊網(wǎng)——每日最新資訊28at.com

和flex中的flex:1比較類似的是,grid中也有一個(gè)單位也能做到均等分布的效果,那就是1fr。O7G28資訊網(wǎng)——每日最新資訊28at.com

div{  display: grid;  grid-template-columns: 1fr auto 1fr;}

這樣3個(gè)子容器,中間是自適應(yīng)寬度,左右是自動(dòng)等分的。O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

原理和前面相同,這里就不重復(fù)了,關(guān)鍵實(shí)現(xiàn)如下:O7G28資訊網(wǎng)——每日最新資訊28at.com

appbar{  display: grid;  grid-template-columns: 1fr auto 1fr;}.right{  justify-content: end;}

這樣也能實(shí)現(xiàn)我們想要的效果:O7G28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片O7G28資訊網(wǎng)——每日最新資訊28at.com

完整代碼可以查看:O7G28資訊網(wǎng)——每日最新資訊28at.com

  • CSS Appbar grid (juejin.cn)[3]
  • CSS Appbar grid (codepen.io)[4]

四、總結(jié)一下

這樣一個(gè)實(shí)用的布局小技巧,你學(xué)到了嗎?下面總結(jié)一下:O7G28資訊網(wǎng)——每日最新資訊28at.com

  1. 移動(dòng)端導(dǎo)航欄一般都是標(biāo)題整體居中的,并且右側(cè)的工具欄是不固定的
  2. 傳統(tǒng)的標(biāo)題flex自適應(yīng)和絕對(duì)定位都有一定的局限性
  3. 在剩余空間充足情況下, flex:1可以讓左右兩邊布局尺寸相同,這樣中間標(biāo)題看著就是居中的了
  4. 在剩余空間不足情況下,中間標(biāo)題空間會(huì)撐滿剩余空間,超長(zhǎng)則出現(xiàn)省略號(hào)
  5. grid 和 flex 原理相同,有一個(gè)1fr單位也可以做到均等分布的效果

本文鏈接:http://www.www897cc.com/showinfo-26-14604-0.html聊聊 CSS 實(shí)現(xiàn)自適應(yīng)導(dǎo)航欄

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Python高頻面試題——如何在字符串中刪除指定字符

下一篇: 面試官:怎么讓Spring掃描我們自定義的注解?

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 7月安卓手機(jī)好評(píng)榜:三星S23Ultra好評(píng)率第一

    性能榜和性價(jià)比榜之后,我們來看最后的安卓手機(jī)好評(píng)榜,數(shù)據(jù)來源安兔兔評(píng)測(cè),收集時(shí)間2023年7月1日至7月31日,僅限國(guó)內(nèi)市場(chǎng)。第一名:三星Galaxy S23 Ultra好評(píng)率:95.71%在即將迎來新
  • 2023年Q2用戶偏好榜:12+256G版本成新主流

    3月份的性能榜、性價(jià)比榜和好評(píng)榜之后,就要輪到2023年的第二季度偏好榜了,上半年的新機(jī)潮已經(jīng)過去,最明顯的肯定就是大內(nèi)存和存儲(chǔ)的機(jī)型了,另外部分中端機(jī)也取消了屏幕塑料支架
  • 如何正確使用:Has和:Nth-Last-Child

    我們可以用CSS檢查,以了解一組元素的數(shù)量是否小于或等于一個(gè)數(shù)字。例如,一個(gè)擁有三個(gè)或更多子項(xiàng)的grid。你可能會(huì)想,為什么需要這樣做呢?在某些情況下,一個(gè)組件或一個(gè)布局可能會(huì)
  • 三萬字盤點(diǎn) Spring 九大核心基礎(chǔ)功能

    大家好,我是三友~~今天來跟大家聊一聊Spring的9大核心基礎(chǔ)功能。話不多說,先上目錄:圖片友情提示,本文過長(zhǎng),建議收藏,嘿嘿嘿!一、資源管理資源管理是Spring的一個(gè)核心的基礎(chǔ)功能,不
  • 阿里瓴羊One推出背后,零售企業(yè)迎數(shù)字化新解

    作者:劉曠近年來隨著數(shù)字經(jīng)濟(jì)的高速發(fā)展,各式各樣的SaaS應(yīng)用服務(wù)更是層出不窮,但本質(zhì)上SaaS大多局限于單一業(yè)務(wù)流層面,對(duì)用戶核心關(guān)切的增長(zhǎng)問題等則沒有提供更好的解法。在Saa
  • iQOO 11S評(píng)測(cè):行業(yè)唯一的200W標(biāo)準(zhǔn)版旗艦

    【Techweb評(píng)測(cè)】去年底,iQOO推出了“電競(jìng)旗艦”iQOO 11系列,作為一款性能強(qiáng)機(jī),該機(jī)不僅全球首發(fā)2K 144Hz E6全感屏,搭載了第二代驍龍8平臺(tái)及144Hz電競(jìng)
  • 3699元!iQOO Neo8 Pro頂配版今日首銷:1TB UFS 4.0同價(jià)位唯一

    5月23日,iQOO推出了全新的iQOO Neo8系列,包含iQOO Neo8和iQOO Neo8 Pro兩個(gè)版本,其中標(biāo)準(zhǔn)版搭載高通驍龍8+,而Pro版更是首發(fā)搭載了聯(lián)發(fā)科天璣9200+旗艦
  • 微軟發(fā)布Windows 11新版 引入全新任務(wù)欄狀態(tài)

    近日,微軟發(fā)布了Windows 11新版,而Build 22563更新主要引入了幾周前曝光的平板模式任務(wù)欄等,系統(tǒng)更流暢了。更新中,Windows 11加入了專門針對(duì)平板優(yōu)化的任務(wù)欄
  • AI藝術(shù)欣賞體驗(yàn)會(huì)在上海梅賽德斯奔馳中心音樂俱樂部上演

    光影交錯(cuò)的鏡像世界,虛實(shí)幻化的視覺奇觀,虛擬偶像與真人共同主持,這些場(chǎng)景都出現(xiàn)在2019世界人工智能大會(huì)的舞臺(tái)上。8月29日至31日,“AI藝術(shù)欣賞體驗(yàn)會(huì)”在上海
Top 主站蜘蛛池模板: 吴川市| 扶风县| 旅游| 大竹县| 乌拉特前旗| 高淳县| 任丘市| 弥勒县| 镇远县| 镇沅| 高尔夫| 蓬安县| 闵行区| 巴林右旗| 左云县| 沙河市| 昭通市| 杭锦后旗| 兴业县| 油尖旺区| 苍溪县| 永德县| 隆德县| 东光县| 遂平县| 上饶县| 洪湖市| 孝义市| 黎城县| 舞钢市| 阜平县| 井研县| 积石山| 襄汾县| 宝山区| 化隆| 永德县| 宣恩县| 新兴县| 嘉荫县| 太仓市|