在项目中经常会用到垂直居中布局,本次通过常用的块级元素居中布局的实现方式来对过程中的技术点包括transform的使用,flex的使用进行梳理。让大家能够理解之后进行举一反三。

以下例子如果未特别说明统一使用这样的html结构:

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

绝对定位

绝对定位可以把元素大概定位在垂直居中的位置,然后需要通过margin、transform和calc的方式来调整居中元素一半的距离。

margin+像素数来调整间距

.container {  background: #777777;  height: 400px;  position: relative;}.container .content {  width: 100px;  height: 100px;  position: absolute;  top: 50%;  margin-top: -50px;  left: 50%;  margin-left: -50px;  background: #ee5f28;}

优点:兼容性好。缺点:需要知道居中元素的高度。

transform变形来调整元素的偏离

.container {  background: #777777;  height: 400px;  position: relative;}.container .content {  width: 100px;  height: 100px;  position: absolute;  top: 50%;  left: 50%;  transform: translate(-50%, -50%);  background: #ee5f28;}

在transform变形属性中,我们常用的有translate转换,参数可以为像素数和百分数,表示按一定方向转换当前元素百分比的坐标,所以可以不考虑居中元素的大小。其他常用的属性还有scale缩放,rotate旋转。scale的系数为倍数,即1不缩放,2表示在某个方向上缩放两倍。rotate系数单位为deg表示角度,顺时针为正。并且同时起作用的还有transform-origin这个参数,表示旋转的基准点的坐标,值可以为百分比、像素数、中心,上下左右位置。需要注意的是,在进行变形时,这三个参数的顺序不同,形变的最终效果可能也不同。

通过calc来计算绝对定位的位置

.container {  background: #777777;  height: 400px;  position: relative;}.container .content {  width: 100px;  height: 100px;  position: absolute;  top: calc(50% - 50px);  left: calc(50% - 50px);  background: #ee5f28;}

calc一般用来计算百分比和数量单位的表达式,也是需要知道居中元素的大小。

flex布局

flex布局与传统的绝对定位布局的方式不同,通过父级元素来设定子元素项目排列方向,是否换行等,如果用好了flex布局,你会发现很多布局样式都很简单。

控制父级元素的主轴、交叉轴分布方式

.container {  background: #777777;  height: 400px;  display: flex;  justify-content: center;  align-items: center;}.container .content {  width: 100px;  height: 100px;  background: #ee5f28;}

flex在父元素中通过justify-content:center; 定义了子元素项目在主轴上的对齐方式为居中,align-items:center; 定义子元素项目在交叉轴上的中点对齐,详细资料点击"flex"进行了解。

通过子元素的margin进行调整

.container {  background: #777777;  height: 400px;  display: flex;}.container .content {  width: 100px;  height: 100px;  background: #ee5f28;  margin: auto;}

flex默认会把子级项目排列到左上角,但是如果子级项目加上了margin: auto; 就可以让子元素正常居中了。

参考:https://juejin.cn/post/6844903555342696456

对于初入职场的你想知道行业内技术水平如何么?遇到的技术点有没有由于长期没有再接触容易忘记呢?『全栈编程』刷题小程序就是专门来解决上述两个问题的,其中题目全部出自一线大厂小哥的工作实践,每月刷题最多的同学可以任选100元以内图书一本哦~

css变成块级元素_css块级元素垂直居中常用布局方式相关推荐

  1. css变成块级元素_css块级元素

    <CSS权威指南>中文字显示:任何不是块级元素的可见元素都是内联元素.其表现的特性是"行布局"形式,这里的"行布局"的意思就是说其表现形式始终以行进 ...

  2. 八十七、CSS水平垂直居中的布局方式

    @Author:Runsen 2020/11/30. 周一.今天又是奋斗的一天. 文章目录 水平居中 inline-block+ text-algin 属性配合使用 子元素block和margin属性 ...

  3. Css 常用布局方式

    1.CSS 参考手册 2.元素的分类 首先我们要知道一共有几种元素 1.行内元素(可以与其他行内元素位于同一行,不会以新行开始高度.宽度不能设置) 2.块级元素(每个块级元素都从新的一行开始,其后的元 ...

  4. 常用布局方式与常用css

    目录 1.弹性盒布局方式 2.网格布局 3. 百分比布局 4.三块布局 5.媒体查询 6.style中使用三元运算符 7.做一个透明盒子 8.根据条件加class 9.让背景根据屏幕拉伸 1.弹性盒布 ...

  5. CSS系列之你能实现多少种水平垂直居中的布局

    文章の目录 1.定宽高 1.1.绝对定位和负 margin 值 1.2.绝对定位 + transform 1.3.绝对定位 + left/right/top/bottom + margin 1.4.f ...

  6. 元素,布局方式,BFC和清除浮动

    元素:块级元素,内联元素,内联块状元素 块级元素:在默认情况下会独占一块区域                相对于块级元素的父元素来讲,块级元素占据的行默认是单独享有的.               ...

  7. CSS布局方式有哪些

    CSS布局方式有哪些 静态布局 自适应布局 流式布局 响应式布局 弹性布局 1.静态布局 最传统的布局方式,网页中所有尺寸都是由px作为单位,设置了min-width,如果宽度小于就会出现滚动条,如果 ...

  8. 常见 五大CSS 布局方式 总结

    常见 五大CSS 布局方式 总结 之所以总结是因为最近也是在看css方面,让我迷惑的是有很多文章 关于布局名词都没有听说过,工作中也很少用.但是我们要与时俱进,叫的多了,它就成为正式名词了.比如 '双 ...

  9. CSS文档流与块级元素和内联元素

    文档流 将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流. 每个非浮动块级元素都独占一行, 浮动元素则按规定浮在行的一端. 若当前行容不下, 则另起新行再浮动. 内联元素也不 ...

最新文章

  1. Android JNI初试之环境搭建,最新方式的HelloWorld
  2. eclipse中Tomcat启动了 但看不到tomcat首页
  3. javascript中的异步 macrotask 和 microtask 简介
  4. Java之JDK和JRE
  5. C语言:L1-031 到底是不是太胖了 (10分)(解题报告)
  6. TCP和UDP服务器性能测试工具
  7. javascript 变换变量 数据类型 类型转换 运算符 运算表达式 运算优先级 理解笔记...
  8. 解决 /lib64/libc.so.6: version `GLIBC_2.18‘ not found以及glibc安装错误error: you must configure in a separat
  9. Python股票基金数据分析 爬虫 基金对比 Django框架 数据可视化
  10. Sentiment Embeddings with Applications to Sentiment Analysis
  11. android 8.0+后台Service限制
  12. 工作多年想转行,有哪些正确的方法及技巧呢
  13. 菜鸟起步2-逆向分析学习
  14. 谷粒商城-商城业务(商品上架)
  15. 【LiteApp系列】爱奇艺小程序架构浅析
  16. CF - 794B. Cutting Carrot - 数学
  17. 大财配资平台靠谱吗?
  18. ppt中讲演模式在哪里_滚动讲演的过去和现在
  19. 黑马 React 学习记录
  20. 【练习题】python列表练习题1

热门文章

  1. 皮一皮:这是要红啊...
  2. JetBrains放出Java代码质量检查工具Qodana,不了解一下?
  3. Redis 创始人宣布退居二线:我写代码只是为了表达自己!
  4. 用了这个 IDE 插件,5分钟解决前后端联调!
  5. 跟踪了下CSDN博客之星的竞选数据,我就看看不评论,你怎么看?
  6. 昔日的独角兽Docker资金紧张,未来前途未卜
  7. Dubbo将积极适配Spring Cloud生态,Spring Cloud体系或将成为微服务的不二选择!
  8. 计算机考试字字处理重点,计算机等级考试一级B上机试题:字表处理题(1)
  9. linux+添加git+ssh+keys,为github帐号添加SSH keys(Linux和Windows)(示例代码)
  10. module ‘tensorflow‘ has no attribute ‘Tensor‘