2021.07.06

HTML・CSS

background-imageプロパティを利用した高さ可変の三角形

borderプロパティで三角形を作成した場合、高さを可変にすることができません。そこで、background-imageプロパティのlinear-gradient(線形グラデーション)を利用して、高さ可変の三角形を作成します。
デモページはこちら

CSSはdivタグの疑似要素に指定します。width: 60px;、height: 100%;、background-size: 100% 100%;を指定することで、ボックス内のテキスト量の増減に合わせて三角形の高さのみが可変します。

三角形はposition: absolute;で配置します。左寄せの三角形はleft: 0;を指定します。

.div01 {
	position: relative;
	margin: 0 0 1em;
	padding: 40px 40px 40px 70px;
	background-color: #1563ad;
	color: #fff;
}

.div01::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	display: block;
	width: 60px;
	height: 100%;
	background: no-repeat top left/100% 100%;
	background-image: linear-gradient(to top left, transparent 50%, #f2f2f2 50.5%);
}

右寄せの三角形はright: 0;を指定します。background-imageプロパティはbackgroundプロパティにショートハンドで記述することができます。

.div02 {
	position: relative;
	margin: 0 0 1em;
	padding: 40px 70px 40px 40px;
	background-color: #1563ad;
	color: #fff;
}

.div02::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	display: block;
	width: 60px;
	height: 100%;
	background: linear-gradient(to top right, transparent 50%, #f2f2f2 50.5%) no-repeat top left/100% 100%;
}

関連記事

2020.10.19

HTML・CSS

コーディング時のIE11のバグ

コーディング時に発生したIE11のバグのまとめです。主にflexboxで発生します。 ■ display: flexの要素にmin-heightを指定した場合、…

2022.08.30

HTML・CSS

linear-gradientを利用した文字の下線

background-imageプロパティのlinear-gradientを利用して複数行の文字に下線を引きます。複数行に対応させるため、inline要素に適用…

2021.07.12

HTML・CSS

CSSカスタムプロパティの使い方

CSSカスタムプロパティはCSS変数とも呼ばれ、CSS内に変数を定義して各プロパティの値で呼び出して使用します。一般的に変数は:rootに定義してグローバル変数…

2020.09.14

HTML・CSS

metaタグのformat-detectionで自動リンクを無効化

デモページはこちら metaタグのformat-detectionを設定して、スマホのブラウザで電話番号、メールアドレス、住所の表記がリンクに自動変換されるのを…

2024.09.09

HTML・CSS

border-radiusプロパティを利用した要素サイズいっぱいの角丸

border-radiusプロパティを利用して、要素サイズいっぱいの角丸を作成します。デモページはこちら まず正方形にborder-radius: 50%を指定…

上に戻る