コンテンツの長い文字列を前提として、テキストの最初の2行だけを表示したいと思います。このコンテンツのコンテナは流動的であり、ブラウザの幅に合わせてサイズが変更されます。コンテナの幅に関係なく、テキストには常に2行のみを表示する必要があります。これを行う方法はありますか?
上記を行う方法がない場合、文字数に基づいて制限する方法はありますか?
コンテンツの長い文字列を前提として、テキストの最初の2行だけを表示したいと思います。このコンテンツのコンテナは流動的であり、ブラウザの幅に合わせてサイズが変更されます。コンテナの幅に関係なく、テキストには常に2行のみを表示する必要があります。これを行う方法はありますか?
上記を行う方法がない場合、文字数に基づいて制限する方法はありますか?
このスニペットが役立ちます。
フォント サイズの変更については、 Max-HeightとLine -Height を調整するだけです。
.limit-2 {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
line-height: 21px;
max-height: 48px;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
純粋なCSSソリューションは、テキストブロックと「text-overflow」プロパティに指定された高さを使用することを意味します。CSSには線の概念がないため、これを実現するのはかなり困難です。代わりに、JavaScriptソリューションは、改行文字に一致する正規表現を意味します。
divの高さを固定して、次のように作成できoverflow
ますhidden
div{
height:auto;
max-height:40px;
overflow:hidden;
background:red
}
また
簡単なJquery
方法を使用する
$('p').condense({ellipsis:'…', condensedLength: 55});
あなたの問題を解決するためのいくつかの回避策があります (これは css では不可能だと思います)。
したがって、私のソリューションは次のように機能します。
var height = parseInt($("#foo").css("line-height"));
var lineCount = 2;
height *= lineCount;
$("#foo").css("height", height + "px");
line-height
コンテナとコンテナのセットheight
を に取りますline-height * lineCount
。