似乎保持对齐对浏览器来说更重要,所以无论如何,文本的右边缘都保持在右侧。
文档设置为ltr
方向,因此缩进应用于行的左侧,但由于您已经说过希望它与右侧对齐,所以浏览器完全忽略缩进。我没有解释为什么会发生这种情况,除了早期的浏览器设置了理由重要性的优先级。CSS 规范中没有text-align
明确忽略text-indent
.
该框相对于行框的左(或右,对于从右到左的布局)边缘缩进。用户代理必须将此缩进呈现为空白。
http://www.w3.org/TR/CSS2/text.html#propdef-text-indent
如果我们将小提琴更新为有rtl
方向,缩进确实会影响文本的右侧。我添加了一个边框来显示溢出正在发生。
http://jsfiddle.net/sNbfv/3/
.rtl{direction:rtl;}
.parent { text-align: right; border:1px solid blue}
.indented { text-indent: -9999px; }
<div class="rtl">
<div class="parent">
<div class="indented">
Lorem ipsum ipsum!
</div>
</div>
<div class="indented">
Cupcake ipsum!
</div>
</div>
简单的解决方案似乎是对齐嵌套的 indent to text-align:left
。
http://jsfiddle.net/sNbfv/4/
.parent { text-align: right; border:1px solid blue}
.indented { text-indent: -9999px; }
.parent .indented{ text-align:left; }
<div class="parent">
<div class="indented">
Lorem ipsum ipsum!
</div>
</div>
<div class="indented">
Cupcake ipsum!
</div>