4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

知っておくべきCSSプロパティー

Last updated at Posted at 2021-06-02
1 / 6

#カスタムプロパティ (--*): CSS 変数

前はCSS変数なんてなくて変数をつけたい時はSCSS, SASSなどでつけるしかなかったですが、
今は --global--color-primary のように、頭に -- 接頭辞がつけられたプロパティはカスタムプロパティを表し、 var 関数を使用して他の宣言の中で使用することができる値を持ちます。

カスタムプロパティは宣言された要素のスコープになり、カスケードに関連します。そのようなカスタムプロパティの値は、カスケードのアルゴリズムによって決められた宣言から取られます。

###SCSSの場合

$global--color-primary: #c6538c;

a {
  color: #global--color-primary;
}

###CSS変数を利用する場合

:root {
	--global--color-primary: #28303d;
}

a {
	color: var(--global--color-primary);
}

###例

See the Pen カスタムプロパティー by Lam Minh (@ramukun) on CodePen.

参考:https://developer.mozilla.org/ja/docs/Web/CSS/--*


#content-visibility

content-visibilityはlazyloadのような動きですが、画像だけではなくて、HTML要素にも使えますのでページの読み込みが高速になります。

content-visibility: auto;

visiblehiddenのバリューがありますが、lazyloadみたいな動きはautoを設定します。
コンテンツがviewportに入る時に読み込みが始まって、表示されます。

heightがない場合、contain-intrinsic-sizeで想定のサイズが指定できます。

See the Pen content-visibility by Lam Minh (@ramukun) on CodePen.

*サポートするブラウザーはChrome, Edge, Operaしかないですが、期待できますね。


#Scroll Snap

scroll-snap-type は画面をスクロールしてコンテンツがviewportに入るときにコンテンツが画面の上側や左側にsnapします。
イメージはパララックスみたいな動きです。

snap方向はいくつあります。

  • x : 横のスクロール
  • y : 縦のスクロール
  • both : x, yのスクロール
  • mandatory : width、heightの半分ぐらい過ぎたらsnapされる
  • proximity : コンテンツの 3分の1くらいスクロールしたらsnapされる

See the Pen Scroll-snap-type "Mandatory" vs "Proximity" by Max Kohler (@maxakohler) on CodePen.

参考: https://css-tricks.com/practical-css-scroll-snapping/


:is & :where

最後は :is と :whereを話したいですね。

CSSは下記の書き方があります。

.main a:hover,
.sidebar a:hover,
.site-footer a:hover {
	/* markup goes here */
}

:isを使えばリスト中のセレクターの何れか一つに当てはまる要素をすべて選択します。

:is(.main, .sidebar, .site-footer) a:hover {
	/* markup goes here */
}

:whereも同様

:where(.main, .sidebar, .site-footer) a:hover {
	/* markup goes here */
}

:is:whereの違いは:isの方が優先度が高いそうです。

See the Pen :isと:whereの違い by Lam Minh (@ramukun) on CodePen.


#終わりに
複雑コードやライブラリを使わなくてもCSSだけでパララックスが実装できそうですね。
CSSの進化を楽しみにしています。
ご覧いただきありがとうございました。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?