2021.10.04

HTML・CSS

複数行のテキストの左側を縦のボーダーで装飾

デモページはこちら

複数行のテキストの左側を縦のボーダーで装飾します。CSSはborder-leftの場合とheightを設定した疑似要素beforeをabsoluteで配置する場合で検証します。

htmlの構造は以下の通りです。

<p class="title">border-leftの場合</p>
<p class="text01">abcdefghi<br>jklmnopqr<br>stuvwxyz</p>

<p class="title">heightを設定した疑似要素beforeをabsoluteで配置する場合</p>
<p class="text02">abcdefghi<br>jklmnopqr<br>stuvwxyz</p>

まずborder-leftの場合です。

.text01 {
	font-size: 5rem;
	font-weight: 700;
	line-height: 1.4;
	padding-left: 24px;
	border-left: 6px solid #000;
}

border-leftは高さが設定できないため、ボックスの高さいっぱいまでボーダーで装飾されます。そのためテキストのline-heightが大きければその分ボーダーも高くなります。

次にheightを設定した疑似要素beforeをabsoluteで配置します。

.text02 {
	font-size: 5rem;
	font-weight: 700;
	line-height: 1.4;
	padding-left: 30px;
	position: relative;
}
.text02:before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	display: block;
	width: 6px;
	height: calc(100% - .7em);
	background-color: #000;
	transform: translateY(-50%);
}

疑似要素はdisplay: block;にすれば高さが設定できます。height: calc(100% - .7em);でボックスの高さよりも0.7em分短くしています。縦方向を中央寄せで配置すればバランス良くボーダーで装飾できます。

関連記事

2022.05.11

HTML・CSS

CSSのcalc記述時の注意点

CSSのcalcはCSS3で追加された関数です。calc記述時は以下の点に注意が必要です。 加算・減算の演算子の左右には半角スペースが必要 乗算は掛けられる方(…

2020.09.07

HTML・CSS

animation-fill-modeの指定について

animation-fill-modeプロパティはCSSアニメーション実行後、対象要素にどのようなスタイルを適用するか設定します。animation-fill-…

2023.02.22

HTML・CSS

縦積みinline-flexの折り返しとwriting-modeによる代用

inline-flexで縦積みにした場合の折り返しと、writing-modeで縦積みにした場合の折り返しを確認します。デモページはこちら htmlは以下の単純…

2020.10.15

HTML・CSS

マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点

デモページはこちら マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点です。以下のhtml構造でテストします。 .photo01 a…

2020.10.10

HTML・CSS

CSSのflexbox使用時の注意点

デモページはこちら CSSのflexbox使用時の注意点をまとめました。flexboxは使い方によってレイアウトに表示崩れが発生するパターンがあります。 fle…

上に戻る