• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >CSS > 大小不固定的图片、多行文字的水平垂直居中实现方法

大小不固定的图片、多行文字的水平垂直居中实现方法

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-08-06

本文主要包含图片,文字,水平,垂直居中等相关知识,佚名 希望在学习及工作中可以帮助到您

本文综述

想必写css的都知道如何让单行文字在高度固定的容器内垂直居中,但是您知道或者想过让行数不固定的文字在高度固定的容器内垂直居中呢?本文将会告诉你如何实现多行文字的垂直居中显示。
关于图片垂直居中显示,想必很多写css的人都研究过,或者说是搜寻过方法。淘宝团队似乎提供了一种不错的方法,用font-size解决IE下垂直居中的问题,是个好方法吗?是的,方法是不错,可是问题也很多:不支持img外标签的浮动,致使多图片排列时需添加额外标签;需要记住一些比例参数,上手较难;原理艰深,兼容性不稳定等。但是在我看来,这个方法不足够好!本文将提供两种更为新颖的方法,代码简洁,原理简单,上手容易,兼容性强,出错率低的方法。inline-block裸标签对齐法,以及透明图片拉伸对齐法。
css是如此的精深,我相信后来人会有更加绝妙的方法。但是,本文提供的几种实现图片垂直居中方法,一定是目前最实用的几种方法。

一、大小不固定,多行文字的垂直居中

① 单行文字
可能很多人都知道如何让单行文字垂直居中显示,就是使用line-height,将line-height值与外部标签盒子的高度值设置成一致就可以了。例如如下css代码:height:3em; line-height:3em; ……
显示结果如下图:

单行文本垂直居中对齐-鑫空间-鑫生活

② 多行文字
如何实现父容器高度固定,文字可能一行,两行或更多行的垂直居中对齐呢?
实现的关键是把文字当图片处理。用一个span标签将所有的文字封装起来,设置文字与图片相同的display属性(inline-block属性),然后用处理图片垂直居中的方式处理文字的垂直居中即可。
核心css代码如下,
外部div标签:


行数不固定文字垂直居中对齐

行数不固定文字垂直居中对齐

有几点简要说明:
1.此例子用em做单位,如果您对em单位了解不够,把握不来的话,可以使用px做单位,值要换;
2.外部div不能使用浮动;
3.外部div高度和文字大小比例1.14为宜;
4.内部标签的vertical-align:middle可以省略,但是外部div高度和文字大小比例要修改,我自己试了一下,高度比字体1.5左右的样子;
5.系统原因,我没能够在IE8下测试。

实现的最终效果和JavaScript演示,您可以狠狠地点击这里去看看。

二、大小不固定,图片的水平垂直居中

① 透明gif图片+背景定位的方法
这里利用了background-position:center实现图片居中显示。这是个很实用也是很聪明的办法,对于维护控制成本都很不错。微软必应图片搜索的图片排列就是使用的这种方法。
方法的原理很简单,使用一个透明的gif图片做覆盖层,高宽拉伸至所需要的大小,然后给这个gif图片一个background- position:center center的属性。而background-image建议写在页面上,因为实际项目中,这肯定是个动态的URL地址,css文件似乎不支持动态URL 地址。下面就是实例演示页面的效果截图。

透明图片和背景定位实现图片水平垂直居中

透明图片和背景定位实现图片水平垂直居中

核心HTML代码为:

<img src="../image/pixel.gif" style="background-image:url(http://image.zhangxinxu.com/image/study/s/s128/mm1.jpg);" />

其中此img标签已经设置了高宽和背景居中定位的属性。具体实现可以可以狠狠地点击这里进行参照。

② display:table-cell和文字大小控制居中

这个方法可以说就是本文综述部分提到的淘宝团队想出的图片垂直居中的方法。但是本文展示的这个方法的css代码又不是淘宝工程师们的原版代码,我对其做了一定的修改,把里面没有用可以剔除的hack都去掉了。

css代码部分:
img外部div标签:

