精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

盤點(diǎn)CSS文本兩端對(duì)齊的N種方式

開發(fā) 前端
加空格的方式比較符合直覺,但是只能達(dá)到近似的對(duì)齊效果,加標(biāo)簽可以實(shí)現(xiàn)精準(zhǔn)對(duì)齊,但是是純手動(dòng),而且和文字字?jǐn)?shù)也有關(guān)系,flex布局的兩端對(duì)齊需要給每個(gè)文字套上一個(gè)標(biāo)簽,也可以在每個(gè)文字之間加上一個(gè)空標(biāo)簽,設(shè)置自動(dòng)填充。

介紹一個(gè)你可能見過的文本兩端布局(也可以叫文本均等分布),如下:

說難不難,說簡(jiǎn)單也不簡(jiǎn)單。這里盤點(diǎn)了多種實(shí)現(xiàn)該布局的方式,看看你都知道哪些吧~

一、加空格

很多人從直覺上會(huì)加空格,從視覺上達(dá)到文本兩端對(duì)齊的效果,也是比較符合直覺的,例如像這樣。

<ul class="demo">
  <li>技  術(shù)  部</li>
  <li>體驗(yàn)設(shè)計(jì)部</li>
  <li>行  政  部</li>
</ul>

但是直接加空格沒啥效果,因?yàn)槟J(rèn)情況下空格會(huì)合并。

如果不想合并,可以用white-space來改變這種行為。

li{
  white-space: pre;
}

這樣,無論敲多少個(gè)空格,都會(huì)原封不動(dòng)保留下來。

這樣就得到了一種“近似”的兩端對(duì)齊效果。

除了用white-space改變以外,還可以用&nbsp;來輸入“實(shí)體”空格。

<ul>
  <li>技  術(shù)  部</li>
  <li>體驗(yàn)設(shè)計(jì)部</li>
  <li>行  政  部</li>
</ul>

也能得到類似的效果。

二、加標(biāo)簽

上面的實(shí)現(xiàn)其實(shí)只是“近似”的,并不能完美對(duì)齊,如下:

很明顯還是差了點(diǎn)。

不過可以換一種思路,因?yàn)榭崭癫⒉荒芎芎玫拿枋鲆粋€(gè)中文字符的寬度,無論多少個(gè)空格,總是有點(diǎn)差距的,所以這里可以手動(dòng)加一個(gè)空標(biāo)簽。

<ul>
  <li>技<span></span>術(shù)<span></span>部</li>
  <li>體驗(yàn)設(shè)計(jì)部</li>
  <li>行<span></span>政<span></span>部</li>
</ul>

然后,我們給這些標(biāo)簽設(shè)置一個(gè)字符的寬度就好了。

li span{
  width: 1em;
}

這樣就能完美對(duì)齊了。

前面這兩種方式其實(shí)都不大推薦,局限性太大,需要手動(dòng)去補(bǔ)全剩余空間,如果字?jǐn)?shù)不一樣,又得手動(dòng)重新計(jì)算了。

下面介紹幾個(gè)實(shí)際更推薦的方式。

三、justify-content: space-between

很多同學(xué)可能都會(huì)想到這種方式,畢竟現(xiàn)在flex布局實(shí)在太普遍了,不過這只適合具體的元素,不適合純文本,所以需要改造一下,將所有文本拆分成單獨(dú)的標(biāo)簽,類似這樣。

<ul>
  <li><span>技</span><span>術(shù)</span><span>部</span></li>
  <li><span>體</span><span>驗(yàn)</span><span>設(shè)</span><span>計(jì)</span><span>部</span></li>
  <li><span>行</span><span>政</span><span>部</span></li>
</ul>

這么多標(biāo)簽,手寫太麻煩了,可以在 JS自動(dòng)生成。

txt.split('').map(el => `<span>${el}</span>`).join('')

然后直接利用flex布局的兩端對(duì)齊就可以了。

