Contents - 目次
CSSで文字数の制御。text-overflowの使い方。
text-overflowの仕様。
text-overflow
text-overflowで3点リーダーを付ける場合は単体では機能しなく、次の4つを一緒に指定する必要がある。
- width: 30em; (幅の単位や広さは任意。)
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
「text-overflow」の実装例 – ellipsis。
text-overflowの実装例。
ellipsis
30文字分の文字数を抜粋し、3点リーダーを付けたい場合は「ellipsis」で。
HTML
<p class="ellipsis">この文章はtext-overflowプロパティにより文字数が制限されます。</p>
<p class="ellipsis">1234567890123456789012345678901234567890123456789012345678901234567890</p>
<p class="ellipsis">123456789012345678901234567890123456789012345678901234567890</p>
CSS
.ellipsis {
width: 30em;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
結果。
この文章はtext-overflowプロパティにより文字数が制限されます。
1234567890123456789012345678901234567890123456789012345678901234567890
123456789012345678901234567890123456789012345678901234567890
emという単位について。
width: 30emにより文字数が30文字を超えると3点リーダーが付き、それ以上の文字列は省略される。と思いきや、実際には30文字分ではない。
一昔前はemは文字数分の単位(例えば10emなら10文字分)と言われていた時期や情報があったが、実際には親要素のフォントサイズなどの影響を受けるため、きっちり30文字分とはならない。
参考: CSS の値と単位 – ウェブ開発を学ぶ | MDN
複数行の場合はline-clampで。
「text-overflow」は1行内の文字数の制御に向いている。
似たプロパティに「line-clamp」があるが、line-clampは文字数ではなく、行数の指定に対応している。
参考:line-clampの使い方。CSSで複数行指定。効かないときは?
「text-overflow」の実装例 – clip。
text-overflowの実装例。
clip
横幅300px分の文字数を抜粋し、切り取りたい場合は「clip」で。
HTML
<p class="clip">この文章はtext-overflowプロパティにより文字数が制限されます。</p>
<p class="clip">1234567890123456789012345678901234567890123456789012345678901234567890</p>
<p class="clip">123456789012345678901234567890123456789012345678901234567890</p>
CSS
.clip {
width: 300px;
white-space: nowrap;
overflow: hidden;
text-overflow: clip;
}
結果。
この文章はtext-overflowプロパティにより文字数が制限されます。
1234567890123456789012345678901234567890123456789012345678901234567890
123456789012345678901234567890123456789012345678901234567890
文字数を厳密に指定したい!という場合。
mb_substrの実装例。
mb_substr
WordPressサイトなどであれば、文字数の抜粋はPHPでも可能。
例えば記事タイトルの文字数を抜粋したい場合、下記のmb_substr関数を使用したコードで実装できる。get_the_title()のように、見出しタグの中に入れれば良い。
記事タイトルを10文字抜粋し、3点リーダーを付ける場合。
PHP
<?php echo mb_substr($post->post_title, 0, 10) . '…'; ?>
以上、参考になれば幸いです。
※Webデザインは実務数年、職業訓練校講師数年、フリーランス数年、計15年以上のキャリアがありますが、一気にがぁっと書いているので「です・ます調」ではありません。(元々はメモ書きでした。) ※事実や経験、調査や検証を基にしていますが、万一なにかしら不備・不足などがありましたらすみません。お知らせいただければ訂正いたします。 ※写真は主にUnsplashやPixabayのフリー素材を利用させていただいております。その他の写真や動画もフリー素材やパブリックドメイン、もしくは自前のものを使用しております。
CSS 関連メモ。
- CSSの一部が効かないときは、キャッシュやダークモードが原因かも。
- first-letterが効かないとき。覚えると便利なCSS擬似要素。
- rgb()で透明度も。CSSの新しい色指定と使い方の例。
- CSSでダークモード。prefers-color-schemeの使い方と効かないとき。
- CSSで縦書き。writing-modeの使い方。効かないときは?
- scroll-snap-typeの使い方。CSSでカルーセル。効かないときは?
- CSSのブレイクポイントの書き方。メディアクエリはいくつがおすすめ?
- CSS gapの使い方?Flexboxでレスポンシブ?効かないときは?
- CSSの変数と関数。覚えておくと便利なCSSプログラミング。
- CSS aspect-ratioの使い方。効かないときはどうする?
- text-overflowの使い方。CSSで文字数を制御。効かないときは?
- detailsとsummaryの使い方。HTML&CSS or jQueryアコーディオン。
- CSSブレンドモード。mix-blend-modeの例一覧。乗算やスクリーンを。
- counter-incrementの使い方。CSSで連番。増えない時の対処。コピペOK。
- CSS フォントサイズはどうする? remの基本かつ効果的な使い方。
- line-clampの使い方。CSSで複数行指定。効かないときは?
- CSSの@whenと@else。新しいブレイクポイントの設定方法?
- 縁取り文字はCSSのtext-strokeで可能。(非推奨の時代は終わり。)
- CSS変数の使い方例。:rootを使ってカスタムプロパティを覚える。
- CSSでフェードイン。JS不要、コピペ可。ちょっとリッチな雰囲気を。
- CSS カラーコードで透明度を指定したいとき。(16進数6つ+2つで。)
- CSS max-width レスポンシブ対応のピクセル指定は崩れる原因となる。
- CSSのobject-fitの使い方。トリミングやサイズの実装例。
- backgroundの複数指定が効かない時の確認事項。(CSSアニメーションとの組み合わせ。)
- CSS filterで色変更。色相・彩度・明度? filterプロパティでできること。
- CSS position: stickyの使い方。効かない!ときはここをチェック。