博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实践中的垂直居中
阅读量:6574 次
发布时间:2019-06-24

本文共 1067 字,大约阅读时间需要 3 分钟。

背景:在项目中经常碰到让元素垂直居中的情形,实现的方法有很多,各有利弊。众所周知的,用flex布局很容易就实现,but,一些不是很主流的浏览器并不支持flex,这就比较尴尬了,有好东西不能在项目中用起来。今天就利用下业余时间,汇总一下常用的几种垂直居中的方式。

废话少说,开整。


如图,如果想让盒子A在盒子B内垂直居中

clipboard.png

A

  1. flex方式,兼容到ie10

    .box {    display: -webkit-flex;  /* 新版本语法: chrome 21+ */    display: flex;          /* 新版本语法: opera 12.1, firefox 22+ */         /*flex-direction: row; // 默认水平排列 */    align-items: center; /* 元素排列的垂直方向居中 */}
  2. 利用ifc(行内格式化上下文),其实就是利用行高撑高父元素,视觉上表现也为垂直居中。

    .box {  line-height: 100px; }.item {  display: inline;}
  3. 绝对相对定位

    .box {  position: relative;}.item {  position: absolute;  top: 50%;  margin-top: -10px; // 自身高度的一半,此用法需要知道自身的高度  // transform: translateY(-50%); // 兼容性允许的话可以用css3特性代替margin-top}// 绝对定位另一种方式.item {  position: absolute;  top: 0;  bottom: 0;  margin: auto;  // left: 0; right: 0; // 这样还能水平居中}
  4. 利用vertical-align,为了不产生新的dom,可能使用伪类before做辅助,让子元素与伪类垂直居中对齐

    .box:before {  content: '';  height: 100%;  vertical-align: middle;  display: inline-block;}.item {  display: inline-block;}

    突然发现,实现垂直居中的方法有很多,此处先列举几个作参考,如有纰误,欢迎评论指正。如遇到具体情况不知道怎么实现的同学,也可以私信我,日后也继续完善此贴。

转载地址:http://fkmjo.baihongyu.com/

你可能感兴趣的文章
30hibernate_fetch_1_select
查看>>
PHP 可变函数经典用法
查看>>
[HNOI2002]营业额统计 Splay tree入门题
查看>>
Repeater控件动态变更列(Header,Item和Foot)信息
查看>>
viewstate
查看>>
理解C#事件
查看>>
【转】Android 最火框架XUtils之注解机制详解
查看>>
CentOS7和win7双系统启动项
查看>>
semver语义化版本号
查看>>
(原创)INTERVAL分区表与RANGE分区表相互转化
查看>>
设备树概述【转】
查看>>
[转载]资深程序员点评当前某些对Lotus Domino 的不实评论
查看>>
OC中类别、扩展、协议与托付
查看>>
spring ioc
查看>>
Matlab学习笔记 figure函数
查看>>
任务调度器配置文件
查看>>
【JavaScript吉光片羽】--- 滑动条
查看>>
ORACLE 存储过程异常捕获并抛出
查看>>
arcgis api for js之echarts开源js库实现地图统计图分析
查看>>
Eclipse 格式化代码时不换行与自动换行WordWrap插件
查看>>