生涯、学習していきたい

いろいろなことを考えるのが好きです。

ドットインストールでCSS3を学ぼう#18〜#19

ドットインストールさんでCSS3を学ぶシリーズもいよいよ最終回になりました。

がんばっていきましょう♪

 

 

 #18 animationを使ってみよう

#17では、transitionを使って簡単なアニメーションを作りました

今回は、より複雑なアニメーションを作っていきましょう。

 

今回も、水色のボックスが用意されています。

<body>

   <div></div>

</body> 

 cssはこんな感じです。

div{
width: 50px;

height: 50px;

background: skyblue;

}

 ブラウザで見るとこのようになっています。

f:id:ponnkichi:20180304082118p:plain

今回は、この水色のボックスをアニメーションで動かしてみましょう。

使うのは、「animation」プロパティです。

animationプロパティはcanIuseで確認すると、ベンタープレフィックスが必要となっていますので

ベンダープレフィックスに関しては#16をご参照ください

ドットインストールさんではChromeを使っていますので、ベンダープレフィックスは

webkit」を使います。

-webkit-animation: slidein;

 このようにすると、

水色のボックスがスライドしてくるアニメーションがつくられます。

あとは、transitionと同じような指定ができます。

 

-webkit-animation-duration: 1s;

 これで、アニメーションにかかる時間は1秒と指定されます。

-webkit-animation-timing-function: ease;

これで、動きがなめらかになります。

-webkit-animation-delay: .1s; 

これで、アニメーションが0.1秒後に始まるようになります。

 

続けて書くと、こうですね。 

div{
width: 50px;

height: 50px;

background: skyblue;

 

-webkit-animation: slidein;

-webkit-animation-duration: 1s;

-webkit-animation-timing-function: ease;

-webkit-animation-delay: .1s; 

}

 これで、水色のボックスのアニメーションが指定されました。

 

ここまでできたら、アニメーションの途中の状態も指定しましょう。

それには、keyframesという指定をします。

@-webkit-keyframes slidein{

  0%{

  margin-left: 100%;

  background: white;

  }

  70%{

  margin-keft: 50%

  background: blue;

  }

  100%{

  margin-left: 0%

  }

}

 slideinというアニメーションで、

0%のときには右端にボックスがいて

70%のときには真ん中。一瞬ボックスが青になります。

100%のときには左端にきています。

 

これを、動画でお見せできないのが残念。

ぜひとも、ドットインストールCSS3#18をご覧になってみてくださいね。

f:id:ponnkichi:20180304083533p:plain

f:id:ponnkichi:20180304083551p:plain

f:id:ponnkichi:20180304083618p:plain

最初は白かったボックスが青になり、

真ん中をすぎると水色になって

左端に落ち着きます。

 

画像だとわかりにくくて、重ね重ね残念です^^;

 

 

ちなみに、このアニメーションを何回も繰り返す場合には、

-webkit-animation-iteration-count: infinite;

を付け加えると、

同じ

「右から出て左に行く」というアニメーションをずっと繰り返すことができます。

 

「右から左」だけでなく、

「右から左」そのつぎは「左から右」そして「右から左」と繰り返す場合には、

こちらも付け加えます。

-webkit-animation-direction: alternate ; 

 場所はこんな感じの場所で。

 

div{
width: 50px;

height: 50px;

background: skyblue;

 

-webkit-animation: slidein;

-webkit-animation-duration: 1s;

-webkit-animation-timing-function: ease;

-webkit-animation-delay: .1s; 

-webkit-animation-iteration-count: infinite;

-webkit-animation-direction: alternate ; 

}

 付け加える感じですね。

よく動き回る広告を見ることがありますが、animationプロパティで動かしているのかな?と思うと

味わい深いものがありますね。

#19 box-sizingを使ってみよう

cssのwidyhやheightを、paddingやborderを含めた値にしたいときに使う、

box-sizingについて学習します。

今回用意されているのはこんなhtmlです。

<body>

   <div class="container">

 

   </div>

</body> 

 わかりやすいように、marginとpaddingも0に。

body{

margin: 0;

padding: 0;

 そして、.comtainerはこんなふうに。

.contasiner{

width: 320px;

height: 100px;

background: skyblue;

 最初は、こんな風に表示されます。

f:id:ponnkichi:20180304215144p:plain

ここに、ボックスを表示していきます。

<body>

   <div class="container">

     <div class="box">Box</div>

     <div class="box">Box</div>

     <div class="box">Box</div>

   </div>

</body> 

 ボックスを3つ追加します。

ひとつひとつのボックスはこんな感じにします。

.box{

width: 100px;

height: 100px;

background: #eee;

float: left;
}

並べるために、float:left;にします。

さらに、 ボックスの間に間隔を設けます。

.box + .box{

magin: left;

 すると、こんなふうに3つのボックスが並びます。

f:id:ponnkichi:20180304220048p:plain

これに、padding とborderをつけてみたいと思います。

padding: 10px;

border-bottom: 10px solid #ccc

 このようにしたいときには、

widthとheightを縮める必要があります。

width: 80px;

height: 70px;

 新しく入ったpaddingと太めの下線のために、スペースをあけたようなイメージですね。

すると、このようになります。

f:id:ponnkichi:20180304220445p:plain

上にゆとりができて、下に太めの線が入っていますね。

 

このようにpaddingやborderを追加するときには、

いちいちwidthやheightを操作しなくてはならないのですが

いちいち修正しなくてはいけないのは大変ですよね。

 

このようなときに使うのが、box-sizingです。

 

box-sizing: border-box;

 このように指定すると、

.box{

box-sizing: boeder-box;

width: 100px;

height: 100px;

background: #eee;

float: left;
}

widthとheightを変更しなくても、 

f:id:ponnkichi:20180304220445p:plain

このとおりです。

 

box-sizingを使えば、毎回widthやheightをいじらなくても同じ状態をキープできます。

box-sizingを指定しておけば、borderの太さやpaddingを変えても

基本的な状態はこのまま。

便利!

 

使えるかどうかはわかりませんが(笑)

 

これで、めでたくCSS3が終わりましたので

次からは新しい単元に入っていきたいと思います!