2017-04-03 4 views
3
position: absolute; 
    top: 50%; 
    left: 50%; 
    margin-right: -50%; 
    transform: translate(-50%, -50%) 

これは、ビューポート内のボタンをセンタリングするためのCSSコードです。誰かがこの仕組みを説明することはできますか?私はそれをオンラインのどこかに見つけましたが、うまくいくように見えますが、私はマージンの権利と変換を必要としません。当然のことながら、コードはそれらがなければ機能しませんが、直感的に私は最初の3つが要素を中心にするのに十分であるべきだと感じます。私はCSSには比較的新しいので、これが愚かな質問と考えられるかどうか分かります:)このCSSコードは、要素を中心にどのように動作するのですか?

+2

「margin-right」は必要ないと思います。明らかに、変換が必要なのは、中心要素の左辺と上辺が50%の位置にあり、そこから右下に伸びるからです。 –

+2

この記事では、「margin-right」https://www.w3.org/Style/Examples/007/center.en.htmlの例を含めて説明します –

+0

感謝します、ありがとう! –

答えて

3

この記事を見てください:https://css-tricks.com/quick-css-trick-how-to-center-an-object-exactly-in-the-center/ css(position、top、およびleft)の最初の3行を使用するだけで、オブジェクトの左上隅が中央になり、オブジェクト全体が完全に中央から外れます。負の平行移動は、オブジェクトをその高さおよび幅の半分ずつ上方向および右方向に移動させ、オブジェクトを中央に配置します。実際には、私はマージン右のコードが必要ではないと思っていますが、私は間違っているかもしれません。

+0

クリスタルクリア、ありがとう! –

+0

フレックスボックスもこれには本当に良いです。容器の上に。 dispay:flex; justify-contents:center; align-items:センター; - フレックスコンテナの内容を水平および垂直に中央に配置します。 –

関連する問題