使用text-align:justify,让内容两端对齐,兼容IE及主流浏览器的方法(转)

如果不喜欢看分析过程,可以跳到最后看最终兼容方案

史前方法:

以前实现两端对齐是这样的:

<p class="box1">密&emsp;&emsp;码</p>
<p class="box1">用&emsp;户&emsp;名</p>
<p class="box1">身&emsp;份&emsp;证&emsp;号</p>

效果是这样:

image

然后再慢慢加&emsp 或者&nbsp 来调整。原始、粗暴、效率低。em。。。应该摒弃。。。

现代方式:

自从了解到 text-align:justify 发现,原来还有这种操作。

<ul>
    <li>密码</li>
    <li>用户名</li>
    <li>身份证号</li>
</ul>
ul li{
    width: 120px;
    text-align: justify;
}

满怀期待,结果是

image

???不是两端对齐么,怎么会无效???

原来是这样的:

(1) text-align:justify 不处理强制打断的行,也不处理块内的最后一行。通俗一点讲,就是只有一行显示的时候这个属性是不起作用的,或者使用了word-break: break-all;这种强制换行的属性,也是不起作用的。

(2) 如果内容是多于一行的时候,除了最后一行,都是两端对齐的效果。

问:那么当只有一行显示的时候,怎么让它能左右两端对齐呢?

方法一:在内容中添加一个用于占位的标签,让内容处于第一行,就能达到效果:

<ul>
    <li>密码<p class="zw"></p></li>
    <li>用户名<p class="zw"></p></li>
    <li>身份证号<p class="zw"></p></li>
</ul>
ul li{
    width: 120px;
    text-align: justify;
}
.zw{
    display: inline-block;
    width: 100%;
}

这时结果为:

image

为什么内容效果实现了,但是下面会多出空白来呢?设置zw元素 height:0 都不起作用。。。我估计产生间隙的原因是 display: inline-block; 导致的。那么怎么解决呢?

这时就只有设置 li 的高度,比如给 li 添加 height: 40px;line-height: 40px; 。

结果如下:

image

这样就解决了空白的问题。

注意:如果只设置height,不设置line-height的话,当height设置的值有点小,比如20,还是看不出来空白,但是设置有点大,比如40的时候,空白又会出现,但是这空白并不是占位符的空白,而是内容没有垂直居中,剩下的div的空白

所以设置高度时最好line-height都带上。

方法二:使用:after伪元素(ie7及以下不支持伪类)

<ul>
    <li>密码</li>
    <li>用户名</li>
    <li>身份证号</li>
</ul>
ul li{
    width: 120px;
    height: 40px;
    line-height: 40px;
    text-align: justify;
}
ul li:after{
    content: '';
    display: inline-block;
    width: 100%;
}

** 效果:**

image

(1) 和上面的效果一样,空白部分也可以通过设置height和line-height来避免。

(2) 这个方法的好处就是少了占位标签。

方法三:使用 text-align-last:justify 属性

<ul>
    <li>密码</li>
    <li>用户名</li>
    <li>身份证号</li>
</ul>
ul li{
    width: 120px;
    text-align: justify;
    text-align-last:justify
}

效果:

image

(1)这个方法使用了 text-align-last:justify 这个属性,这样就只需两个属性就能达到两端对齐的效果

(2) text-align-last:justify 这个属性的兼容性不好。

(3)这样的结果在谷歌、火狐浏览器上能正确显示,但是在其它浏览器中却没效果。因为大部分浏览器要使得两端对齐生效,需在文本间插入空白,如空格。

所以,才有了兼容多种浏览器的终极兼容方法

<ul>
    <li>密 码</li>
    <li>用 户 名</li>
    <li>身 份 证 号</li>
</ul>
ul li{
    width: 120px;
    height: 40px;
    line-height: 40px;
    text-align: justify;
    text-align-last:justify
}
ul li:after{
    content: '';
    display: inline-block;
    width: 100%;
}

(1)注意每个单词之间都有空格,这个很重要,很重要,很重要,而且只需一个空格就行,多个空格也不影响。如果没有这个空格,兼容性很差,基本只有谷歌和火狐支持。

(2)这个方法兼容ie7及以上,还有其它的浏览器。ie6没测,所以不敢下结论。

(3)多行内容也可以使用同样的方法,只是最后一行如果不去加空格,还是不会处理,只是默认的往左对齐。

(4)li 这个标签要设置 list-style: none; 去掉默认属性,否则当只有一行的时候,会出现并没有左右两端对齐,而是类似右对齐的bug。。。

来源:https://www.cnblogs.com/zjjDaily/p/9525350.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,122评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,070评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,491评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,636评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,676评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,541评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,292评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,211评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,655评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,846评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,965评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,684评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,295评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,894评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,012评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,126评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,914评论 2 355