半角英数字テキストの折り返し対策、word-breakプロパティ

どうも、くまだです。

半角英数字系のテキストの折り返し対策。word-breakプロパティを使う。

半角英数字テキストの折り返しword-break

word-breakプロパティは文章の改行の仕方を変更したいときに使います。なので、半角英数字のときに使うというのは厳密には違います。

例えば以下のようなケース。

  <ul class="p-cards">
    <li class="p-cards__item p-card" >
      <div class="p-card__img">
        <img src="images/dummy.png" alt="">
      </div>
      <p class="p-card___text">タイトルタイトル</p>
    </li>
    <li class="p-cards__item p-card" >
      <div class="p-card__img">
        <img src="images/dummy.png" alt="">
      </div>
      <p class="p-card___text">タイトルタイトル</p>
    </li>
    <li class="p-cards__item p-card" >
      <div class="p-card__img">
        <img src="images/dummy.png" alt="">
      </div>
      <p class="p-card___text">タイトルタイトル</p>
    </li>
    <li class="p-cards__item p-card" >
      <div class="p-card__img">
        <img src="images/dummy.png" alt="">
      </div>
      <p class="p-card___text">タイトル</p>
    </li>

  </ul>

.p-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  column-gap: 10px;
  row-gap: 10px;


  margin-top: 80px;
  max-width: 80%;
  margin-right: auto;
  margin-left: auto;

}


.p-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  position: relative;
}

.p-card__img {
  width: 100%;
  display: block;
}

.p-card img {
  width: 100%;
  height: 100%;
  display: block;
}

.p-card___text {
  flex-grow: 1;
}

.p-card__link-wrap {
  margin-top: 10px;
}

.p-card__link {
  padding: 8px;
  display: inline-block;
  background: yellow;
}


画像横並び

よくあるカード型の配置のものですが、こちらの見出しに半角英数字を適用すると、

画像横並びスタイル崩れ

レイアウトが崩れます。例えばカードにmax-widthを指定すると、半角英数字テキストは折り返さずに表示されてしまいます。

画像横並びスタイル崩れ

これは例えば、bodyタグ(カードでもいい)にword-breakプロパティ指定で改行できます。

body {
  word-break: break-all;
}
画像横並び

半角英数字テキストでも改行されます。

word-breakプロパティは、以下の値が使えます。

  • normal:デフォルト
  • beak-all:CJK以外のテキストで単語中の文字改行禁則処理を解除。どの文字間でも改行する
  • keep-all:CJKテキストの改行を許可しない。

break-allは便利ですが、単語の途中の括弧で折り返したり、句読点が文の頭にくるケースも考えられるので、注意しましょう。

ここまで読んでくださりありがとうございました。

この記事を書いた人