div {display:table-cell; width:1em; height:1em; font-size:144px; width:144px; height:144px; font-size:118px; border:1px solid #beceeb; text-align:center; vertical-align:middle;}/*这里的大小是根据高宽上限128像素图片设置的*/

img标签:


这里附上效果截图(取自IE6浏览器):

table-cell和文字大小实现的图片垂直居中显示

table-cell和文字大小实现的图片垂直居中显示

图片和文字比不上直接的效果显示,所以建议您狠狠地点击这里。

③ display:inline-block和文字大小控制居中
此方法的灵感来自于Google picasa相册的图片显示,代码相当简洁,是个成本很低,效果惊人的方法。适用于多图显示的情况。基本上用裸标签就实现了想要达到的效果。一般而言,图片阵列排列显示的时候,外面都有一个a标签的,起到链接的作用。而本处的方法就只要这一个a标签就足以实现图片垂直且居中的显示效果。其关键是将a标签默认的inline属性设置为inline-block属性,这样a标签既支持宽度,又支持vertical-align:middle,配合img的vertical-align:middle就可以实现图片的水平垂直居中显示了。
css代码:
a标签:


最精简的实现图片水平垂直居中显示的方法

最精简的实现图片水平垂直居中显示的方法

另外补充说明的:img外的标签需是a标签或span这类inline属性的标签,div标签也可以,但是css代码多些: display:inline-block;*display:inline; zoom:1; IE下要先变成inline属性,再转变成类似于inline-block的属性,原因讲起来又是一篇长长的文章,放着。

建议您狠狠地点击这里直接查看源代码

④ 透明图片拉伸对齐实现垂直居中显示
这个方法是我自认为相当不错的一个方法,说实话,想到这个方法是自然而然的,经过试验发现真的很管用。对比淘宝团队的方法,发现优势很多,基本上淘宝的table-cell+font-size方法会带来的些问题都避免了。
非常简单,非常易懂,出错率低,上手方便,兼容性上佳!

原理简述:
一句话,将要显示的图片与一张透明的高度100%,宽度1像素的透明图片vertical-align:

您可能想查找下面的文章:

  • CSS实现鼠标上移图标旋转效果
  • CSS实现背景图片透明而文字不透明效果的两种方法
  • CSS3实现瀑布流布局与无限加载图片相册的实例代码
  • CSS3 Notes: -webkit-box-reflect实现倒影的实例
  • 使用CSS3实现一个3D相册效果实例
  • 无需JS和jQuery代码实现CSS3鼠标浮动放大图片
  • 利用纯css实现图片翻转的效果
  • 利用CSS定位背景图片的常用方法总结
  • 利用CSS3把图片变成灰色模式的实例代码
  • css样式图片、渐变、相关小知识(必看)

相关文章

  • 2017-08-06CSS样式在IE6下无效的问题解决方法
  • 2017-08-06CSS3中线性颜色渐变的一些实现方法
  • 2017-08-06加了important标记css样式的jQuery写法
  • 2017-08-06使IE6支持:hover效果使用li:hover或div:hover
  • 2017-08-06为ie和chrome单独设置样式的方法
  • 2017-08-06css控制列表与导航的制作(水平导航条、垂直翻转的列表、垂直导航栏、内联列表、列表样
  • 2017-08-06CSS属性探秘系列(七):z-index
  • 2017-08-06用css3制作纸张效果(外翻卷角)
  • 2017-08-06CSS3简单实现照片墙
  • 2017-08-06CSS层叠样式表的层叠是什么意思(自我理解)

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • css hack总结 图片整理版
    • 利用CSS3的transform做的动态时钟效果
    • CSS中的选择符实际使用指南
    • CSS3绘制不规则图形的一些方法示例
    • important的妙用解决firefox和ie的css兼容问题
    • CSS border-style 属性使用方法
    • CSS3常用的几种颜色渐变模式总结
    • table CSS制作好看的网页表格
    • 大小不固定的图片、多行文字的水平垂直居中实现方法
    • CSS浏览器兼容性Hack大全

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有