だから私はいくつかの動的テキストを含むDIVを持っています。テキストとフォントサイズはわかっているが、DIVのサイズがわからないとします。テキストが折り返されるときにインデントを表示するのに十分なインテリジェントなDIVでのテキストの表示を希望します。
私の元のテキストが次のようなものだったとしましょう:
Lorem ipsum dolor sit amet、 consectetur adipisicing elit、sed do eiusmod tempor incididunt
代わりに、次のようにしたいと思います。
Lorem ipsum dolor sit amet、 consectetur adipisicing elit、sed do eiusmod tempor incididunt
DIVのサイズがアプリオリにわからない場合、これを行う最善の方法は何ですか?そして、私がサイズを知っている場合、それを行うための最良の方法は何ですか?
ありがとう!
私があなたが何を求めているのか理解できれば、これは私にとってはうまくいきます:
div {
padding-left: 2em;
text-indent: -2em;
}
クロスブラウザーのサポートについては不明ですが、 first-line pseudo-element を使用できます:
p {padding:10px;}
p:first-line {padding-left:0px;}
<p>Hello World, I'm Jonathan Sampson</p>
として表示されます
ハローワールド
ジョナサン
サンプソン
それ以外に、要素に左パディングを付けてから、負のテキストインデントを付けることができます。
これは、可変サイズのDIVでも固定サイズのDIVでも同じように機能するはずです。
<div style="width: 150px; text-indent: -2em; padding-left: 2em;">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
incididunt.
</div>
CSSを使用するtext-indent
プロパティ:
.box {
border: 1px solid #ddd;
background: #fff;
max-width: 300px;
padding: 15px 15px 15px 45px;
}
.box p {
font-family: Arial, sans-serif;
line-height: 1.5;
margin: 0;
text-align: justify;
font-size: 12px;
text-indent: -30px;
}
<div class="box">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Illo repellendus natus minima ex possimus? Pariatur odit distinctio, similique, adipisci nesciunt molestias iusto ipsa repellendus recusandae unde, enim veniam voluptatem expedita.</p>
</div>