生涯、学習していきたい

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

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

CSS3の学習を、今日も

ドットインストールさんで進めていきたいと思います。

 

f:id:ponnkichi:20180226222159p:plain

 

 

#10 background-size を使ってみよう

今回は、ヘッダーに画像を載せて、

その大きさを調整してみたいと思います。

htmlのbodyの中には、headerのみが用意されています。

<body>

   <header>

   </header>

</body> 

 cssではこのように指定されています。

body{ margin: 0; }

 

header{

   width: 100%;

   heigth: 130px;

   background: url('cafe.jpg') ;

 }

 ブラウザで見ると、ヘッダー部分にカフェの写真が用意されています。

f:id:ponnkichi:20180226085253p:plain

うん、すてきなカフェですね。

この画像を繰り返さないようにするのには

no-repeatにします。

no-repeatについては、css入門編の#17で学びました

 

あと、理解しやすいように写真の後ろ側の背景色はスカイブルーにします。

cssにこのように追加します。

header{

   width: 100%;

   heigth: 130px;

   background: url('cafe.jpg') 

  no-repeat skyblue;

 }

 

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

f:id:ponnkichi:20180226085639p:plain

おお!写真が一つになって、見やすくなりました♪

ヘッダーの画像以外の部分はスカイブルーになっていてわかりやすいですね。

さて、この背景の画像のサイズを調整してみましょう。

 

background-size

背景画像の幅を、ブラウザの幅の50%にしてみましょう。

 

header{

   width: 100%;

   heigth: 130px;

   background: url('cafe.jpg') 

  no-repeat skyblue;

   background-size: 50%;

 }

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

f:id:ponnkichi:20180226085909p:plain

ブラウザの幅の50%になりました。

高さは、縦横比が常に一定になるように自動で調整してくれます。

f:id:ponnkichi:20180226090011p:plain

ブラウザの大きさを変えても、50%になるようにしてくれます。

 

ちなみに、縦の長さを指定することもできます。

header{

   width: 100%;

   heigth: 130px;

   background: url('cafe.jpg') 

  no-repeat skyblue;

   background-size: 50% 100%;

 }

 幅、縦の順に指定します。

f:id:ponnkichi:20180226090150p:plain

縦の長さが100%になりました。

cover, contain

background-sizeにcoverと指定すると、

画像の縦横比を変えずに、背景領域を常にカバーするようにしてくれます。

header{

   width: 100%;

   heigth: 130px;

   background: url('cafe.jpg') 

  no-repeat skyblue;

   background-size: cover;

 }

 

f:id:ponnkichi:20180226091254p:plain

ヘッダー部分のすべてに画像が配置されました。

f:id:ponnkichi:20180226091420p:plain

ブラウザを縮めても、このとおり。

 

縦横比は保持するので、

画像に入りきらない部分はカットされるという特性もあります。

 

containは、

画像の縦横比を保持しつつ、必ず画像全体が表示されるようにしてくれます。

header{

   width: 100%;

   heigth: 130px;

   background: url('cafe.jpg') 

  no-repeat skyblue;

   background-size: contain;

 }

 このようにすると、

f:id:ponnkichi:20180226091658p:plain

こんな感じ。

ちなみにブラウザの幅を広げても、

f:id:ponnkichi:20180226091716p:plain

背景のスカイブルーの部分が広がるだけです。

 

縦横比は保持するので、ブラウザの幅をうんと縮めると

f:id:ponnkichi:20180226091802p:plain

こんな風に見えます。

 

ちなみに、背景のスカイブルー(余った領域)を、どこにおくかは

background-potition で指定することができます。

background-potitonに関しても、css入門編の#17で学びました

 

header{

   width: 100%;

   heigth: 130px;

   background: url('cafe.jpg') 

  no-repeat skyblue;

   background-size: contain;

   background-potition 50% 50%;

 }

 このように指定すると、

f:id:ponnkichi:20180226092128p:plain

真ん中に表示されます。

すっきり!気持ちいい!

 

よく見るヘッダー画像しくみがわかって、とても楽しかったです✨

#11 複数の背景画像を使ってみよう

#10の続きです。

同じように、ヘッダーに画像を載せてみましょう。

今回は、複数の画像を載せます。

htmlは、#10の時と同じく

<body>

   <header>

   </header>

</body

 bodyにはヘッダーだけが指定されています。

さて、まずcssのほうに、1枚目の画像を指定してみましょう。

