美文网首页
css设置水平垂直居中和为什么可以这样

css设置水平垂直居中和为什么可以这样

作者: 心大的少年 | 来源:发表于2019-10-11 10:00 被阅读0次

利用css设置水平垂直居中的几种方法

代码内容摘抄自asyncnodecss中的多种垂直水平居中

不讨论关于display:flex这种设置元素水平垂直居中的情况

/**已知宽高*/
<style>
.container {
  width: 500px;
  height: 500px;
  position: relative;
  border: 1px solid #000;
}
.box {
  position: absolute;
  width: 100px;
  height: 100px;
  left: 50%;
  top: 50%;
  background-color: red;
}
</style>
<div class="container">
  <div class="box"></div>
</div>

设置负margin做到居中

.box {
  margin-top: -50px;
  margin-left: -50px;
}

设置calc

.box {
  left: calc(50% - 50px);
  top: calc(50% - 50px);
}

为什么可以做到水平垂直居中

在css中,定位元素(绝对定位,相对定位)的起始点都是以自身的左上角开始的,所以,当你设置了left和top都是50%的时候,也就是相当于找到了父元素的水平垂直的点,然后设置自身的负一半就是为了让自身的水平垂直居中的点和父元素的点重合,这样就做到了水平垂直居中。
其实在未知宽高时,利用transform的translate(-50%, -50%)也是可以说什上面一样,因为translate是获取自身的宽高然后进行移动的。
附上自己画的一张丑图

无标题.png
附上大佬的解释

left和top都是相对于父元素的左上角,如果这个元素都设置50%的话,他本身的宽高你也要计算在内啊,所以要往回移动本身元素的-50%

还有一些其他的水平垂直居中方法,可以去看我再上面附上的链接,这里就不写了

相关文章

  • 垂直居中,水平居中

    CSS设置行内元素的水平居中 CSS设置行内元素的垂直居中 CSS设置块级元素的水平居中 CSS设置块级元素的垂直居中

  • CSS display: table-cell 用于水平垂直居中

    CSS display: table-cell 用于水平垂直居中 在 CSS 设置居中时候,水平和垂直居中的设置略...

  • CSS - 垂直水平居中方法

    前言 总括:整理 css 垂直水平居中方法,区分内联元素与块级元素 CSS垂直居中和水平居中 用css让一个容器水...

  • 垂直水平居css

    学到一种垂直水平居中方式给需要居中的目标元素 加 它会垂直水平居中与父元素

  • css 居中

    居中有水平居中和垂直居中。 水平居中+垂直居中 flex法 position法 就是计算呗~ 参考 CSS各种居中...

  • css 图片居中

    css图片居中(水平居中和垂直居中) css图片水平居中 块状元素直接用text-align:center, di...

  • css水平居中和水平垂直居中

    水平居中和水平垂直居中demo

  • CSS 水平居中和垂直居中

    块级元素中的行内元素水平垂直居中 块级元素在块级元素中的水平垂直绝对居中 未完待续......

  • CSS垂直居中和水平居中

    前言 CSS居中一直是一个比较敏感的话题,为了以后开发的方便,楼主觉得确实需要总结一下了,总的来说,居中问题分为垂...

  • 设置居中样式

    在css中居中效果可以分为:水平居中、垂直居中、水平垂直居中三种。最近小程序开发项目中也经常遇到居中效果设置问题,...

网友评论

      本文标题:css设置水平垂直居中和为什么可以这样

      本文链接:https://www.haomeiwen.com/subject/fxgfmctx.html