css-三种方法实现盒子水平垂直居中

通用html代码

<div class="wrap">
    <div class="content">
    </div>
</div>

css代码

方案1 transform:translate设置 -50%

.wrap {
    margin:0 auto;
    background-color: yellow;
    width: 300px;
    height: 300px;
    position: relative;
}
.content {
    background-color: #ddd;
    width: 100px;
    height: 100px;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    line-height: 100px;
    text-align: center;
}
方案1-效果图

方案2 flex布局

.wrap {
    margin: 0 auto;
    background-color: #ddd;
    width: 300px;
    height: 300px;
    display: flex;
    justify-content: center;//使子项目水平居中
    align-items: center;//使子项目垂直居中
}
.content {
    background-color: red;
    width: 100px;
    height: 100px;
    text-align: center;
    line-height: 100px;
}
方案2-效果图

方案3 父元素设置为:position: relative; 子元素设置为:position: absolute;
距上左50%,然后设置margin-top;margin-left的值为元素本身宽高的二分之一的负值。

.wrap {
    position: relative;
    width: 300px;
    height: 300px;
    background: red;
    margin: 0 auto;
}
.content {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100px;
    height: 100px;
    line-height: 100px;//本盒子的高度
    margin-left:-50px;//本盒子宽度的-1/2
    margin-top:-50px;//本盒子高度的-1/2
    background: #ddd;
    text-align: center;
    vertical-align: middle;
}
方案3-效果图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最近辞职了。 辞职的原因大概是高估了自己的能力,没有确切地了解外边的行情。再来是无法忍受过去的生活,我觉得那样的生...
    haru_阅读 317评论 0 0
  • 1、授权用户 mike有查加改所有库、所有表 mysql> grant select,insert,update ...
    蘋果_283e阅读 559评论 0 0
  • Http定义了与 服务器的交互方法,其中除了一般我们用的最多的GET,POST 其实还有PUT和DELETE 根据...
    wujingwin阅读 83,366评论 2 13