php excel 垂直居中,完美实现文字图片水平垂直居中

垂直居中是一个历史悠久的大问题,要做到兼容所有浏览器少不了要花点时间,网上也流传了很多解决方案,但没发现比我现在用的方案更完美,至少在我的项目是如此。

项目中要用到垂直居中而碰到兼容性问题的,一般都是以下几种情况:

换行文字垂直居中

图片垂直居中

以上都是在固定宽高的容器里垂直居中,不然的话margin,padding便可实现。

解决垂直居中无非就从几个方面入手

利用行高等于容器高度

模拟表格单元格特性

定位布局

css3的display:box

换行文字垂直居中

结合表格单元格特性和定位来实现

/* 换行文字垂直居中 */

.vc-font1 {

border: 1px solid black;

width: 200px;

height: 200px;

display: table-cell;

vertical-align: middle;

text-align: center;

}

/* 兼容IE6、7 */

*+html .vc-font1 {

height: auto;

min-height: 200px;

}

.vc-font1 .vc-fix {

*position: relative;

*top: 50%;

*left: 50%;

*width: 100%;

}

.vc-font1 .vc-inner {

*position: relative;

*top: -50%;

*left: -50%;

}

换行文字垂直居中,兼容所有浏览器

当文字高度超出容器时,识别table-cell的浏览器容器会自适应,此时容器的height属性相当于min-height,为了达到所有浏览器效果一致,容器的height还要Hack一下。

缺点:增加了多余的标签

利用行内块vertical-align:middle来实现

.vc-font2 {

border: 1px solid black;

width: 200px;

height: 200px;

text-align: center;

overflow: hidden;

}

.vc-font2 .vc-inner {

display: inline-block;

vertical-align: middle;

}

.vc-font2 .vc-fix {

display: inline-block;

width: 0;

height: 100%;

line-height: 100%;

vertical-align: middle;

visibility: hidden;

}

换行文字垂直居中,兼容所有浏览器

vc-inner和vc-fix必须是行内元素,vc-inner加上vc-fix的宽度不能超过容器宽度,行内块换行时会多出空隙(容器font-size: 0可去除,但这里不适用),所以这两个标签不能换行。

缺点:增加了多余的标签(硬伤),标签不能换行且必须是行内元素。

固定宽高图片垂直居中

前面提到的换行文字垂直居中的方法对于固定宽高图片垂直居中也是适用的

利用定位(原理跟方法1类似)

.vc-img1 {

border: 1px solid black;

width: 200px;

height: 200px;

position: relative;

}

.vc-img1 img {

width: 100px;

height: 100px;

position: absolute;

top: 50%;

left: 50%;

margin: -50px 0 0 -50px;

}

2d0c01dce97c5c71ede59ed292058011.png

既然已经确定了图片的宽高,毫无疑问使用这种方法就没有兼容性的问题出现了

缺点:图片宽高必须固定,以便计算图片margin的负值。

行高等于容器高度

.vc-img2 {

border: 1px solid black;

width: 200px;

height: 200px;

line-height: 200px;

_font-size: 200px;

text-align: center;

}

.vc-img2 img {

width: 100px;

height: 100px;

vertical-align: middle;

}

/*hack for ie7 字体要设置多大,自个慢慢调整*/

*+html .vc-img2 {

font-size: 180px;

}

2d0c01dce97c5c71ede59ed292058011.png

我以为设置了行高等于容器高度就完事了,依然还是碰到了问题,IE6不买账没效果,IE7也闹别扭,在标签同一行情况下失效。

这里顺便推荐一个很好用的占位图网站,好奇的童鞋猛戳链接吧 :)

缺点:感觉这样写不爽

图片自适应容器宽高垂直居中

这个方法很简单,就是在方法4的基础上改一下图片的宽高改成max-width,max-height,代码如下:

.vc-img3 {

border: 1px solid black;

width: 200px;

height: 200px;

line-height: 200px;

text-align: center;

}

.vc-img3 img {

max-width: 150px;

max-height: 150px;

vertical-align: middle;

}

/*hack for ie7 字体要设置多大,自个慢慢调整*/

*+html .vc-img3 {

font-size: 180px;

}

很明显这是不兼容IE6,要兼容IE6恐怕就要写JS。对此,我只想说,让IE6见鬼去吧!

