【CSS】mask-imageを使って文字や背景にテクスチャを適用してみよう

使用するスタイル

mask-image: {none | url() | linear-gradient() | image() };

概要

mask-imageのプロパティに設定した内容でマスキングをします。SVGを使用してマスクしたり、グラデーションを使ってマスクしたり、画像を使ってマスクすることができます。設定された内容のalphaの値でマスキングされます(rgbaのaの部分)。
試しに、左端をrgba( 255, 255, 255, 1 )、右端をrgba( 255, 255, 255, 0 )のグラデーションにしてみましょう。
グラデーションの作成方法はこちらをご覧ください。

サンプルテキスト Sample Text

上記のサンプルテキストのソースは下記です。

HTML
<div class="case-234"><span>サンプルテキスト Sample Text</span></div>
CSS
.case-234 { text-align: center; } .case-234 span { -webkit-mask-image: linear-gradient( to right, rgba( 255, 255, 255, 1 ), rgba( 255, 255, 255, 0 ) ); mask-image: linear-gradient( to right, rgba( 255, 255, 255, 1 ), rgba( 255, 255, 255, 0 ) ); }

サンプル

mask-imageを使用してサンプルを作成しました。

mask-imageでヒョウ柄の文字を作成

あらかじめヒョウ柄のテクスチャーを用意して、透明度を設定しておきます。
必要ならここから落としてください。

.sample1-234 {
  color: hotpink;
  font-size: 60px;
  font-weight: 600;
  -webkit-mask-image: url( http://creakazukin.wp.xdomain.jp/wp-content/uploads/2018/02/hyou.png );
  mask-image: url( http://creakazukin.wp.xdomain.jp/wp-content/uploads/2018/02/hyou.png );
  -webkit-mask-size: 40px;
  mask-size: 40px;
  text-shadow: 1px   1px black,
                      -1px   1px black,
                        1px -1px black,
                      -1px -1px black;
}

豹柄の文字だよ

【CSS】変数を使ってみよう

使用スタイル

:root{ --foo-bar: white; }

カスタムプロパティの設定方法

CSSで変数を使用するにはカスタムプロパティの記述が必要です。カスタムプロパティの指定方法は「--foo-bar」のように最初に「--」を付けることがルールになっています。
擬似クラスの「:root」のブロック内にカスタムプロパティを記述するとグローバル変数として扱うことができ、好きなところで使用できます。また、カスタムプロパティは継承をする事ができます。「:root」で定義したカスタムプロパティを子要素で上書きすることができます。

カスタムプロパティの値の使用

var()関数を使ってカスタムプロパティの値を使用する事ができます。「background-color: var(--foo-bar);」のように関数を使って変数の値にアクセスします。

サンプル

カスタムプロパティを使ってCSSを適用させます。

:root {
  --sample-box-width: 300px;
  --sample-box-height: 100px;
}

#parent194 div{
  color: white;
}

#parent194 {
  --sample-color: red;
}

#first-child194 {
  --sample-color: blue;
}

#first-child194 {
  width: var( --sample-box-width );
  height: var( --sample-box-height );
  background-color: var( --sample-color );
}

#second-child194 {
  width: var( --sample-box-width );
  height: var( --sample-box-height );
  background-color: var( --sample-color );
}
背景色に、継承したカスタムプロパティが反映される
背景色に、親の(id=”parent194″)のカスタムプロパティが反映される

【CSS】animationを使ってみよう

使用スタイル

animation(duration | timing-function | delay |
iteration-count | direction | fill-mode | play-state | name );

duration

durationには一回のアニメーションの再生時間を記載します。単位はミリ秒(ms)と秒(s)を指定する事ができます。

timing-function

timing-functionはアニメーションの再生の進行度合いを設定できます。早い段階で多くのアニメーションを進行させ、最後の段階ではゆっくり進行させるなど、どのように進行させるかを決められます。初期値はeaseという開始と終了の進行度合いをゆっくりにして滑らかにします。cubic-bezier()を指定して自由に進行度合いを決めたり、stepを指定して段階的に進行させることもできます。

delay

delayにはアニメーションを再生する前に待つ時間を指定できます。こちらも単位はミリ秒(ms)と秒(s)を指定する事ができます。

iteration-count

iteration-countにはアニメーションの再生回数を指定できます。再生回数を数字で指定する事ができ、infiniteを指定する事で無限に繰り返す事もできます。

direction

directionにはアニメーションの再生方向を指定できます。normal,reverse,alternate,alternate-reverseを指定する事ができ、各々でアニメーションの再生方向が違います。左から右に移動するアニメーションだと仮定して説明します。

normal
normalを指定すると常に通常の方向に再生します。つまり、常に左から右に移動します。
reverse
reverseを指定すると常に逆の方向に再生します。つまり、常に右から左に移動します。
alternate
alternateを指定すると、奇数回目は通常方向、偶数回目は逆の方向に再生します。つまり、1回目は左から右に移動し、2回目は右から左に移動し、3回目は左から右に移動します。4回目は…となります。
alternate-reverse
alternate-reverseを指定すると、奇数回目は逆方向、具数回目は通常の方向に再生します。つまり、1回目は右から左に移動し、2回目は左から右に移動し、3回目は右から左に移動します。4回目は…となります。

