ウチノ前に使ったCSS名前なって言ったっけ



仕事が足りないんじゃない!



たまにしか使わないから思い出せないだけです!(笑)
効果はわかっている。でも名前がでてこない。 コーディングしているとこんなときないですか? 私はよくあります。(泣)
本当にたまにしか使わない(主観です)、しかもAIに確認しようにも名前が思い出せない、スニペットに登録したが登録名を忘れる、などすごい遠回りして確認しているみなさんへ今回はFont周りのCSSプロパティをまとめてみました。
具体的には
p {
word-break: keep-all;
overflow-wrap: anywhere;
// 改行位置について <wbr>タグ使用が前提
}
p {
text-align-last: justify; // テキスト均等割
}
p {
text-emphasis: dot black; // 圏点
}
p {
font-feature-settings: "palt"; // 字詰め
}
p {
writing-mode: vertical-rl; // 縦書き
}文章の折り返しについて
主にリード文や長めのタイトルなどでの改行位置は気を使う項目の一つですね。
特にファーストビューやリード文などではデザイナーさんじゃなくても気になりますよね。
spanタグを使った場合
画面幅に応じて改行を入れる場合、私はspanタグをdisplay: inline-block;を使うことが多かったのですが、この場合長めの文章になると対応が難しくなります。以下例文で確認してみましょう。
<div class="wrapper _480">
<p>
<span>改行で疑問やお悩みを</span>
<span>お持ちの方も多いのではないでしょうか?</span>
<span>弊社は改行にとりくんで早5年になります。</span>
<span>ランディングページや</span>
<span>コーポレートサイトなど</span>
<span>数々のサイトで改行に</span>
<span>取り組んでまいりました。</span>
<span>弊社がいままで積み上げてきた実績は</span>
<span>おかげさまでお客様からは</span>
<span>大変好評いただいております。</span>
<span>「改行とは何か?」</span>
<span>「改行を適切に行うことでどんなメリットがあるのか?」</span>
<span>どんなメリットがあるのか?」</span>
<span>を、わかりやすく解説します。</span>
</p>
</div>
<div class="wrapper _768 mt50">
<p>
<span>改行で疑問やお悩みを</span>
<span>お持ちの方も多いのではないでしょうか?</span>
<span>弊社は改行にとりくんで早5年になります。</span>
<span>ランディングページや</span>
<span>コーポレートサイトなど</span>
<span>数々のサイトで改行に</span>
<span>取り組んでまいりました。</span>
<span>弊社がいままで積み上げてきた実績は</span>
<span>おかげさまでお客様からは</span>
<span>大変好評いただいております。</span>
<span>「改行とは何か?」</span>
<span>「改行を適切に行うことでどんなメリットがあるのか?」</span>
<span>どんなメリットがあるのか?」</span>
<span>を、わかりやすく解説します。</span>
</p>
</div>
.wrapper {
padding-inline: 15px;
margin-inline: auto;
}
.wrapper._480 {
max-width: 420px;
}
.wrapper._768 {
max-width: 768px;
}
.mt50 {
margin-top: 50px;
}
p {
text-align: center;
}
span {
display: inline-block;
}
例えば上の見本では同じ文章を2回表示させています。それぞれwrapper要素に画面幅を想定して上の文章には480px、下の文章には768pxを設定しました。
見比べてみると480px幅の際はおよそ想定どおりですが、768pxになると2行目にある「ランディングページ・・・」は改行が入って欲しい部分です。
幅さらにdisplay: inline-block; では先頭文字に半角くらいの余白が入るので改行が意図しない場合に変な余白が入る場合があります。
その結果、結局<br>タグを画面幅に応じて表示非表示を切り替えるということをしておりました。
overflow-wrap: anywher; を使った場合
まずは実際に見てみましょう。
<div class="wrapper">
<p>改行でこんな疑問やお悩みを<wbr>お持ちの方も多いのではないでしょうか?</p>
<p>弊社は改行にとりくんで早5年になります。</p><p>ランディングページやコーポレートサイトなど</p><p>数々のサイトで改行に取り組んでまいりました。<p>
<p>弊社がいままで積み上げてきた実績は<wbr>おかげさまでお客様からは<wbr>大変好評いただいております。</p>
<p>「改行とは何か?」<wbr>「改行を適切に行うことでどんなメリットがあるのか?」</p><p>わかりやすく解説します。</p>
</div>
.wrapper {
padding-inline: 15px;
margin-inline: auto;
text-align: center;
max-width: 768px;
}
p {
word-break: keep-all;
overflow-wrap: anywhere;
margin: unset;
}画面幅によって改行させたいところに <wbr> を使います。
p {
word-break: keep-all; // CJK (中国語、台湾語、日本語、韓国語) テキストの改行を許可しません
overflow-wrap: anywhere;
}次に上のCSSを設定します。
具体的には<wbr>タグで改行するためにword-break: keep-all;とoverflow-wrap: anywhere;で改行しないように制御しています。
テキストの両端そろえについて
p {
text-align-last: justify;
}このCSSプロパティもよく忘れます。(笑)
コーポレートサイトなどで概要ページでよくある部分で使うこともあると思いますが、
<dl>
<div>
<dt>社名</dt>
<dd>UCHINO株式会社</dd>
</div>
<div>
<dt>資本金</dt>
<dd>1,000,000円</dd>
</div>
<div>
<dt>事業内容</dt>
<dd>Webサイトコーディング</dd>
</div>
</dl>
dl {
width: 390px;
margin-inline: auto;
background-color: #f2f2f2;
padding: 10px
}
div {
display: flex;
}
dt {
width: 30%;
border-bottom: 1px solid black;
text-align-last: justify;
}
dd {
width: 70%;
}文字列を均等割してくれるので便利です。
よく似た名前でtext-align: justify;がありますが、これは複数行にわたり適用するものです。文章のカタマリ全体に対して使用するのでお間違いないように。
圏点(強調点)の付け方
<p>これには圏点があります!! text-emphasis.</p>p {
text-emphasis: dot black;
}

