前几天看杜大大的CSS参考手册,看到了老生常谈的文字两端对齐对齐方式,觉得很好,便记录下来。
如果要实现本例中单行两端对齐,可以这样做:
- 首先,所有主流浏览器都支持text-align的justify属性值;*.其次,在这个例子中每个 p 都只有一行(所以既是第一行也是最后一行),所以无法通过定义text-align: justify来实现两端对齐,因为text-align: justify不会处理块级内容文本的最后一行。
- 再次,好在有一个专门用来处理最后一行对齐的属性text-align-last,可以通过定义text-align-last: justify来实现单行文本两端对齐。遗憾的是,不少浏览器尚不支持该属性。
- 综上所述,我们无法简单的通过使用ttext-align或者text-align-last来实现单行文本两端对齐。那么可以换个思路,想办法让它们变成多行文本,使用伪元素派生一行新的占位内容是个不错的选择,此时再实现两端对齐,只需要text-align就行了。
但是IE7 及以下浏览器不支持伪元素,如果要支持的话,可以直接使用text-align-last。Ps(谁还兼容IE7啊)实现及效果如下:
.demo p {
text-align: justify;
text-align-last: justify;
}
.demo p::after {
display: inline-block;
width: 100%;
height: 0;
content: "\0020";
overflow: hidden;
}
这种解决方案并没有解决元素内容为数字或者字母的两端对齐问题,如有好的答案,不吝赐教,谢谢