li{
  display: flex;
  justify-content: space-between;
}

效果如下:

而且這種適應(yīng)性更好,改變外層寬度,也能做到兩端對(duì)齊。

四、flex:1

利用flex布局,還可以用另一種方式來實(shí)現(xiàn)。

我們可以在每個(gè)字符中間都添加一個(gè)空標(biāo)簽,然后讓這些空標(biāo)簽自動(dòng)分配剩余空間,這樣不就實(shí)現(xiàn)文本兩端對(duì)齊了嗎?

<ul>
  <li>技<span></span>術(shù)<span></span>部</li>
  <li>體<span></span>驗(yàn)<span></span>設(shè)<span></span>計(jì)<span></span>部</li>
  <li>行<span></span>政<span></span>部</li>
</ul>

同樣可以用JS來生成,相比上一種方式更容易。

txt.split('').join('<span></span>')

然后設(shè)置flex:1。

li{
  display: flex;
}
li span{
  flex: 1;
}

效果如下:

這兩種方式適應(yīng)性更好,基本可以在實(shí)際生產(chǎn)使用了,不過需要對(duì)HTML進(jìn)行改造,稍微麻煩點(diǎn),而且看著不夠干凈,畢竟都是空標(biāo)簽,沒有實(shí)際價(jià)值。

下面再介紹兩個(gè)不需要改變HTML的方式。

五、text-align: justify

文本對(duì)齊方式中天然就有一個(gè)兩端對(duì)齊的方式,叫做justify,但是這種方式不包括最后一行。

由于不支持最后一行,所以對(duì)于單行文本,這種對(duì)齊方式自然也就失效了。

既然不支持單行文本,我們可以手動(dòng)讓“單行”變成“多行”,具體做法其實(shí)也很簡(jiǎn)單,用一個(gè)偽元素,強(qiáng)制換行就可以了,具體實(shí)現(xiàn)如下:

li::after{
  content: '';
  display: inline-block;
  width: 100%;
}

這樣在設(shè)置text-align: justify時(shí),原本的第一行就不再是最后一行了,自然也就生效了。

li{
  text-align: justify;
}

效果如下:

不過由于換行的關(guān)系,導(dǎo)致整體高度要比以前高出一部分,所以這種方式需要手動(dòng)限制一個(gè)高度。

li{
  text-align: justify;
  height: 24px;
  line-height: 24px;
}

這樣就完美實(shí)現(xiàn)了。

另外,在 MDN文檔上還看到這樣一個(gè)屬性值justify-all,可以滿足我們的需求。

不過現(xiàn)在還沒有任何瀏覽器支持。

六、text-align-last: justify

CSS中還有一個(gè)專門適用于最后一行文本的對(duì)齊方式,叫做text-align-last,剛好可以滿足這個(gè)場(chǎng)景。所以我們可以在HTML不做任何修改的情況下,設(shè)置最后一行文本兩端對(duì)齊就可以了。

li{
  text-align-last: justify;
}

效果如下:

這應(yīng)該是最完美的方式了,不過兼容性稍微差點(diǎn),又是Safari脫了后腿。

七、SVG 中的lengthAdjust

除了以上CSS的各種方式外,SVG中也可以實(shí)現(xiàn)類似這樣的文本兩端對(duì)齊,需要用到lengthAdjust屬性。

這個(gè)屬性有兩個(gè)值,一個(gè)是spacing,表示剩余空間自動(dòng)填充,另一個(gè)是spacingAndGlyphs,表示會(huì)讓字符自動(dòng)壓縮或拉伸來適配整個(gè)文本長(zhǎng)度(textLength)。

