html要素の中心

2363 ワード

一、不定幅高要素が中央になる

  • table
  • HTML:
    
    this is content
    CSS: .father { display: table; } .son { display: table-cell; vertical-align: middle; text-align: center; }
  • absolute, transform
  • HTML:
    
    is this OK?
    CSS: .father { position: relative; } .son { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
  • css3 flex
  • HTML:
    
    this is a box fixed in center of screen
    The second line
    CSS: .father{ display: flex; align-items: center; justify-content: center; }
  • :beforeとdisplay:inline-block
  • HTML:
    
    this is a box fixed in center of screen
    The second line
    CSS: .father { text-align: center; background-color: red; } .father:before { content: ''; display: inline-block; height: 100%; vertical-align: middle; } .son { display: inline-block; }
  • ここで注意すべき文字は複数行の場合、新しく置き換える1行は:beforeの次の行から始まるので、beforeの100%の高さの下で突き出されることになる.father.しかし、文字を置くと.sonの中で、また譲ります.sonはinline-blockで、使えます.sonと:beforeは同じベースラインにあり、全体を譲る.sonは垂直中心の状態にある.
  • vw vhとtranslate
  • HTML:
    
    this is a box fixed in center of screen
    CSS: .inner { position:fixed; top: 50vh; left: 50vw; transform: translate(-50%, -50%); }
  • vhとvwは2つの比較的偏った単位であり、「viewportのheightとwidthの1%」を指し、例えば50 vhは現在のビューポート(ウィンドウの高さ、実験にスクロールバーが含まれている)の高さの50%である.

  • 二、固定幅の高い要素が中央にある

  • fixed
  • position: fixed;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    width: 800px;
    height: 400px;
    
  • fixedスキームは、ウィンドウ全体で中央を実現するのに適している.fixedは要素をWebページから離れるため、コンテンツストリームでは適用されません.
  • absolute
  • position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    width: 300px;
    height: 350px;
    
  • の絶対レイアウトは、leftとtopを50%にし、これは水平方向にdivの最左とスクリーンの最左を50%離れ、垂直方向に同じにします.
  • さらにtransformで自分の幅(高さ)の50%
  • を左(上)に平行移動する