色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

如何在絕對定位的父div中垂直居中div

江奕云2年前8瀏覽0評論

我試圖讓藍色容器位于粉色容器的中間,但是看起來是垂直對齊的:中間;在那種情況下不起作用。

<div style="display: block; position: absolute; left: 50px; top: 50px;">
    <div style="text-align: left; position: absolute;height: 56px;vertical-align: middle;background-color: pink;">
        <div style="background-color: lightblue;">test</div>
    </div>
</div>

結果:

enter image description here

期望:

enter image description here

請建議我如何才能做到這一點。

Jsfiddle

首先注意,垂直對齊只適用于表格單元格和行內元素。

有幾種方法可以實現垂直對齊,可能滿足也可能不滿足您的需求。不過,我將向您展示我最喜歡的兩種方法:

1.使用變換和頂部

.valign {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    /* vendor prefixes omitted due to brevity */
}

<div style="position: absolute; left: 50px; top: 50px;">
    <div style="text-align: left; position: absolute;height: 56px;background-color: pink;">
        <div class="valign" style="background-color: lightblue;">test</div>
    </div>
</div>

用這個:

.Absolute-Center {
    margin: auto;
    position: absolute;
    top: 0; left: 0; bottom: 0; right: 0;
}

參考此鏈接:https://www . smashingmagazine . com/2013/08/absolute-horizontal-vertical-centering-CSS/

在定位準確的div中使用flex blox使其內容居中。

參見示例https://plnkr.co/edit/wJIX2NpbNhO34X68ZyoY? p =預覽

.some-absolute-div {    
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-box;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;

  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  justify-content: center;

  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
}

垂直和水平居中:

.parent{
  height: 100%;
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
}
.c{
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
}

僅用于垂直居中

<div style="text-align: left; position: relative;height: 56px;background-color: pink;">
        <div style="background-color: lightblue;position:absolute;top:50%;    transform: translateY(-50%);">test</div>
    </div>

編輯:10/22目前,display flex或grid已被廣泛應用,我建議使用其中的一種(如果您需要兼容舊的或特殊的瀏覽器,如我的電視,display:table/table-cell仍可使用...)

彎曲

.a{
   position: absolute; 
  left: 50px; 
  top: 50px;
}
.b{
  display:flex;
  align-items:center;
  background-color: pink;
  height: 56px;
}
.c {
  background-color: lightblue;
}
/* move the flex demo aside */
.a.b{left:100px}

You even need less markup
<div class="a">
  <div class="b">
    <div class="c">test</div>
  </div>
</div>


  <div class="a b">
    <div class="c">test</div>
  </div>

這是使用頂部對象的簡單方法。

例如:如果絕對元素大小是60px。

.absolute-element { 
    position:absolute; 
    height:60px; 
    top: calc(50% - 60px);
}

另一個簡單的解決方案

HTML:

<div id="d1">
    <div id="d2">
        Text
    </div>
</div>

CSS:

#d1{
    position:absolute;
    top:100px;left:100px;
}

#d2{
    border:1px solid black;
    height:50px; width:50px;
    display:table-cell;
    vertical-align:middle;
    text-align:center;  
}

你可以用display:table;在父div和顯示中:表格單元;垂直對齊:居中;在子分區中

<div style="display:table;">
      <div style="text-align: left;  height: 56px;  background-color: pink; display: table-cell; vertical-align: middle;">
          <div style="background-color: lightblue; ">test</div>
      </div>
  </div>

就我而言,

centered-vertically {
    height: 60px;
    display: flex;
    justify-content: center;
    -webkit-align-items: center;
  }

工作

使絕對項目垂直和水平居中的更簡單的方法是使用& quot插圖& quot財產。

.center-horizontally-vertically{
      position: absolute;
      inset: 0;
      margin: auto;
}

<div class="center-horizontally-vertically">
 Test
</div>