<svg width="300" height="150" xmlns="http://www.w3.org/2000/svg">
  <g font-face="sans-serif">
    <text x="0" y="20" textLength="300" lengthAdjust="spacing">
      Stretched using spacing only.
    </text>
    <text x="0" y="50" textLength="300" lengthAdjust="spacingAndGlyphs">
      Stretched using spacing and glyphs.
    </text>
    <text x="0" y="80" textLength="100" lengthAdjust="spacing">
      Shrunk using spacing only.
    </text>
    <text x="0" y="110" textLength="100" lengthAdjust="spacingAndGlyphs">
      Shrunk using spacing and glyphs.
    </text>
  </g>
</svg>

效果如下:

我們也可以用這種對(duì)齊方式來實(shí)現(xiàn)我們想要的效果。

八、總結(jié)和說明

以上共介紹了7種方式來實(shí)現(xiàn)文本兩端對(duì)齊,完整 demo 可以查看以下鏈接。

  • CSS text justify (juejin.cn)[1]

除此之外,你還知道哪些方式呢?歡迎留言討論,下面總結(jié)一下。

  • 加空格的方式比較符合直覺,但是只能達(dá)到近似的對(duì)齊效果。
  • 加標(biāo)簽可以實(shí)現(xiàn)精準(zhǔn)對(duì)齊,但是是純手動(dòng),而且和文字字?jǐn)?shù)也有關(guān)系。
  • flex布局的兩端對(duì)齊需要給每個(gè)文字套上一個(gè)標(biāo)簽。
  • 也可以在每個(gè)文字之間加上一個(gè)空標(biāo)簽,設(shè)置自動(dòng)填充。
  • text-align: justify可以實(shí)現(xiàn)文本兩端對(duì)齊,但是不包括最后一行。
  • 借助偽元素?fù)Q行,可以手動(dòng)將原本的最后一行變成非最后一行。
  • text-align-last: justify可以最完美的實(shí)現(xiàn)這個(gè)效果,不過兼容性欠佳。
  • SVG中的lengthAdjust也能實(shí)現(xiàn)類似的對(duì)齊效果。

資訊一下,如果面試(5年內(nèi))出這樣一道題,你們覺得難嗎?

[1]CSS text justify (juejin.cn): https://code.juejin.cn/pen/7399192945481482290

責(zé)任編輯:姜華 來源: 前端偵探
相關(guān)推薦

2023-03-06 09:20:33

CSS顏色混合

2021-07-26 08:31:17

算法

2021-11-02 07:44:36

CSS 技巧進(jìn)度條

2019-04-15 15:13:00

大數(shù)據(jù)網(wǎng)絡(luò)托管網(wǎng)絡(luò)主機(jī)

2022-03-18 09:42:54

JavaString

2023-09-11 09:07:58

CSS隱藏滾動(dòng)條

2018-04-20 14:54:27

2021-12-06 08:31:18

Oracle數(shù)據(jù)庫(kù)后端開發(fā)

2025-04-30 02:00:00

2021-05-27 10:57:01

TCP定時(shí)器網(wǎng)絡(luò)協(xié)議

2020-11-03 19:18:28

CSS對(duì)齊文本

2023-03-13 09:20:24

??Safari??省略號(hào)CSS

2023-12-04 09:31:13

CSS卡片

2011-03-03 10:26:04

Pureftpd

2018-07-09 14:52:05

2009-06-25 13:43:00

Buffalo AJA

2010-10-21 16:24:18

sql server升

2010-08-06 09:38:11

Flex讀取XML

2023-03-29 13:06:36

2016-10-19 15:15:26

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

