高级前端css【Q282】对一个非定长宽的块状元素如何做垂直水平居中

对一个非定长宽的块状元素如何做垂直水平居中

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 284

Author 回答者: huxiamei

flex布局

Author 回答者: XJHxjh0118

定位 .parent{ position: relative; } .child{ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }

Author 回答者: linlai163

css position

        .container {
            position: relative;
        }
        .container .item {
            width: 100px;
            height: 50px;
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
            margin: auto;
        }

Author 回答者: shfshanyue

css position

        .container {
            position: relative;
        }
        .container .item {
            width: 100px;
            height: 50px;
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
            margin: auto;
        }

非定宽了,你这个不行呀

Author 回答者: linlai163

css position

        .container {
            position: relative;
        }
        .container .item {
            width: 100px;
            height: 50px;
            position: absolute;
            top: 0;
            left: 0;
            bottom: 0;
            right: 0;
            margin: auto;
        }

非定宽了,你这个不行呀

面试官说,做题前要好好读题。😭

Author 回答者: jkLennon

https://github.com/shfshanyue/Daily-Question/issues/10

Author 回答者: wuzqZZZ

<div class="parent">
  <div class="child">123456</div>
</div>
.parent {
  display: flex;
  height: 200px;
  background-color: #222;
}
 
.child {
  background-color: red;
  margin: auto;
}

Author 回答者: LIyu2001

---方法一:父级flex
.container{
  display: flex;
  justify-content: center;
  align-items: center;
}
 
---
 
方法二:父级grid .container {
  display: grid;
  justify-content: center;
  align-items: center;
}
 
---方法三:父级定位,子maigin .container {
  position: relative;
}
 
.container .item {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  margin: auto;
}
 
---方法四:父级定位,子位移 .container {
  position: relative;
}
 
.container .item {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

Author 回答者: perterHUAN

top: 0;
bottom: 0;
left: 0;
right: 0;

方法三设置成和父元素一样大了,这符合题意吗?