css – 使用text-align justify / text-justify和right时的奇怪行为

前端之家收集整理的这篇文章主要介绍了css – 使用text-align justify / text-justify和right时的奇怪行为前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我碰到了一个特定于IE的问题,我无法解决这个问题.

以下HTML和CSS可以直播in this pen.

:: HTML

:: CSS

/* RESET */
* { margin: 0; padding: 0; vertical-align: top; }
ul { list-style: none; }

/* MARKUP */
#container {
    line-height: 0;
    font-size: 0rem;
    text-align: justify;
    text-justify: distribute-all-lines;
}

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

#container > * {
    display: inline-block;
    line-height: 1;
    font-size: 1rem;
    text-align: left;
    text-justify: none; /* does not work */
}

#container nav {
    text-align: right;
}

#right > * {
    display: inline-block;
}

/* COLORS & STUFF */
#container { padding: 10px;  background: #cfc; }
.dummy { padding: 10px; background: #ffc; }
#container nav { padding: 10px; background: #ccf; }
ul { padding: 10px; background: #fcc; }

所以有什么问题?

绿色div的内容是合理的,而非div的每个孩子依次给出text-align:left;.那些孩子是:左假人和蓝色导航.

导航包含一个列表(红色)和两个虚拟对象.对于红色列表的项目,text-align设置为right – 并且存在问题(或者至少在那里你可以看到它).

第一个图像向左移动(因此覆盖/隐藏了一些文本).第二个图像(以及整个第二个列表项)很好.但是,在更改文本时,这会发生变化.看起来似乎只有最长(意义最宽)的项目的图像停留在它应该的位置 – 所有其他图像(如果你要创建更多的项目)被移位 – 取决于列表项的宽度,即.

现在,为什么会如此 – 我该如何解决

到目前为止我发现了以下几件事:

>设置li {text-align:left;图像在两个文本部分之间保持良好 – 当然,我没有正确对齐.
>从#container中删除text-justify时,图像也保持正常.
>将text-justify设置为auto或none似乎不起作用…

再一次:这只是关于Internet Explorer(9).

//编辑
为了避免你花在我不感兴趣的事情上的时间,我会发布更多关于我想拥有的东西.

最终的代码必须

>保持当前/所需的功能(即合理的对齐);
>在所有主流浏览器中工作(当前版本,之前至少有一个).

最终的代码不能

>包含浮子;
>包含绝对/相对位置.

//编辑
这是所需结果(Firefox)的屏幕截图,以及我在IE中得到的结果之一…

最佳答案
更改您的文本对齐分发(在IE10,IE9,Chrome,FF中测试):

text-justify: distribute;

查看codepen以查看它的运行情况.

原文链接:https://www.f2er.com/css/427156.html

猜你在找的CSS相关文章