一个元素如何居中

任务目的

  • 实践HTML/CSS布局方式
  • 深入了解position等CSS属性

任务描述

  • 实现如下示例图的效果


  • 灰色元素水平垂直居中,有两个四分之一圆位于其左上角和右下角。

达成度

  • github源码
  • 查看 demo1,实现方式:主元素利用绝对定位以及负外边距,里面圆形元素采用相对定位。
  • 查看 demo2,实现方式:主元素利用绝对定位以及transform调整位置,里面圆形元素采用相对定位。
  • 查看 demo3,实现方式:需要由外界容器,容器里面设置成display:flex以及其他居中属性,里面圆形仍采用相对定位。

一个元素如何居中?查看原文请移步Centering in CSS: A Complete Guide

水平居中

  • block元素的margin: 0 auto实现原理:上下边距为0,左右边距设置为auto时,这个元素在水平方向上会撑满整个页面,而在block元素设置里宽度以后,撑满页面的就会变成其外边距,从而达到居中的效果。
  • inline元素的text-align:center实现原理:其css属性规定了inline元素可以会自动居中。同理,当存在多个inline元素时,会按从左到右的顺序排列再居中。

垂直居中

  • inline元素的等内边距padding-top==padding-bottom,上下两边的内边距相等,则中间内容居中* inline元素的行高line-height==height,行高与容器高度相等,则中间内容居中
  • inline元素的vertical:middle实现原理:css属性垂直居中文字,vertical有多个属性可选,默认是baseline属性
  • block元素利用绝对定位以及负外边距,适用于知道元素的宽度和高度,兼容性好,参照下图,注意这里的外边距减去的是block元素宽度的一般,即margin:-(width/2) px
  • block元素利用绝对定位以及transform,适用于不知道元素的宽度盒高度,参照下图


  • block元素在外部的容器,将其设置为下图,则子元素block元素垂直居中
.parent {
  display: flex;
  align-items: center;
}

水平垂直居中

  • 在垂直居中的基础上,block元素的三种方法均能演变为水平垂直居中,前两种只需增加left属性以及margin-left或者transformX当中的一个属性达到目的* 利用flex的话,添加多一个justify-content: center;即可
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • 收听音频,戳链接,旧号itclan已暂停使用,欢迎关注微信itclanCoder公众号可收听更多音频 前言 关于网...
    itclanCoder阅读 12,531评论 3 30
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 8,893评论 0 6
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 5,908评论 0 6
  • 黎明的雾已散去,只留下夜的斑绩,光明与黑暗混杂交错,一切的迷惘都沉醉在白昼之中,辽远的星已随光芒淡去,只剩下孤独的...
    黑彧阅读 1,664评论 0 2