热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS简单的图片居中

本文主要分享【网页设计】,技术文章【CSS简单的图片居中】为【unsleepfish】投稿,如果你遇到相关问题,本文相关知识或能到你。网页设计图片的居中显示css有很多方法,但在很多情况下有的

本文主要分享【网页设计】,技术文章【CSS简单的图片居中】为【unsleepfish】投稿,如果你遇到相关问题,本文相关知识或能到你。

网页设计

图片的居中显示 css 有很多方法,但在很多情况下有的方法无效,这是件很头疼的事情,比如

一般设置图片属性

​text-align:center

水平居中,但这个方法经常无效,很多前端工程师都有研究过或者说是搜索过

CSS 图片居中方法吧。

但其实CSS 图片居中有多种不同的情况,也有多种不同的解决方法,具体方法如下所示:

图片居中又分为水平居中和垂直居中

提示:在你开始阅读以下内容之前,你可以先了解CSS图片的基础内容。

一、水平居中:

1、单独文字垂直居中我们只需要设置 CSS 样式line-height属性即可。

2、文字与图片同排,在设置div高度同时再对此 CSS 样式的图片“img”样式设置​vertical-align:middle​垂直居中属性,如:​img{vertical-align:middle;}​ 。

3 不确定宽度的块级元素设置水平居中的方法

(1)是使用​table​ 作为容器的方法来实现。当然不大推荐使用这种方法,因为添加了无意义的标签。这里就稍微介绍一下吧。​Table​ 标签本身并不是块级元素,当我们不设置​table​的宽度的话,他里面的宽度是由他内部元素的宽度撑起来的。但即使我们没有设置​table​的宽度,直接设置​table​的外边距​margin:0 auto;​就可以实现水平居中了!这样我们就可以通过设置​table​水平居中,间接使里面的内容居中。

(2)相对于用​table​的方法的好处是不用增加无语义标签,简化标签嵌套深度。这个思路是这样的,通过改变块级元素的​display​属性值为​inline​类型,然后设置​text-align:center​来实现居中。这种方法也有一定不妥之处就是把块级元素改为行内元素后,行内元素比块元素少了一些功能。比如说设定长宽值等,在项目运用中可能会有一些限制,大家可以自行选择。

(3)通过给父元素设置浮动​float​,再设置父元素的​position​属性为​relative​和​left:50%;​子元素设置​position:relative​和​left:-50%​来实现水平居中。这个好处是可以保留块级元素仍然是以​display:block​的形式显示,不会添加无意义的标签,不添加嵌套深度。确点是设置了​position:relative;​带来了一些副作用。下面是第三种方法的实例代码,放到​body​标签里面就可以了。

二、垂直居中:

对这个CSS居中问题,我们可以使用设置背景图片的方法。举例:

body {BACKGROUND: url(”图片文件”) #FFF no-repeat center;}

关键就在于这个​center​属性,它表示让该背景图片在容器中居中。你也可以把​center​换成​top left​或者直接写上数字来调整它的位置。

方法一:

实例

div {

width:500px;

height:500px;

border:1px solid #666;

overflow:hidden;

position:relative;

display:table-cell;

text-align:center;

vertical-align:middle;}

尝试一下 »

方法二:

实例

div p {

position:static;

+position:absolute;

top:50%

}

img {

position:static;

+position:relative;

top:-50%;left:-50%;

vertical-align:middle

}

尝试一下 »

方法三:

实例

img {

position:static;

+position:relative;

top:-50%;left:-50%;

vertical-align:middle; }

尝试一下 »

方法四:

实例

* {margin:0;padding:0;}

div {

width:500px;border:1px solid #666;

height:500px;

background:url("/statics/images/w3c/intro.png") center no-repeat;}

尝试一下 »

三、css图片居中用text-align:center无效怎么回事?

实例

div{

border:1px solid red;

margin:20px;

text-align:center;

}

尝试一下 »

四、如何让图片在DIV中水平和垂直两个方向都居中?

方法一:

思路:利用​text-align​属性将图片水平居中,然后设置​padding-top​的值使其垂直居中。

结构如下:

CSS样式如下:

div {width:300px; height:150px; background-color:#CCC; border:#000 1px solid; text-align:center; padding-top:50px;}

background-color:#CCC; border:#000 1px solid;为DIV加个边框和背景色,便于观察效果。

​text-align:center​,实现图片的水平居中;​padding-top:50px​,50px这个数值是经过计算得到的,​padding-top​的值具体算法如下:(DIV的高度 – 图片的高度)/2,但这里要注意,根据盒模型原理,我们还要将DIV原来的高度200减去​padding-top​的值,这样显示的才是正确的,否则DIV会变高。

方法二:

思路:只用​padding​属性,通过计算求得居中

结构代码同上;

CSS样式如下:

div {width:225px; height:150px; background-color:#eee; border:#000 1px solid; padding-top:50px; padding-left:75px;}

备注:这里DIV的宽高计算都遵循盒模型原理,计算方法同上。

方法三:

思路:利用图片的​margin​属性将图片水平居中,利用DIV的​padding​属性将图片垂直居中。

结构代码同上;

CSS代码如下:

div {width:300px; height:150px; background-color:#eee; padding-top:50px; border:#000 1px solid;}

img {display:block; margin:0 auto;}

备注:

​Img​是内联元素,要设置其​margin​属性使其居中,就要将其转换为块元素​display:block;​然后利用​margin:0 auto;​实现图片的水平居中;(有的设计师为图片再加个 div 标签,然后通过 div 标签的​margin​实现居中,也可以,不过,在结构中就又多了对 div,相对麻烦点)至于垂直居中的方法和前面的都一样,就不再重述。

以上方法都是有前提的,就是必须知道 DIV 与图片的尺寸,否则无法完成垂直居中的效果。

用一行css居中并裁剪图片的方法

设置图片的裁剪尺寸非常简单,你只需在 CSS 里使用这行代码:

img {

object-fit: cover;

}

就是这样。不需要语义、包装 div 或者其他没意义的代码。

这种技术能很好地把大小不合适的头像图片裁剪为正方形或者圆形的图片。以下面那只熊的宽图片来举例。一旦把 ​object-fit:cover​技术应用在这种图片上,并且设置好宽和高,图片自己就会进行裁剪和居中。
​object-fit:cover​的裁剪方式和​background-size:cover​的完全相同,不过它是用来为 imgs、videos 和其他的媒体标签设置样式的,而不是给背景图片设置样式。

相当多的最新浏览器都支持 object-fit 技术,并且还有 polyfill 项目让你能在更老的浏览器(IE8+)里使用该技术。

本文《CSS简单的图片居中》版权归unsleepfish所有,引用CSS简单的图片居中需遵循CC 4.0 BY-SA版权协议。


推荐阅读
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 集合的遍历方式及其局限性
    本文介绍了Java中集合的遍历方式,重点介绍了for-each语句的用法和优势。同时指出了for-each语句无法引用数组或集合的索引的局限性。通过示例代码展示了for-each语句的使用方法,并提供了改写为for语句版本的方法。 ... [详细]
  • position属性absolute与relative的区别和用法详解
    本文详细解读了CSS中的position属性absolute和relative的区别和用法。通过解释绝对定位和相对定位的含义,以及配合TOP、RIGHT、BOTTOM、LEFT进行定位的方式,说明了它们的特性和能够实现的效果。同时指出了在网页居中时使用Absolute可能会出错的原因,即以浏览器左上角为原始点进行定位,不会随着分辨率的变化而变化位置。最后总结了一些使用这两个属性的技巧。 ... [详细]
author-avatar
甄Ven-Li
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有