CSS3的display:box

最后给出一种高端大气上档次的方法。

.vc-css3 {

border: 1px solid black;

width: 200px;

height: 200px;

text-align: center;

display: -webkit-box;

-webkit-box-align: center;

-webkit-box-pack: center;

display: -moz-box;

-moz-box-align: center;

-moz-box-pack: center;

display: -o-box;

-o-box-align: center;

-o-box-pack: center;

display: -ms-box;

-ms-box-align: center;

-ms-box-pack: center;

display: box;

box-align: center;

box-pack: center;

}

.vc-css3 img {

width: 100px;

height: 100px;

}

2d0c01dce97c5c71ede59ed292058011.png


想居中就居中,爽啊!

很完美有木有?如果IE能支持的话,又是该死的IE...

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503588.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cd短是什么意思_每日命令|pwd、cd

01 命令简介上回说到《每日命令 | ls》,今天我们来说一说pwd命令和cd命令。pwd命令——返回当前工作目录名称。cd命令——改变工作目录。什么是工作目录?举个例子:我在北京上班,那我的工作地点就是北京;后来我到上海上…

sql 查询表结构_SQL查询语句的完整结构解析

SELECT语句完整的句法模板:SELECT [DISTINCT] FROM [ JOIN ON ][WHERE ][GROUP BY [HAVING ]][ORDER BY ,...]上述句法模版中的[ ]表示该部分可选。SELECT整个语句的执行过程为:(1) 读取FORM子句中表、视图的数据。(2) 存在连接表时&…

基于matlab实现的云模型计算隶属度,基于MATLAB实现的云模型计算隶属度

”云”或者’云滴‘是云模型的基本单元,所谓云是指在其论域上的一个分布,可以用联合概率的形式(x, u)来表示云模型用三个数据来表示其特征期望:云滴在论域空间分布的期望,一般用符号Εx表示。熵:不确定程度…

二陈丸配什么吃不上火_宝妈一个人带孩子是什么感觉?前三种场景,不知道是怎么熬过来的...

导语:很多人认为一个家庭主妇很轻松,每天就带带孩子,其他什么都不需要做,远远没有那些人说的那么辛苦,无论是老公还是很多婆婆都认为是在家享福呢,经常就会甩出一句话“每天不就带个孩子吗?至于…

php怎么分割页面,将一个页面分成多个html文件(静态html分割页面)

静态html分割页面,达到类似PHP等动态页面的include引入页面效果。用html把首页分成三个文件web.png在PHP、JSP等动态页面开发中,页面里引入其它页面只需include()进来就可以实现页面的分离。如果用HTML,也是可以实现页面的分割的。两种方法&a…

zbar扫描无法近距离扫码_生意好时最怕收银出故障,这几个扫码枪的常见问题你一定要知道...

文|杭州丰收收不怕生意不够好,就怕生意好时收银出故障。这几天丰收收经常接到询问,说自己商铺所在的位置信号非常不好,很多客户等了很久没法付款,索性就不买了。看着上门的生意就这么走了,心里很不是滋味。遭遇这种经历…

你觉得外观模式和代理模式的联系和区别是什么?_GoF23种设计模式

UML泛化(继承非抽象类):带空心三角形的直线表示实现(继承抽象类,类实现接口):带空心三角形的虚线表示依赖:类与类之间最弱的关系,依赖可以简单的理解一个类使用了另一个类…

反注入技术:防范非法 Call 调用的探讨

DLL 注入是一种常见的技术,用于向目标进程注入外部的动态链接库(DLL),以执行某些特定的操作。这种技术在恶意软件、游戏作弊等场景中被广泛使用,因此,研究和实施一些反注入技术对于提高应用程序的安全性是至…

tp5 php跨域,TP5.1解决跨域

TP5.1解决跨域博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!介绍在前后端分离开发的时候就会遇到跨域的问题,在本地调试的时候可能不…

如何避免_如何避免变频器受负载冲击

电工学习网:www.diangon.com关注电工学习网官方微信公众号“电工电气学习”,收获更多经验知识。为了保障变频器的安全运行,避免变频器受负载冲击,必须做好以下几点:㈠尽量保证变频器有充足的加减速时间变频器在开机或升速时&#…