fill-mode

fill-modeにはアニメーション再生前・再生後の状態を指定する事ができます。none, backwards, forwards, bothを指定する事ができ、再生後の状態が各々で変わります。左から右に移動するアニメーションだと仮定して説明します。

none
アニメーションの再生後はキーフレームの値に関係なく、元のスタイルに戻ります。
backwards
アニメーションの再生後はキーフレームで指定された0%あるいはfromのスタイルが適用されます。
forwards
アニメーションの再生後はキーフレームで指定された100%あるいはtoのスタイルが適用されます。delayで指定された時間分待っている間は元のスタイルが適用されます。
both
アニメーションの再生後はキーフレームで指定された100%あるいはtoのスタイルが適用されます。forwardsと違う点はdelayで指定された時間分待っている間はキーフレームで指定された0%あるいはfromのスタイルが適用されます。

play-state

play-stateではアニメーションを再生するか、一時停止するかを指定できます。running, pausedを指定する事ができ、runningが指定されている最中はアニメーションが再生され、pausedが指定されている最中は指定されたときの状態で一時停止します。再度runningを指定して再生した際は、最初から再生しなおすわけではなく、一時停止の状態から再生されます。

name

nameではキーフレームを指定する事ができます。「@keyframes XXX」のXXX部分を指定する事で、キーフレームを選択できます。キーフレームを選択しないと、animationは実行されません。

サンプル

#animation-view155{
  box-sizing: content-box;
  height: 1.5em;
  overflow: hidden;
  width: 16em;
}

#animation-contents155{
  -moz-animation: 4s steps(15) 0s infinite normal none running typing;
  -webkit-animation: 4s steps(15) 0s infinite normal none running typing;
  animation: 4s steps(15) 0s infinite normal none running typing;
  display: inline-block;
  float: right;
  text-shadow: 1px 1px 3px rgba(128, 128, 128, .6);
  width: 0em;
  word-break: break-all;
}

@-moz-keyframes typing{
  0%{ width: 0em; }
  100%{ width: 16em; }
}

@-webkit-keyframes typing{
  0%{ width: 0em; }
  100%{ width: 16em; }
}

@keyframes typing{
  0%{ width: 0em; }
  100%{ width: 16em; }
}
HTML CSS javascriptのまとめ

【CSS】linear-gradientを使ってみよう

使用スタイル

linear-gradient([ <angle> | to <side-or-corner> ,]? <color-stop> [, <color-stop>]+);

上から下へグラデーション

上から下に向かってグラデーションをかけてみます。

#to-bottom{
  background:  linear-gradient( to bottom, pink, cyan);
}

上から下へグラデーションをかけたらこうなります

ななめのグラデーション

左上にむかって(ななめに)グラデーションをかけることもできます。左下にむかってグラデーションをかけたい場合は、[to left bottom]です。

#to-left-top{
  background: linear-gradient(to left top, green, lime, white);
}

ななめのグラデーションをかけたらこうなります

角度指定のグラデーション

今まではどこにむかってグラデーションをかけるかを指定していましたが。グラデーションをかける際に角度で指定することもできます。

#deg-samp{
  background: linear-gradient( 13deg, red, orange, yellow, green, blue, indigo, violet);
  color: white;
}

角度指定のグラデーション

グラデーションを使って蛍光ペン風にアレンジ

Webで調べ物をしていると、よく蛍光ペンを引いたようなアレンジをしているところがあります。そんなアレンジもCSSだけでできちゃいます。

.sample-marker{
  background: linear-gradient( transparent 35%, yellow 35%, transparent 95%);
}

蛍光ペン風にアレンジできます。

【CSS】filterを使ってみよう

使用スタイル

filter: <filter-function> [<filter-function>]* | none

ぼかし

画像にぼかしを入れる事で曇りガラスのような雰囲気をCSSだけで作成できます。

#blur-img1{
  filter: blur(1px);
}
#blur-img2{
  filter: blur(4px);
}

オリジナル
オリジナル画像
blur(1px)
ぼかし加工した画像
blur(4px)
ぼかし加工した画像2

セピア

写真をセピアフィルターにかけるとこんな感じです。

#sepia-img1{
  filter: sepia(50%);
}
#sepia-img2{
  filter: sepia(100%);
}

オリジナル
オリジナル画像
sepia(50%)
セピア調の画像
sepia(100%)
セピア調の画像2

グレースケール

写真をグレースケールにするとこんな感じです。最近よく見かけるような気がします。

#gray-img1{
  filter: grayscale(50%);
}
#gray-img2{
  filter: grayscale(100%);
}

オリジナル
オリジナル画像
grayscale(50%)
グレースケールの画像
grayscale(100%)
グレースケールの画像2

フィルターを使った画像とオリジナルの画像の組み合わせ

グレースケールの中に色のある画像があると一際目立って見えますね。

#img-wrapper{
  position: relative;
}
#park-img{
  filter: grayscale(100%);
}
#cat-img{
  bottom: 10%;
  left: 10%;
  position: absolute;
  width: 20%;
}
背景画像
猫の画像