web制作のしおり

日々の学習をアウトプットします。

52.ショートハンドを覚えよう ~一括指定で効率UP~

CSSのショートハンド使いこなしてますか?

 

私はイマイチ覚えきれていません。

読むのにも、書くのにも

ある程度知らないと「この指定なんだっけ?」となってしまいます。

 

今回は頻出のものを中心に、自分で使えることを目標にやっていきます。

 

ショートハンドとは?

以前backgroundの記事で少し触れましたが、

複数の関連するプロパティを一括指定できる仕組みです。

 

一番身近なものでいうと、

margin : 0 auto;

みたいな書き方です。

これをショートハンドを書かずに指定するには

 

margin-top : 0;

margin-left : auto;

margin-right : auto;

margin-bottom : 0;

 

と書く必要があるわけです。

長い。

ショートハンド使いこなせた方が、絶対いいですよね。

 

頻出のショートハンド達

よく使う物から順に、しっかりと確認していきましょう。

今回は下記について、確認していきます。

  • margin
  • padding
  • border
  • background

 

まずは、margin。

marginのショートハンドは4種類あります。

そして、書く順序があるので注意してください。

上、右、下、左が基本の順序です。

 

値が1つの場合

margin : 10px;

これは、上下右左のマージンすべて10pxが設定されます。

 

値が2つの場合

margin : 10px 5px ;

これは、左側で上下に10pxのマージンを、右側で右左に5pxのマージンを設定します。

 

値が3つの場合

margin : 10px 5px 15px;

これは、左側で上に10pxのマージンを、真ん中で右左に5pxのマージンを、右側で下に15pxのマージンを設定します。

 

値が4つの場合

margin : 10px 5px 5px 20px;

これは、左側で上に10pxのマージンを、真ん中の2つで右と左に5pxのマージンを、右側で下に15pxのマージンを設定します。

 

勝手な覚え方

marginの書き順は上から時計回りで、左右は仲良し。

左側の値から順に時計回りで上から4方向を指定する。4方向指定以外は右左はまとまっているからです。

 

因みにpaddingのショートハンドはmarginと同一の指定方法なので、割愛します。

 

border

borderはmarginやpaddingと違い、記述の順序がありません。

指定できるのは下記3つのプロパティです。

  • border-style
  • border-width
  • border-color

 

border : solid 1px #333;

 

のようにまとめて記載でき、順序は問われません。

間のスペースは忘れずに。

 

background

backgroundは、指定できるプロパティが多岐にわたります。

それは以前の記事でも紹介した通りです。

指定できるプロパティは、

  • background-color
  • background-image
  • background-repeat
  • background-clip
  • background-origin
  • background-attachment
  • background-position
  • background-size

うん、多いですね。

基本的には順序は問われず、すべてを指定しなくてもよいです。

ただし、sizeを指定する場合はpositionとセット。なおかつ「position / size」という書き方を守ること。

 

よく指定するのは大体決まっていると思います。

今回は

color image repeat position / size

上記で指定する場合の例です。

 

background : transparent url(./img/test.png) no-repeat center center / cover ;

このように併記できます。

 

特に注意したいのが、position / sizeのところですね。

場合によっては

top 20px left 20px / contain

のような指定だってあり得ます。

自分で記述する場合は良いですが、

他者が書いたCSSの場合はどこまでが、どのプロパティなのかを

指定をよく確認すべきですね。

 

今日のまとめ

  • ショートハンドは時短につながる。
  • marginとpaddingは記述順序が決まっている。上から時計回りで左右仲良し。
  • borderとbackgroundは順序問わない。
  • backgroundのsizeを指定する場合は必ずpositionを記述して/の後に指定する。

 

今日はショートハンドについて確認しました。

コードを見ていると、ん?これ「どこに何が適用されるの」って

今はまだ瞬時に判断できないんですよね。

書いて、見て、慣れていきます。

 

では、また。