/* 第一种方案 子元素高度可以设定也可以不设定*/
.app{width: 500px;height: 500px;background: greenyellow;display: flex;align-items: center;justify-content: center;}
.app>div{width: 100px;height: 100px; font-size: 20px;background: blueviolet;
}
/* 第二种方案 子元素高度可以设定也可以不设定*/
.app{width: 500px;height: 500px;background: greenyellow;position: relative;}
.app>div{width: 100px;height: 100px;font-size: 20px;background: blueviolet;  position: absolute;top: 0;left: 0;right: 0;bottom:0;margin: auto;
}
/* 第三种方案 子元素高度可以设定也可以不设定*/
.app{width: 500px;height: 500px;background: greenyellow;position: relative;}
.app>div{width: 100px;height: 100px;font-size: 20px;background: blueviolet;  position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);
}
/* 第四种方案 高度就是文字加line-height的高度 局限性在于必须里边的元素是inline否则不生效*/
.app{width: 500px;height: 500px;background: greenyellow;line-height: 500px;text-align: center;}
.app>div{width: 100px;font-size: 20px;background: blueviolet;    display: inline;
}
/* 第五种方案 横向利用margin auto,垂直还是利用定位和平移 也不用管里边元素的高度*/
.app{width: 500px;height: 500px;background: greenyellow;
}
.app>div{width: 100px;font-size: 20px;background: blueviolet;    position: relative;top: 50%;transform: translateY(-50%);margin-left: auto;margin-right:auto ;
}
/* 第六种方案 最不推荐的方案  通过计算padding 一旦内部元素改变了高度或者宽度,那就惨了*/
.app{width: 500px;height: 500px;background: greenyellow;box-sizing: border-box;padding-left: 200px;padding-top: 200px;
}
.app>div{width: 100px;height: 100px;font-size: 20px;background: blueviolet;  }
/* 第七中方案 本人没用过,但是确实能实现 ,原来盒子的背景颜色被子元素覆盖了,
我又试着添加了元素。有点意思。有时间可以研究下 vertical-align我一直很拒绝。这个方法也是解决多行文字垂直居中*/
.app{width: 500px;height: 500px;background: greenyellow;display: table; text-align: center;
}
.app>div{width: 100px;height: 100px;font-size: 20px;background: blueviolet;  display: table-cell;vertical-align: middle;
}
/* 第八种方案 单行文本好居中 就是让文本的父元素的line-height和高度相同*/
.app{width: 500px;height: 500px;background: greenyellow;        text-align: center;line-height: 500px;
}
.app>div{width: 100px;height: 100px;font-size: 20px;background: blueviolet;  display: inline;
}
/* 第九种方案 多行文本垂直居中 这里就不水平居中了。,。
除了歌词水平居中之外,其他这么的都不好看。
两种方法:table法和不设高度法,我自己起的名字
以下是table 法
。*/
.app{width: 500px;height: 500px;background: greenyellow;        display: table;
}
.app>div{width: 100px;height: 100px;font-size: 20px;background: blueviolet;  display: table-cell;vertical-align: middle;
}
/* 不设高度法,更简单 和其他的垂直居中一样,上代码就行
这个时候就实现多行文本居中了 然后至于换不换行加不加点就直接操作了
还能操作显示几行等等
这种方法的多行可操作强,否则小心后期难维护
*/
.app{width: 500px;height: 500px;background: greenyellow;display: flex;align-items: center;justify-content: center;
}
.app>div{width: 100px;font-size: 20px;background: blueviolet;    /* overflow: hidden;text-overflow: ellipsis;word-break: break-all;white-space: pre-line; */}                   