p {
text-emphasis: open double-circle #ffb703;
}

値に点の種類と色を設定するだけです。詳しくはMDNのサイトでお試しください。
上記プロパティはルビと勘違いしている方もいるかもしれませんがルビはHTMLで設定しますのでお間違いないように。
<p>これには<ruby>圏点<rt>けんてん</rt></ruby>があります!! text-emphasis.</p>

字詰め方法について
p {
font-feature-settings: "palt";
}Illustratorのデザインカンプとパーフェクトピクセルで重ねると文字列の横幅がそろわずに、letter-spacingで調整しようとしましたが、うまく合わなくて困りました。
font-feature-settingsは主にカッコや句読点を半角幅にする機能があります。
全体的に字詰めするletter-spacingとは表示結果が合いません。


ただし一部古いフォントには字詰めできないフォント(MSゴシックやメイリオなど)もあります。その場合は効果が適用されないので実際の画面で確認してください。
日本語を縦書きにするなら
これはおぼえられない代表です。忘れた頃にやってきます。
<div> <p><span class="bg">あなたのこころは</span></p> <p><span class="bg">ここにあらず</span></p> <p><span class="bg">ゲームがしたいのでは?</span></p> <p><span class="tate">8</span>月<span class="tate">18</span>日@現在</p> <p><span class="en-tate">Sincerely.@</span>ウチノ</p> </div>
div {
writing-mode: vertical-rl;
background-color: black;
padding: 10px
}
p {
color: white;
}
span.bg {
background-color: gray;
}
span.tate {
text-combine-upright: all;
}
span.en-tate {
text-orientation: upright;
}順番に見ていきましょう。
まず縦書きにするには、
p {
writing-mode: vertical-rl; // 縦書き
}ただし、下の画像のように半角英数字は逆に横向きになります。


半角英数字を縦に向けるには
.tate {
text-combine-upright: all; // 半角数字を縦書き横並びにする。文字が多いとつぶれる。
}

.en-tate {
text-orientation: upright; // 半角英字記号を一文字ずつ縦にならべる
}



まとめ
今回はたまに使うけど、いざ使うときになかなか思い出せないCSSをピックアップしました。
みなさんにもたまに使うCSSがあると思います。
ぜひXでも教えてください。 この記事がみなさんのお役に立てたら幸いです。
参考サイト
改行問題
https://qiita.com/tamanyan/items/e37e76b7743c59235995#%E8%A7%A3%E6%B1%BA%E7%AD%962-word-break-keep-all–overflow-wrap-break-word–wbr
縦書きについて
https://www.webcreatorbox.com/blog/writing-mode

