css居中案例

前言

在此之前已经对布局方法和方式都做了介绍并且有对一些典型布局进行实践:
圣杯布局和双飞翼布局的区别与实现
传统模型、Flex和Grid布局

因此,我们针对元素的居中进行不同方式的实践


行内元素

<h1><p>行内元素居中</p></h1>
p{
  text-align: center;
}

适用于行内元素,例如文字、按钮、图片等,或者display属性为行内元素的。
具体区分行内和块级元素的方法:
块级元素和行内元素

块级元素

相对定位+translate
<main>
<div id="son"></div>
</main>

main{
  background-color: #f0f;
  width:200px;
  height: 200px;
}
#son{
  background-color: #f00;
  position: relative;/*设置相对定位*/
  width:50px;
  height: 50px;
  top: 50%;/*元素上方与父元素相距50%,这里的50%为父元素的高度*/
  left: 50%;
  transform: translate(-50%,-50%);/*以自身为基准往左上移动百分之50*/
}

此处最重要的理解在于topleft的50%是相对与父元素的高度和宽度,而transform: translate(-50%,-50%)则是相对于自身。

flex
<main>
<div id="son"></div>
</main>

main{
  display: flex;
  justify-content: center;
  align-items:center ;
  background-color: #f0f;
  width:200px;
  height: 200px;
}
#son{
  width:50px;
  height: 50px;
  background-color: #f00;
}

flex的方法主要在容器上,定义容器为display: flex,水平居中justify-content: center,垂直居中align-items:center

grid
<main>
<div id="son"></div>
</main>

main{
  display: grid;
  justify-items: center;
  align-items:center ;
  background-color: #f0f;
  width:200px;
  height: 200px;
}
#son{
  width:50px;
  height: 50px;
  background-color: #f00;
}

可能你会发现grid和flex的方法基本一样,显然是的,因为grid相对来说是二维布局,在一维的环境中与flex基本一样。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,509评论 0 5
  • CSS布局小贴士 左右布局实现 使用浮动float可将左部分区域和右部分区域的float属性都设置为left,然后...
    鞳雪無痕阅读 274评论 0 0
  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,625评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,514评论 0 6
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,335评论 0 11