最全CSS3实现水平垂直居中的10种方案相关推荐

  1. HTML5/CSS3基础——div盒子水平垂直居中的三种方案

    HTML5/CSS3基础--div盒子水平垂直居中的三种方案 一.基于定位的使div盒子水平居中的三种方式 1.使用top:50% left:50% 以及margin-top 和 margin-lef ...

  2. 前端:水平垂直居中的10种方法

    第一种: 通过绝对定位的方式 absolute + 负margin ​ 首先知道子元素的宽高,给子元素设置top:50%:left:50%, 但绝对定位是基于子元素的左上角,我们所希望的效果是子元素的 ...

  3. html flex上下居中,css3 flex实现div内容水平垂直居中的几种方法

    一.flex-direction: (元素排列方向) ※ flex-direction:row (横向从左到右排列==左对齐) ※ flex-direction:row-reverse (与row 相 ...

  4. html 水平垂直居中,css水平垂直居中有几种实现方式?

    项目中经常碰到需要实现水平垂直居中的样式.下面就总结几种常用的方法 css水平垂直居中有几种实现方式? 1.水平对齐+行高 [思路一]text-align + line-height实现单行文本水平垂 ...

  5. css设置子盒子水平垂直居中(四种方式)

    css设置子盒子水平垂直居中(四种方式) 1. 使用绝对定位 <!DOCTYPE html> <html><head><meta charset=" ...

  6. CSS水平垂直居中的五种方式

    CSS水平垂直居中的几种方式 absolute and -margin 需要设置盒子的宽度和高度 .father{border:1px solid red;width: 80vh;height: 90 ...

  7. css实现水平垂直居中的七种方式

    css实现水平垂直居中的七种方式 一.使用grid布局 二.使用flex布局 三.使用定位+外边距 四.使用定位+平移 五.使用外边距 + 平移 六.使用文本对齐 + 行高 七.使用表格单元 一.使用 ...

  8. CSS图片水平垂直居中的三种方法

    CSS图片水平垂直居中的三种方法 设置行高 使用定位和translate 使用弹性盒子 设置行高 我们知道img元素为行内快元素,所以首先设置图片元素的父元素里文字水平居中,行高与整体高度一致. 其次 ...

  9. div水平垂直居中的七种方法

    学习笔记(一) div水平垂直居中的七种方法 文章目录 学习笔记(一) 前言 一.绝对定位法 1.方法一 2.方法二 3.方法三 4.方法四 二.flex布局法 1.方法五 三.将小div转成行内块 ...

  10. div盒子水平垂直居中的几种方式

    1. div水平居中 div{width:100px;height:100px;margin:0 auto; } 2. div水平垂直居中 这里要有两层或者给body设置高度100vh,然后给元素设置 ...

最新文章

  1. taro 重新加载小程序_Taro 小程序采坑
  2. 使用T2表中的值替换T1表的值
  3. Java内存模型深度解析:final--转
  4. win7任务栏计算机图标,Win7系统任务栏怎么添加显示桌面图标 显示桌面图标如何放到win7任务栏...
  5. 关闭或开启memory_target
  6. 虚拟机安装以及PCL的配置(1)
  7. OpenGL:画三角形程序详解笔记
  8. leetcode104. 二叉树的最大深度(dfs)
  9. java 日期 年数_java 日期加减天数、月数、年数的计算方式
  10. 金色丰收的FreeEIM季节
  11. Android SDK Manager Proxy on MAC
  12. 允许其他用户通过本计算机连接+连接手机,如何用手机搜索到的WF网络通过数据线连接台式电脑,让台式电脑共享网络...
  13. 在Cocos2d-x中使用CocosBuilder
  14. Tomcat启动页面中文乱码解决方法
  15. 文献阅读-深度学习跨模态图文检索研究综述
  16. Unity开发:一个PC项目转WebGL遇到的问题解决汇总
  17. 初学者该掌握的计算机知识,初学者该如何学习电脑知识
  18. KY-RTI分布仿真技术:第二章 系统安装
  19. 【Jmeter】Jmeter登录带验证码平台
  20. CISCO 基于时间访问控制

热门文章

  1. 怎样设计访谈提纲_如何设计调查问卷与访谈提纲要点分析.ppt
  2. qpython3l下载_QPython3下载
  3. python done()什么意思_turtle.done()的作用是什么
  4. 把桌面路径移动到D盘的一种方法
  5. Java面向对象OOP思想概述
  6. --set-gitd-purged参数解析
  7. y-在C语言while语句中的意义,c语言while用法(C语言while用法)
  8. 夏普科学计算机标准差,夏普比率-标准差-贝他系数
  9. 抖音极速版自动运行脚本
  10. Word表格中文字如何居中?