通常の文字で構成された長さが不明な文字列があるとします。
文字列に基づいて幅が常に4行になるように調整するにはどうすればよいですか?
アップデート:
これがトリックです:
$("p").css({height: $("p").height()*4});
$("p").css({width: $("p").width()/4});
理にかなっています。高さを4倍に増やしたい場合は、幅を4倍に減らすことを期待します。
通常の文字で構成された長さが不明な文字列があるとします。
文字列に基づいて幅が常に4行になるように調整するにはどうすればよいですか?
アップデート:
これがトリックです:
$("p").css({height: $("p").height()*4});
$("p").css({width: $("p").width()/4});
理にかなっています。高さを4倍に増やしたい場合は、幅を4倍に減らすことを期待します。
あなたが何をしようとしているのかわかりませんが、あなたがする必要のないことをしようとしているようですが、ここに私がそれをするいくつかの方法があります。
<p class="my_p">Blabla</p>
CSSのみ
<style>p.my_p{height: 40px; overflow: hidden;}</style>
または行の高さを持つjQuery
$(function (){
var p = $('.my_p');
var lh = p.css('line-height');
var x = 0;
var i = false;
while (i!='done')
{
if(x>3500) i='done';//prevent infinite loop
x++;
lh = parseInt(p.css('line-height'))*4;
if(p.height()==lh){ i='done'; console.log('done') }
else p.width(p.width()+1);
}
});
</ p>
これがそのためのjsfiddleです... http: //jsfiddle.net/xRxga/1/
それが役に立てば幸い...
または、省略記号を使用します。
編集:あなたの質問を完全に読んでいませんでした。ここに、あなたが求めているものに向けたもう少しのギアがあります。
正確に 4 行の高さを動的に取得するには、CSS クラスを作成して、テキストのスタイル設定 (font-size など) を含める必要があります。次に、次のようにします。
var p = document.createElement("p");
p.innerHTML = "random text";
$(p).addClass("textStyle");
var fourLineHeight = parseInt($(p).css("line-height")) * 4;
編集 2: samsamX が指摘したように、line-height の方が優れています。