ヘッダーの幅と高さはこのように指定されています。

header{

    width: 100%;

    height: 200px;

    background: url('0001.gif') no-repeat 0 0;

}

 0001.gifという画像が用意されています。

 

no-repeatはcss入門編の#17でも学習しました

画像の繰り返しなし、左上に寄せられています。

f:id:ponnkichi:20180226214205p:plain

 

css3では、複数の画像を並べて表示することができます。

方法も簡単で、cssのところにどんどん書き足していきます。

header{

    width: 100%;

    height: 200px;

    background: url('0001.gif') no-repeat 0 0;

    background: url('0002.gif') no-repeat 30px 30px;

}

 2枚目も同じように書き足します。

今回は、左と上に30pxの余白をあけました。

すると、このように表示されます。

f:id:ponnkichi:20180226214614p:plain

このように重なって表示されます。

下の方に書かれている画像は、下に表示されていくそうです。

わかりやすくていいですね。

 

3枚目の画像も同じように足していきます。

header{

    width: 100%;

    height: 200px;

    background: url('0001.gif') no-repeat 0 0;

    background: url('0002.gif') no-repeat 30px 30px;

    background: url('0003.gif') no-repeat bottom right;

}

「0003」の画像は、右下に表示されます。

f:id:ponnkichi:20180226214856p:plain

画像を並べやすいのは楽しいですね。

かっこいいヘッダー画像を作ることができそうです。

 

#12 linear-gradient()を使ってみよう

今回は、背景の色をグラデーションにする方法を学習します。

用意されているhtmlはこんな感じ。

<body>

   <div></div>

<body> 

 

 背景画像の大きさは縦横200pxになっています。

div{

    width:  200px;

    height: 200px;

}

これに、グラデーションをつけていきます。

div{

    width:  200px;

    height: 200px;

    background-image : linear-gradient(skyblue,blue) ;

}

 

 すると、ブラウザで確認すると次のようになっています。

f:id:ponnkichi:20180226220937p:plain

スカイブルーからブルーへのグラデーションができていますね。

background-color ではなく、background-imageになるのでご注意くださいね。

linear-gradientのあとのカッコに、

「この色→この色」への指定を書くことでその色のグラデーションができます。

 

ちなみに、デフォルトだとこのように上から下へのグラデーションになっていますが、

向きを変えることもできます。

div{

    width:  200px;

    height: 200px;

    background-image : linear-gradient( to top left,skyblue,blue) ;

}

 このように書くと、左上に向かってグラデーションができます。

f:id:ponnkichi:20180226221323p:plain

なるほど!

グラデーションの向きには注意しないといけないですね。

 

また、グラデーションの向きは角度で指定することもできます。

div{

    width:  200px;

    height: 200px;

    background-image : linear-gradient( 45deg,skyblue,blue) ;

}

degは、上の中心から時計回りの角度なので、

右上45度にむかって、グラデーションが進んでいきます。

f:id:ponnkichi:20180226221510p:plain

なるほどおもしろい!

 

そして、なんと三色にすることもできます。

div{

    width:  200px;

    height: 200px;

    background-image : linear-gradient( lightgreen,skyblue,blue) ;

}

 このように3つ並べると、ライトグリーン、スカイブルー、ブルーの順に並びます。

f:id:ponnkichi:20180226221622p:plain

おおー!グラデーション、きれいで楽しいですね。

 

このグラデーションの割合を配分することもできます。

div{

    width:  200px;

    height: 200px;

    background-image : linear-gradient( lightgreen 10%,skyblue 70%,blue) ;

}

 

このようにすると、ライトグリーンが10%、スカイブルーは70%、残りはブルーとなります。

f:id:ponnkichi:20180226221808p:plain

本当だ!スカイブルーの割合が増えましたね。

 

 

また、グラデーションを繰り返すこともできます。

 

div{

    width:  200px;

    height: 200px;

    background-image : repeating-linear-gradient( lightgreen ,skyblue  20px) ;

}

 このようにすると、ライトグリーンからスカイブルーへのグラデーションを

20pxごとに繰り返すようになります。

f:id:ponnkichi:20180226222008p:plain

グラデーションのボーダーみたいになりました!

 

CSS3のグラデーション、使いこなすととっても楽しそうですね(*^^*)

 

今回は目で見てわかりやすい内容で楽しかったです。またがんばろう♪