您现在的位置是:网站首页> 编程资料编程资料
CSS解决页面图片水平垂直居中问题的方法利用CSS3的flexbox实现水平垂直居中与三列等高布局Flexbox制作CSS布局实现水平垂直居中的简单实例浅析CSS实现水平垂直同时居中的5种思路让DIV水平垂直居中的两种完美方法推荐全面总结使用CSS实现水平垂直居中效果的方法CSS定位“十字架”之水平垂直居中HTML对于元素水平垂直居中的探讨关于html水平垂直居中的问题小结DIV或者DIV里面的图片水平与垂直居中的方法
2021-09-05
749人已围观
简介 这篇文章主要介绍了CSS解决页面图片水平垂直居中问题的方法,文中给出了三种方案而无需依赖JavaScript,需要的朋友可以参考下
做为一个前端设计人员,对于产品展示页面的设计一定不会陌生,其中产品图片摆放是必定经历的一步,并且水平居中和垂直居中又是最多的。有时需要产品图片水平垂直居中显示,这种展示用CSS来实现又是比较棘手的一件事,我想很多前端攻程师都有研究过或者说是搜索过这些方法吧。很多网站都是使用table来实现产品图片垂直居中,实现也是相当的方便,唯一不足之处就是结构繁锁,那么今天和大家一起看几种不是使用talbe方法实现产品图片水平垂直居中的方法。
图片水平垂直居中存在的问题
所谓的图片水平垂直居中就是把图片放在一个容器元素中(容器大于图片尺寸或是指定了大小的容器),并且图片位居此容器正中间(中间是指元素容器的正中间),而图片不是以背景图片(background-image)形式展示,是以元素形式展示的。如下图所示:
大家都知道,如果其中img有明确的尺寸,并且图片尺寸都是一致的,要实现其水平垂直居中一件非常容易的事情,我们只要像下面操作就能方便解决问题:
将图片以块元素方式显示(display:block);
给图片指定明确的margin-left和margin-top值,而其中margin-left值等于图片所在容器的宽度(imbBoxWidth)减去图片本身宽度(imgWidth)的值的一半【margin-left=(imgBoxWidth-imgWidth)/2】;margin-top值和margin-left很类似,只是把相对应的宽度值换成高度值,即【margin-top=(imgBoxHeight-imgHeight)/2】。
上面的方法是方便简单,但受限太大,比如说图片不一样时,用上面的方法实现就比较难,或许你会说给相图尺寸的图片定义一个类,然后在给他们指定不同的margin。但有很多情况下我们是无法使用这种方法来解决图片水平垂直居中的问题,比如说有很多不同尺寸的图片,而且图片容器的单位和图片大小单位不一致时,这样我们就没有办法能计算出图片与容器之间的margin是多少,此时解决图片水平居垂直居中就相当的困难。换过来说,如果有什么办法能让不同尺寸的图片实现水平垂直居中,那对于我们来说是多么有用的,又是多么方便的一件事。
解决问题——让图片水平垂直居中
解决水平居中是相当的容易,如果图片左浮动并且"display:inline"时,我们只要给图片设置一个"text-align:center"属性,就顺利解决了水平居中。
对于垂直居中的最佳解决方案,在现代浏览器中,我们可以给图片容器设置“dipslay:table-cell;vertical-align:middle”, 这种方法能顺利的让图片实现垂直居中,但只能在现代浏览器运行,在IE6-7中无法正常运。这样一来是不是将无法实现呢?大家别急,我们一起来看下面的几种方法:
1、table-cell加上display:inline
这种方法很神奇,前面我们说过用display-table和vertical-middle是在现代浏览器中实现图片垂直居中是最佳办法,只是IE6-7不支持display:table-cell,其实并不是那么严重,我们只要在IE6-7下给他来个另外的写法。其实掌握了原理在IE下实现起来也并不难,下面我们一起先来看看这个思路:
首先在图片的容器元素中设置“display:table-cell;vertical-align:middle;”实现现浏览器的垂直居中;
IE6-7有一个好的办法,就是创建一个线盒,此线盒的高度和图片容器的高度一样,并且给这个线盒也设置“vertical-align:middle”。
接下来的关键是给IE6-7创建线盒,还好IE6-7下部分显示支持“dipslay:inline-block”。这样我们就可以在图片的容器中创建一个空元素(比如说span),并且设置span的“display:inline-block;height:100%;vertical-align:middle”。
创建线盒中有一个细节需要注意,在IE6-7中空的line-block元素宽度为“0”,这样在IE6-7下是没有效果的,此时我们需要给span加上“width:1px”,此时会给水平居中造成1px的误差,但这种bug你是可以接受得了的。
那么最终解决方案就是使用display:table-cell和设置了display:inline-block的线合span。当然其中还是需要为IE写一点特殊的代码,接下来我们的起来看代码:
HTML Markup
- <ul class="imgWrap clearfix">
- <li><a href="#" class="imgBox"><span>span><img src="images/img1.jpg" alt="" />a>li>
- <li><a href="#" class="imgBox"><span>span><img src="images/img2.jpg" alt="" />a>li>
- <li><a href="#" class="imgBox"><span>span><img src="images/img3.jpg" alt="" />a>li>
- <li><a href="#" class="imgBox"><span>span><img src="images/img4.jpg" alt="" />a>li>
- ul>
CSS Code
效果
2、空白标签实现图片的垂直居中
这种方法很有意思,也很有独特之处,兼容各浏览器,代码较第一种方法又简单很多,最主要的不要单独给IE写效果,而且易懂,下面一起看看这种方法吧。
HTML Markup
- <ul class="imgWrap clearfix">
- <li><a href="#" class="imgBox"><span>span><img src="images/img1.jpg" alt="" />a>li>
- <li><a href="#" class="imgBox"><span>span><img src="images/img2.jpg" alt="" />a>li>
- <li><a href提示:
本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- 纯css实现3D图像轮转效果使用CSS cross-fade()实现背景图像半透明效果的示例代码详解css图像拼合技术(精灵图)CSS图像替换技术的几种方案介绍CSS实现图像映射的方法
- 全面剖析CSS Position定位css position 设置元素的定位方式详解CSS 定位之position全面了解总结CSS的position定位属性在使用的一些重点图解CSS中position属性的定位用法深究CSS定位position的常用技法理解CSS浮动float、定位positionCSS实现模拟position的fixed页面定位效果老生常谈position定位——让人又爱又恨的属性
- css绘制透明三角形CSS绘制三角形的实现代码(border法)利用css绘制三角形的方法及拓展纯CSS绘制三角形箭头图案技术解析Html+CSS绘制三角形图标用CSS3绘制三角形的简单方法纯CSS绘制三角形箭头效果用CSS代码绘制三角形 纯CSS绘制三角形的代码CSS中三角形的绘制与巧妙应用实例详解
- 不能不知道的CSS选择器技巧简要讲解CSS中的类型选择器、ID选择器、类选择器详解CSS3选择器的使用方法汇总CSS选择器学习攻略详细介绍CSS中的伪选择器举例详解CSS中的选择器关于CSS选择器优先级的判断题附结果截图你应该知道的30个css选择器两种CSS3伪类选择器详细介绍CSS选择器种类及及其使用介绍CSS3中31种选择器使用方法教程
- 纯html+css制作三级下拉菜单
- 解决纯css写三角形在firefox下的锯齿问题
- 纯CSS实现垂直居中的9种方法CSS在固定宽高的div内实现垂直居中的实例详解结合CSS3的新特性来总结垂直居中的实现方法CSS教程之div垂直居中的多种方法CSS解决页面图片水平垂直居中问题的方法全面总结使用CSS实现水平垂直居中效果的方法CSS 实现垂直居中的几种方法(必看)
- CSS鼠标点击改变图片透明度详解CSS3的opacity属性设置透明效果的用法CSS3中使用RGBa来调节透明度的教程CSS3不透明度实例讲解CSS3实现透明白块向上漂浮动画特效源码css绘制透明三角形CSS3中文字镂空、透明值、阴影效果设置示例小结CSS3中的Opacity多浏览器透明度兼容性问题兼容主流浏览器的CSS透明代码(必看篇)
- 基于CSS制作天蓝色导航菜单 css控制列表与导航的制作(水平导航条、垂直翻转的列表、垂直导航栏、内纯CSS3单页切换导航菜单界面设计的简单实现jQuery和CSS3实现的汉堡包导航菜单打开动画特效源码打造最美CSS多级下拉横向导航菜单代码纯js和CSS3媒体查询制作简单的响应式导航菜单特效源码CSS3+jQuery实现6种移动手机导航菜单UI设计特效源码CSS3实现创意鼠标经过导航菜单特效源码CSS设置列表样式和创建导航菜单实现代码
- 深入解析CSS的Sass框架中混合宏的使用前端编码规范(4)—— CSS 和 Sass (SCSS) 开发规范详解CSS的Sass框架中代码注释的编写方法利用CSS的Sass预处理器(框架)来制作居中效果CSS的Sass框架中常用的操作符的使用教程使用Sass来编写面向对象的CSS代码CSS框架sass的简单一览CSS的SASS样式编程指南CSS制作框架 Sass 3.4.4 今日发布 学习CSS预处理器:Sass和less进行对比sass简介_动力节点Java学院整理
点击排行
本栏推荐