男人天堂av电影| 一区二区三区国| 久久久精品福利| 欧美中文一区二区| 欧美一区二区国产| 欧美激情中文网| 四季av综合网站| av网站免费在线观看| 成人性生交大片免费看中文网站| 日本精品免费观看| 免费黄色激情视频| 精品午夜电影| 欧美理论电影在线| 欧美黑人经典片免费观看 | 欧美刺激午夜性久久久久久久| 男的插女的下面视频| 国产粉嫩一区二区三区在线观看| 国产一二精品视频| 日韩美女免费观看| 久久久久久久久久久久国产| japanese国产精品| 99久久精品国产导航| 国产成人鲁鲁免费视频a| 懂色av懂色av粉嫩av| 国产99亚洲| 精品国产123| 天堂网在线免费观看| 91九色在线看| 久久99国产精品久久99果冻传媒| 国内精品久久久久久中文字幕| 男人舔女人下部高潮全视频| 红杏视频成人| 日韩一区二区三区av| 高清一区在线观看| 成人福利av| 天天色综合成人网| 高清无码一区二区在线观看吞精| a天堂在线资源| 91久色porny| 国产欧美综合精品一区二区| av老司机久久| 卡一卡二国产精品| 国产精品va在线播放| 天天操天天爽天天干| 精品成人一区| 欧美极品xxxx| 久热精品在线观看| 午夜视频一区| 欧美精品在线观看| 欧美激情图片小说| 欧美成熟视频| 久久69精品久久久久久久电影好 | 国产亚洲一卡2卡3卡4卡新区 | 看黄色录像一级片| 青青草原综合久久大伊人精品| 亚洲毛片在线看| 亚州av综合色区无码一区| 超碰成人免费| 亚洲国产精品高清久久久| 亚洲av成人精品一区二区三区| 视频精品一区| 亚洲高清久久久久久| 黑森林av导航| 欧美美女啪啪| 亚洲欧洲日本专区| 免费看裸体网站| 99精品综合| 欧美成人激情视频免费观看| 国产精品视频一区二区三 | 国语自产偷拍精品视频偷| 国产亚洲精品久久久久久无几年桃| 欧美午夜在线视频| 久久久久久久97| 毛片基地在线观看| 日韩国产在线观看| 成人亲热视频网站| 亚洲精品视频网| 91丨porny丨首页| 视频一区视频二区视频三区视频四区国产| 国产系列在线观看| 自拍偷拍国产亚洲| 99色这里只有精品| se69色成人网wwwsex| 91麻豆精品国产91久久久久| 成人在线观看一区二区| 欧美一级色片| 中文字幕成人在线| 69av视频在线| 美女黄色成人网| 国产在线观看91精品一区| 91福利在线观看视频| 福利一区二区在线| 欧美日韩在线一区二区三区| 麻豆视频在线| 欧美日韩一区二区三区| 日韩欧美精品久久| 黄色网在线看| 欧美性生交xxxxx久久久| 天天干天天av| 美女视频亚洲色图| 少妇av一区二区三区| 国产精品7777| 久久机这里只有精品| 国产欧美日韩在线播放| av中文在线| 亚洲高清不卡在线观看| 网站一区二区三区| 美国十次av导航亚洲入口| 久久久99久久精品女同性| 在线观看黄网站| 国产高清在线精品| 日本一区免费看| 1024在线看片你懂得| 欧美日韩日日摸| 黄瓜视频污在线观看| 欧美三级网页| 成人久久一区二区| 成人激情电影在线看| 午夜欧美在线一二页| 搡的我好爽在线观看免费视频| 西野翔中文久久精品字幕| 欧美精品一区三区| 国产精品久久久久毛片| 欧美激情综合五月色丁香| 日韩免费视频播放| 日本综合精品一区| 久久久精品一区二区三区| 波多野结衣一二区| 91蝌蚪porny九色| 欧美日韩性生活片| 91成人精品在线| 美女精品久久久| 国产精品无码白浆高潮| 国产精品区一区二区三区| 日日碰狠狠躁久久躁婷婷| 国产一区二区三区不卡av| 欧美成人自拍视频| 99久久精品国产一区二区成人| 国产欧美精品日韩区二区麻豆天美| 国产av国片精品| 成人av资源网址| 欧美精品videos| 亚洲成人av综合| 亚洲综合成人在线视频| 一区二区三区四区影院| 欧美三级乱码| 国产一区二区中文字幕免费看| 日本一本在线免费福利| 欧美大黄免费观看| 精品少妇theporn| 成人毛片视频在线观看| 阿v天堂2018| 久久99国产精品久久99大师| 亚洲97在线观看| 天堂视频中文在线| 一本高清dvd不卡在线观看| 精品人妻少妇嫩草av无码| 性8sex亚洲区入口| 日韩.欧美.亚洲| 成人国产激情在线| 久久在线免费视频| 超碰在线人人干| 亚洲午夜久久久久久久久久久| av av在线| 男人的天堂亚洲在线| 亚洲不卡中文字幕| www.久久| 欧美成人午夜激情| 少妇高潮久久久| 91九色最新地址| 国产免费一区二区三区四区| 国产精品1区二区.| 青青草成人免费在线视频| 九九久久婷婷| 国产欧美日韩综合精品| av在线播放国产| 日韩风俗一区 二区| 国产精品国产精品国产| 一区在线观看免费| 最新版天堂资源在线| 久久午夜精品一区二区| 日本特级黄色大片| 老牛精品亚洲成av人片| 国产精品高潮粉嫩av| 高h视频在线观看| 日韩精品视频免费在线观看| 成年人晚上看的视频| 亚洲精品网站在线观看| 亚洲av无码一区二区三区网址 | 特级西西444www| 亚洲黄色大片| 亚洲国产精品一区二区第四页av| 久久69av| 日韩av123| 亚洲奶水xxxx哺乳期| 亚洲女人天堂av| 亚洲h视频在线观看| 91久久国产最好的精华液| 黄色一级片在线| 久久精品亚洲国产奇米99| 日本在线视频播放| 日本网站在线观看一区二区三区 | 天堂网中文在线观看| 成人涩涩免费视频| www.国产福利| 天堂成人免费av电影一区| 成人污网站在线观看| blacked蜜桃精品一区| 国产一区自拍视频| 高清在线一区二区| 国产91免费看片| 黄色18在线观看| 久热精品视频在线免费观看| 四虎精品在永久在线观看 | avtt在线播放| 精品丝袜一区二区三区| 国产老妇伦国产熟女老妇视频| 日韩欧美在线网址| 国产在线观看成人| 亚洲欧洲成人自拍| 免费看黄色三级| 91美女精品福利| www国产视频| 国产精品亚洲第一区在线暖暖韩国 | 俄罗斯精品一区二区三区| 成人免费视频观看| 日本精品久久电影| 黄色软件视频在线观看| 久久久久久69| 日韩欧美一起| 欧美俄罗斯性视频| 影音先锋中文在线视频| 免费91在线视频| 国产精品剧情| 久久影院模特热| 国产成人l区| 精品国产欧美一区二区五十路| 韩国三级在线观看久| 日韩精品在线视频| 午夜视频在线播放| 精品一区二区三区三区| 天天爱天天干天天操| 亚洲大胆人体av| 亚洲av无码一区二区乱子伦| 欧美一区二区三区视频免费| 国产片在线播放| 91精品国产综合久久精品麻豆| 国产精品一区二区三区在线免费观看 | 日b视频免费观看| 精品动漫3d一区二区三区免费| 中文精品无码中文字幕无码专区 | 日本一区二区免费在线观看视频| 欧美大波大乳巨大乳| 国产精品视频九色porn| 91ts人妖另类精品系列| 欧美激情自拍偷拍| 欧美色图17p| 亚洲日本韩国一区| 国产盗摄x88av| 亚洲一区二区三区国产| 久久久精品少妇| 亚洲精品乱码久久久久久| 成人小视频免费看| 亚洲图片激情小说| 国产在线视频卡一卡二| 天天操天天干天天综合网| 欧美a视频在线观看| 色88888久久久久久影院野外| 国产女优在线播放| 欧美一级欧美一级在线播放| 日韩在线视频第一页| 亚洲欧美在线一区二区| a√资源在线| 欧美日韩国产二区| 美女在线视频免费| 亚洲人成在线一二| av在线播放网| 欧美久久精品午夜青青大伊人| 久草在线视频资源| 日本精品免费观看| 91麻豆精品国产91久久久更新资源速度超快| 91青草视频久久| 精品久久ai| 日本一区免费观看| 亚洲精品国产首次亮相| 色欲色香天天天综合网www| 日日夜夜免费精品| 国模大尺度视频| 久久男人中文字幕资源站| 在线免费看av网站| 婷婷激情综合网| 国产精品久久久久久久免费| 日韩乱码在线视频| 国产三区在线观看| 日韩免费观看在线观看| 欧美大片91| 日韩电影免费观看高清完整| 欧美日韩蜜桃| 婷婷丁香激情网| jvid福利写真一区二区三区| 黄色免费一级视频| 舔着乳尖日韩一区| 99久久精品国产一区色| 亚洲午夜色婷婷在线| 深夜福利视频在线免费观看| 上原亚衣av一区二区三区| 98色花堂精品视频在线观看| 国产精品自产拍在线观看中文| 免费看久久久| 干日本少妇视频| 免费黄网站欧美| 久久久久国产精品无码免费看| 中文字幕日韩av资源站| wwwwww在线观看| 亚洲国产精品视频在线观看| 18视频免费网址在线观看| 欧美专区国产专区| 欧美久久精品| 男人天堂av片| 国产高清精品在线| 99鲁鲁精品一区二区三区| 欧美在线视频不卡| 天天影院图片亚洲| 午夜精品久久久久久99热软件| 国产一区二区高清在线| 亚洲精品一卡二卡三卡四卡| 久久成人精品| 欧美bbbbb性bbbbb视频| 亚洲制服丝袜一区| 超碰在线观看99| 欧美成aaa人片免费看| 亚洲精品69| 一级做a爰片久久| 久色婷婷小香蕉久久| 极品蜜桃臀肥臀-x88av| 91精品办公室少妇高潮对白| 亚洲 小说区 图片区 都市| 久久久亚洲影院你懂的| 网站一区二区| 国产成人亚洲综合无码| 国产一区二区美女| 91人妻一区二区三区蜜臀| 欧美日本韩国一区| 久久久久久国产精品免费无遮挡| 国产精品久久久久久久久久新婚 | 99精品女人在线观看免费视频| 五月天久久综合网| 麻豆专区一区二区三区四区五区| 色噜噜噜噜噜噜| 欧美人妖巨大在线| 国产在线看片| 亚洲一区中文字幕在线观看| 女生裸体视频一区二区三区| 成人三级做爰av| 亚洲第一搞黄网站| 天天射天天操天天干| 国产91精品久| 精品视频99| 国产欧美一区二| 一区二区免费看| 日本人妻丰满熟妇久久久久久| 日本免费久久高清视频| 久久99国产精品视频| www.日本一区| 亚洲乱码日产精品bd| 精品国产免费无码久久久| 久久久久中文字幕2018| 综合国产视频| 亚洲污视频在线观看| 亚洲精品视频免费看| 神宫寺奈绪一区二区三区| 日本亚洲欧洲色| 午夜免费一区| 一起草在线视频| 欧美亚洲国产一区二区三区va | 91插插插影院| 亚洲综合成人在线视频| 青青色在线视频| 国产精品亚洲精品| 国产精品久久| 亚洲一区二区三区综合| 欧美视频完全免费看| 午夜伦理在线视频| 免费在线成人av| 国产在线看一区| 欧美啪啪小视频| 久久色免费在线视频| 久草在线综合| 日本精品一区在线| 色偷偷一区二区三区| 1区2区3区在线视频| 久热这里只精品99re8久| 精品一区二区三区日韩| 1级黄色大片儿| www国产91| 免费成人网www| 亚洲美女高潮久久久| 欧美网站一区二区| 99色在线观看| 国产成人精品免费看在线播放 |