どうも!かけちまるです!
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かお問い合わせフォームから受け付けております。