Upgrade to Pro — share decks privately, control downloads, hide ads and more …

お役立ちCSS

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

 お役立ちCSS

最近の案件で感じた便利なCSSの紹介

Avatar for taka-no-hito

taka-no-hito

May 06, 2018

Other Decks in Technology

Transcript

  1. 便利な単位 caption 1 vw,whとは? vwとvhは画面サイズを基準とした単位。 width: 100vw; で画面横いっぱい。 height: 100vh;

    で画面縦いっぱいとなる。 %と似ているが、こちらは親要素が基準になるので、親要素がwidth: 90%; だと いくらwidth: 100%; にしても画面横いっぱいにすることができない。 また、vwとvhはそれぞれwidth、height専用単位ということではないので、 height: 50vw; や font-size: 10vw; などと指定することが可能。 #8
  2. 横並びの救世主 caption 2 flexを使用した中央化 今までの中央化では子要素にこのような設定をしていたかと思います。 position: absolute; top: 0;bottom: 0;left:

    0;right: 0; margin: auto; flexを使用すると、親要素にこのように指定すればOK。 display: flex; align-items: center; justify-content: center; また、flexで中央化すると、子要素の大きさを固定しなくても中央化できます。 #11
  3. トリミング caption 4 backgroundでのトリミング方法 一番安定して使える方法がbackgroundを使用した方法かと思います。 縦横の比率が変わっても破綻しないのでおすすめです。 background-image: url(./img/imgpath.png); background-size: cover;

    またHTMLから画像を指定する場合はstyle属性を使いましょう。 <div style="background-image:url('./img/imgpath.png');"></div> これで、PHPなどからimageパスを受け取ることが可能です。 #19
  4. トリミング caption 4 transformでのトリミング方法 意外とメジャー?なのがtransformを使用したこの方法です。 親要素にoverflow: hidden;とposition: relative;を指定し、画像に下記の設定を。 width: 100%;

    height: auto; position: absolute; top: 50%;left: 50%; transform: translate(-50%, -50%); やってる内容としては一度transformでぶっ飛ばして、positionで定位置に戻している感 じです。 positionだけで行う中央化は親要素より子要素の方が大きいと使用できないので、 transformを使用したこの方法を使用します。 #21
  5. トリミング caption 4 flexでのトリミング方法は? caption 3で散々プレゼンしたflexを使った中央化はどうでしょう? 結論から言うと、できなくないけど向いてないです。 やろうとすると、親要素に下記を指定 display: flex;

    justify-content: center; align-items: center; これだけだと子要素の横幅が親要素に合わせて可変してしまうので、 さらに子要素にmin-widthを指定しなければいけません。 いまいち拡張性にかけますので、トリミングは他の手段をおすすめします。 #25