どうも!かけちまるです!
CSSでpositionで中央寄せにしたい時大体はtransform: translate(-50%,-50%);を指定すると思います。
しかし、乗算などを表現するmix-blend-modeを使った要素にtransform: none;以外を指定するとスタックコンテキストというのが形成されてしまいmix-blend-modeがうまく適応されなくなってしまうことがあります。
そこで今回はtransform: translate(-50%,-50%);を指定しなくてもpositionで中央寄せにする方法をご紹介します。
この記事では、
がわかります。
最初に実装例をまとめておきます。
順番は、
transform: translate(-50%,-50%);を使って上下左右中央の順番で実装しています。
該当要素に以下のCSSを指定すると上下中央寄せにすることができます。topとbottomの値を0にしてmargin: auto;を指定してあげればOKです。
※基準となる要素にposition: relative;を忘れずに!
CSSコピー.box{ position: absolute; top: 0; bottom: 0; margin: auto; }
該当要素に以下のCSSを指定すると上下中央寄せにすることができます。leftとrightの値を0にしてmargin: auto;を指定してあげればOKです。
※基準となる要素にposition: relative;を忘れずに!
CSSコピー.box{ position: absolute; left: 0; right: 0; margin: auto; }
該当要素に以下のCSSを指定すると上下左右中央寄せにすることができます。top,bottom,left,rightの値を0にしてmargin: auto;を指定してあげればOKです。
※基準となる要素にposition: relative;を忘れずに!
CSSコピー.box{ position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; }
この記事の趣旨とずれてしまうのですがtransform: translate(-50%,-50%);を使って上下左右中央寄せにする方法もご紹介します。
該当要素に以下のCSSを指定すると上下左右中央寄せにすることができます。topとleftの値を50%にしてtransform: translate(-50%,-50%);を指定してあげればOKです。
※基準となる要素にposition: relative;を忘れずに!
CSSコピー.box04{ position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); }
もうちょっと詳しく知りたい人はこちらの記事をどうぞ!
おわり
フィードバックを送信
記事についてのフィードバックはTwitterかお問い合わせフォームから受け付けております。