ブラウザーにとっては、配置を維持することがより重要であるように思われるため、テキストの右端は何があっても右側に保持されます。
ドキュメントはltr
方向に設定されているため、インデントは行の左側に適用されますが、右に揃えたいと言ったため、ブラウザーはインデントを完全に無視します。初期のブラウザが正当化の重要性の優先順位を設定した以外に、なぜこれが起こるのかについての説明はありません。text-align
を明示的に無視する限り、CSS 仕様には何もありません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>