哪种语言 连接 oracle,Go语言连接Oracle(就我这个最全)

综合参考了网上挺多的方案倒腾了半天终于连接好了Go都出来这么多年了还没有个Oracle的官方驱动。。。过程真的很蛋疼。。一度想放弃直接连ODBC首先交代一下运行环境和工具版本:WIN10MINGW64ORACLE INSTANCCLIENT_18_3 x64Jetbrins Goland看完这篇文章,…

补丁程序正在运行_针对微软4月14日更新补丁会导致蓝屏问题的检测及解决方法...

近期,我们接连收到用户求助,在使用电脑过程中会突然出现蓝屏问题,经火绒工程师分析发现,大部分用户出现蓝屏问题,是因为安装了微软于4月14日推送的补丁所致(详见下图)。目前微软方面表示正在调查相关问题。Win10系统蓝…

商城html源码_Java开源商城源码推荐,从菜鸡到大神,永远绕不开的商城系统

每个Java程序员,从懵逼菜鸡,再到懵懂菜鸟,再到小鸟,大鸟,最后到技术大神,始终绕不开商城系统,里面蕴含了大量的业务,涉及到了大量的知识点和解决方案。今天锋哥介绍一款Java开源商城…

cpu只能单通道是什么表现_【小白入门】为什么要组内存双通道?

更新时间:2020年5月11日 内容提要: 1.内存双通道的原理 2.如何组双通道很多小白在购买内存的时候,不知道该购买一根单16G还是两根单8G,看完本篇文章你将知道内存双通道的优势。1.内存双通道的原理选择两根单8G组成双通道&#xff…

雷云3灯光配置文件_雷蛇的哪种键盘最适合入手?3款最佳雷蛇键盘推荐。

更新时间2020.8.6本次主要内容是雷蛇的三款不同价位的雷蛇键盘推荐,有需要的小伙伴可以看一下哦,也许你想要入手的键盘就在其中。---------------------------------雷蛇黑寡妇蜘蛛精英版--------------------------------------黑寡妇蜘蛛精英版在猎魂光…

某些您可以编辑的区域交叠在一起 可能不能同时显示_DX200操作要领—修改与编辑程序(三十九)...

3.5 修改程序3.5.1 程序的调出1. 选择主菜单中的【程序内容】2. 选择【程序选择】–显示程序一览表。3. 选择要调出的程序3.5.2 程序相关画面程序相关画面有下面5种,可以确认/编辑每个程序的设定或登录。•程序标题画面显示和编辑注释、登录日期、编辑禁止的状态等。…

求二叉树中以x为根的子树的深度_还在玩耍的你,该总结啦!(本周小结之二叉树)...

给「代码随想录」一个星标吧!❝有学习就要有总结❞本周小结本周赶上了十一国庆,估计大家已经对本周末没什么概念了,但是我们该做总结还是要做总结的。本周的主题其实是「简单但并不简单」,本周所选的题目大多是看一下就会的题目&a…

钉钉功能介绍_平棉集团组织召开阿里钉钉办公系统基础功能培训会

4月11日上午,平棉集团在总部26楼多媒体会议室组织召开阿里钉钉办公系统基础功能培训会,邀请河南一一信息技术公司经理杨杉前来授课。集团公司董事长张先顺及公司领导陈亚民、王仲山、王向阳、陶尚林,各生产经营单位主管销售工作的负责人和公司…

qemu搭建arm运行linux内核,centos使用qemu搭建ARM64运行环境

准备工作(1) linux 内核源码, 从github上获取git clone https://github.com/torvalds/linuxmake kernelversion(2) 交叉编译工具,从linaro官网(www.linaro.org)上获取解压后设置环境变量即可xz -d gcc-linaro-xxx.tar.xztar -xvf gcc-linaro-xxx.tarexpo…

java 某年某月中第几周 开始时间和结束时间_重磅!库里又要签下一超级大合同!4年2亿啊!退役时间也定了...

好家伙!现在的超级巨星都喜欢提前续约了,继詹姆斯与湖人签下两年8500万美元顶薪协议后,库里也有望达成这一成就。当地时间周一训练结束后,他接受采访谈到自己的续约问题,表示已经和球队交流过,同时明确表态…