首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

垂直对齐img奇怪的行为

在CSS中,img 标签默认是行内元素,其垂直对齐方式会影响其在页面中的布局。默认情况下,img 元素的垂直对齐方式是 baseline,这意味着它会与其行内的文本基线对齐,这往往会导致图片底部出现不期望的空白间隙。以下是几种实现 img 垂直对齐的方法,以及它们的工作原理和可能遇到的问题:

实现 img 垂直对齐的方法

  • inline-block裸标签对齐法:将 img 标签设置为 display: inline-block;,并通过调整父容器的 line-height 来实现垂直居中。这种方法简单直观,但需要注意 line-height 的值需要与容器的高度相匹配。
  • 透明图片拉伸对齐法:使用一个透明的 gif 图片作为占位符,通过 background-position: center; 来实现背景图片的垂直居中。这种方法适用于需要背景图片居中的情况,但需要额外注意透明图片的尺寸和位置。
  • Flexbox布局:通过设置容器的 display: flex;align-items: center; 来实现垂直居中。Flexbox布局非常适合于需要灵活布局的场景,可以轻松实现多种元素的垂直对齐。
  • Grid布局:将容器的 display 属性设置为 grid,并使用 align-items: center; 来垂直居中 img。Grid布局提供了更强大的布局控制能力,适合复杂界面的设计。
  • position属性:通过设置 position: absolute; 和相应的 topbottom 属性,结合 transform 属性来实现垂直对齐。这种方法提供了最大的灵活性,但也增加了布局的复杂性。

垂直对齐可能遇到的问题及解决方法

  • 图片底部空白缝隙:这是因为 img 标签默认的 vertical-align: baseline; 导致。解决方法是将 vertical-align 设置为 topmiddlebottom
  • 兼容性问题:旧版浏览器可能不支持某些垂直对齐属性。解决方法是根据目标浏览器的特性调整CSS代码,或者使用浏览器前缀。

通过上述方法,可以有效地解决 img 垂直对齐的问题,同时考虑到不同浏览器的兼容性问题,确保页面在不同环境下的显示效果一致。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

delete的奇怪行为

delete的奇怪行为分为2部分: // 1.delete用defineProperty定义的属性报错 // Uncaught TypeError: Cannot delete property 'value...但规则是这样,所以奇怪行为1是合理的 占位初始值 猜测如果属性已经存在了,defineProperty()会收敛一些,考虑一下原descriptor的感受: var obj = {}; obj.value...环境(比如onclick属性值的执行环境,函数调用创建的执行环境)和eval环境(eval传入代码的执行环境) 变量对象/活动对象 每个执行环境都对应一个变量对象,源码里声明的变量和函数都作为变量对象的属性存在...) P.S.变量对象与活动对象这种“玄幻”的东西没必要太较真,各是什么有什么关系都不重要,理解其作用就好 eval环境的特殊性 eval执行环境中声明的属性和函数将作为调用环境(也就是上一层执行环境)的变量对象的属性存在...,能不能删可能只是configurable的一部分) 遵循的规则是:通过声明创建的变量和函数带有一个不能删的天赋,而通过显式或者隐式属性赋值创建的变量和函数没有这个天赋 内置的一些对象属性也带有不能删的天赋

2.3K30
  • WPF UNO 测试固定尺寸且水平和垂直对齐设置 Stretch 的元素在容器内的布局行为

    本文将告诉大家我对 WPF 的自定义布局容器和自定义控件进行的布局行为测试中的一个小点,即测试固定元素的尺寸的情况下或元素尺寸为有限尺寸的情况下,同步设置元素的水平和垂直对齐为 Stretch 来测试元素在容器内的布局行为...,元素分别在容器给元素的布局尺寸大于元素的尺寸和小于元素尺寸的行为 由于刚好运行在 WPF 之上 UNO 框架里的元素行为和 WPF 原生布局行为是完全相同的,本文也作为 UNO 的元素布局测试记录内容...,从而测试在自定义容器给里层元素不同的布局空间时,设置了水平和垂直对齐为 Stretch 的元素会如何布局 给以上的这个自定义容器插入一个元素,设置元素给定尺寸且设置了水平和垂直对齐,如下面代码...,我还给以上的 Grid 添加一圈的带背景的 Border 控件,用来测试在布局尺寸空间超过元素所需尺寸时的行为,和测试在布局尺寸空间小于元素所需尺寸时的压缩元素裁剪行为 对 WPF 和跑在 WPF 框架之上的...当上层容器给定元素的可布局尺寸小于元素所需尺寸时,元素行为将和左上对齐时相同 本文以上代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行

    19310

    taskscheduler java_java – taskScheduler池的奇怪行为「建议收藏」

    我有两个弹簧启动应用程序(1.4.3.RELEASE),它们位于同一台服务器上.应用程序A是一个单一的应用程序,其中包含用于处理警报的部分代码,而应用程序B是一个仅处理警报的新专用应用程序.这里的目标是打破小应用程序中的...threadPoolTaskScheduler.setWaitForTasksToCompleteOnShutdown(true); threadPoolTaskScheduler.setPoolSize(100); return threadPoolTaskScheduler; } } 昨天,我经历了一个奇怪的行为...已检测到警报并将其发送到新应用B – >好 >应用程序B收到警报并开始根据taskScheduler处理它 – >好 >第一步已由应用程序B处理 – >好 >第二步已由应用程序A处理 – > NOK,奇怪的行为...对我来说,每个taskScheduler都附加到创建它的应用程序.我哪里错了?...UPDATE 我有一个发出警报的真实盒子.这些警报必须由新应用程序处理.但我还有旧盒子没有迁移到新系统.所以我在两个不同的项目中有处理代码.

    1.8K10

    Django 1.2标准日志模块出现奇怪行为时的解决方案

    在 Django 1.2 中,标准日志模块有时会出现意想不到的行为,例如日志消息未按预期记录、日志级别未正确应用或日志格式错乱等。...下面是一些常见问题的排查方法和解决方案。1、问题背景在 Django 1.2 中,使用标准日志模块记录信息时遇到了一个奇怪的问题。有时候它可以正常工作,而有时候它却无法记录信息。...,我们发现问题出现在 uploader/views.py 中的 get_thumblist 函数中。...,其中 logger 是一个 logging.getLogger() 函数返回的日志对象。...successful​ # Get the video directory dir_path = os.path.dirname(f.file以上方法可以帮助解决 Django 1.2 中标准日志模块的异常行为问题

    10110

    把所有的东西都对齐吧 - 谈谈垂直居中的解决方案

    :center;如果是一个它是一个块级元素,就对自身应用margin:auto.然而考虑到代码的DRY和较强的可维护性,如果要对一个元素进行垂直居中,可能是令人头皮发麻的一件事情了....,这种方法也渐渐的不为所用 基于绝对定位的解决方案 早期实现垂直居中方法,要求具有固定的宽度和高度: main{ position:absolute; top:50%; left...; margin:0; } main{ margin:auto; } Flexbox还有一个好处就是,它可以将匿名容器(即使没有节点包裹的文本节点)垂直居中....:center; justify-content:center; width:18em; height:10em; } 把所有的东西都对齐吧!...根据盒对齐模型(第三版)的计划,在未来,对于简单的垂直居中的要求,我们完全不需要动用特殊的布局模式.我们只需要这行代码就可以搞定 align-self:center; 不知不觉间,我们身边的浏览器都开始让它成为现实

    2.3K60

    简单说 CSS的vertical-align

    定义和用法 vertical-align 属性设置元素的垂直对齐方式。 该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。允许指定负长度值和百分比值。这会使元素降低而不是升高。...元素放置在父元素的基线上*/ vertical-align: sub; /*垂直对齐文本的下标*/ vertical-align: super; /*垂直对齐文本的上标*/...src="https://img-blog.csdn.net/20170802165556550"> 你可能会奇怪,一个div 里面 放一个 img...div的背景是蓝色,我们来看看效果图。 ? 奇怪的事情出现了,为什么图片下面会有一点点的空隙呢?...我们能看见,图片是和文字x的下边缘,也就是基线对齐的,并不是和底线对齐。 现在我们调整图片的 vertical-align 属性值 为bottom,看看会怎样 <!

    1.4K31

    痞子衡嵌入式:一个奇怪的Keil MDK下变量链接强制对齐报错问题(--legacyalign)

    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是一个奇怪的Keil MDK下变量链接强制对齐报错问题。   ...型变量定义,这个变量实际长度为3KB,我们要求MDK链接时将其放在2KB对齐的地址。...,在链接分配时需要插入一些填充空间来满足区内段的特殊对齐需求,链接器在处理填充时有两个策略: 严苛策略--no_legacyalign(默认):指示链接器插入填充以强制执行区首地址自然对齐,这里的自然对齐是该区域内已知的最大对齐...读到这里,我们好像找到了一开始报错的原因,就是默认的--no_legacyalign捣的鬼,链接器应该根据LR_m_text区首地址按qh_buffer对齐要求来填充,但实际上链接器却直接撂挑子不干了,...至此,一个奇怪的Keil MDK下变量链接强制对齐报错问题痞子衡便介绍完毕了,掌声在哪里~~~

    65610

    「重学」从零开始:你知道的、不知道的DOCTYPE

    标准模式下的“怪异”行为 我们应该都遇到过这个问题,div 里面如果装着一个 img,会被无故撑高几个像素。效果如下图所示(示例链接[4]): ? 这个很奇怪。...如果我说这个奇怪的现象只有标准模式才会有,近标准模式和怪异模式下是没问题的,你应该会觉得更奇怪。 近标准模式效果可以参考该示例[5]。 怪异模式效果可以参考该示例[6]。...近标准模式中,如果img>标签所在行没有其他的行内元素,将不指定基线对齐(baseline),img>标签因此会紧贴着父元素底部。 在标准模式中,img>标签会指定基线对齐baseline。...因此这种情况下你看到的img>跟父元素的底部存在几个像素的间隙,这实际上是为”字母尾巴“预留的。 这一现象虽然怪异,但也是标准对于文本对齐的一种规范处理。...由于标准模式指定了默认的baseline对齐方式导致了这一问题,所以想要解决也很简单,给img>标签指定vertical-align: middle;即可。

    53630

    灵异留白事件——图片下方无故留白

    因此,对于内联元素各种想得通或者想不通的行为表现,基本上都可以用vertical-align和line-height来解释,以及进行行为矫正,然而,要深入理解这些行为表现,还是需要狠花一番功夫的,因此,...//zxx: 自己捣腾的概念,不是权威,欢迎其他小伙伴反馈权威解释 抽象了这个概念,绝对定位与text-align的一些行为表现,以及这里的行为表现,就好理解了。...(近似)垂直对齐了。...自然全垂直居中: div { line-height: 240px; font-size: 0; } img { vertical-align: middle; } 结果是: ?...额~居然还有小伙伴皱眉头,那我再用文字解释下: 现在行高line-height是0, 则最后的x-baseline的垂直中线就和上面一列的图片对齐,而基线呢,就在中线下面差不多半个x的高度地方,而这个高度落差就是最后图片和容器的间隙高度值

    1.8K20

    CSS中的vertical-align跟line-height相互作用

    因此,对于内联元素各种想得通或者想不通的行为表现,基本上都可以用vertical-align和line-height来解释,以及进行行为矫正,然而,要深入理解这些行为表现,还是需要狠花一番功夫的,因此,...(近似)垂直对齐了。...自然全垂直居中: div { line-height: 240px; font-size: 0; } img { vertical-align: middle; } 结果是: ?...额~居然还有小伙伴皱眉头,那我再用文字解释下: 现在行高line-height是0, 则最后的x-baseline的垂直中线就和上面一列的图片对齐,而基线呢,就在中线下面差不多半个x的高度地方,而这个高度落差就是最后图片和容器的间隙高度值...使用其他vertical-align对齐方式,就是让两端对齐的列表元素vertical-align:top/bottom/...之类。

    88910

    关于 vertical-align 你应该知道的一切

    前言 vertical-align,写过 CSS 的朋友们肯定都知道这个属性的作用,顾名思义,垂直对齐,主要目的用于将相邻的文本与元素对齐。...MDN 中对它的定义如下: 一种简单的 CSS 属性,用来指定行内元素(inline)或表格单元格(table-cell)元素的垂直对齐方式。...我们对于它的直观定义是与 text-align:center 相类似,一个控制水平方向对齐方式,一个控制垂直方向对齐方式。但是在很多情况下,我们发现设置属性之后并没生效。...对于内联元素指的是元素的垂直中心点与行框盒子基线往上 1/2x-height 处对齐,简单点说就是字母 X 的中心位置对齐;对于 table-cell 元素,指的是单元格填充盒子相对于外面的表格行居中对齐...子元素的垂直中心线与父级元素基线的位置往上二分之一 X 高度(X 的中心) 所在线对齐,通俗一点讲,就是图中红线表示父元素的垂直中心线,蓝线表示子元素的垂直中心线,可以明显的看到 蓝线 与 X 的中心保持一致

    2.8K20

    图片水平对齐text-align

    大家记住,图片是要在父元素中进行水平对齐的。在这个例子中,img元素的父元素是div,img元素是相对于div元素进行水平对齐的。...四、CSS图片垂直对齐vertical-align属性 在上一节我们介绍了使用text-align属性来定义图片水平对齐方式,我们看一下上一节的预览图: 大家就开始有疑问了,图片水平对齐我们实现了,那如果想对图片进行垂直对齐呢...在CSS中,我们可以使用vertical-align属性来定义图片的垂直对齐方式。 语法: vertical-align:属性值; 说明: vertical即“垂直的”,align即“使排整齐”。...怎么图片没有按照预期的进行垂直对齐?...在这里,大家可能就会想,那怎么在一个元素内设置该元素中的img标签相对于该元素垂直对齐呢?这个问题,我们就留在“CSS进阶教程”中给大家详细讲解。

    75320

    【CSS】vertical-align 垂直对齐 ( 块级元素对齐 | 行内元素 行内块元素对齐 | 基线对齐 | 垂直居中 | 顶部对齐 | 底部对齐 )

    height = 内容高度 line-height ; vertical-align 垂直对齐 , 不能用于块级元素 , 只能用于 行内元素 / 行内块元素 ; vertical-align 垂直对齐...可以设置四种对齐 : baseline 基线 / top 顶线 / middle 中线 / bottom 底线 ; 基线对齐 : 图片底部位置 与 文字基线 对齐 ; 这是默认的对齐方式 , 如果是...p , 则 p 的下半部分在图片的下方 ; vertical-align: baseline; 垂直居中 : 图片中心位置 与 文字中线 对齐 ; vertical-align: middle; 顶部对齐...垂直对齐代码示例 ---- 代码示例 : img src="keji.jpg" alt="" class="three"> 顶线对齐 : 图片顶部与文字顶线对齐 img

    3.6K30

    【CSS】图片底部空白缝隙处理 ( 使用居中对齐 顶部对齐 底部对齐 | 将行内元素 行内块元素转为块级元素 )

    一、图片底部空白缝隙问题 在上一篇博客中 , 使用默认的基线对齐 , 会发现 行内块级元素 中的 图片与文字 默认的对齐方式下 , 图片下方有一条缝隙 ; 出现这条缝隙的原因就是 图片的底部 与...文字的基线对齐 , 上面图片与边框之间的风险 , 就是基线与底线之间的距离 ; 二、图片底部空白缝隙问题解决方案一 ( 使用居中对齐 / 顶部对齐 / 底部对齐 ) ---- 使用 vertical-align...的 其它三种对齐方式 居中对齐 / 顶部对齐 / 底部对齐 , 都可以解决该问题 ; 代码示例 : img src="keji.jpg" alt="" class="three"> 顶线对齐 : 图片顶部与文字顶线对齐 img...方式 的前提是 作用对象必须是 行内元素 / 行内块元素 , 如果作用对象不是上述元素 , 则垂直对齐不生效 , 也就是基线对齐不生效 ; 代码示例 : <!

    2.1K50

    【移动端网页布局】Flex 弹性布局案例 ② ( 顶部固定定位搜索栏 | 固定定位盒子居中对齐 | 二倍精灵图设置 | CSS3 中的垂直居中对齐 )

    104 像素 */ background-size: 104px auto; /* 设置用户信息按钮外边距 */ margin: 4px auto -2px; } 5、CSS3 中的垂直居中对齐...- 行高 = 内容高度 ( 总高度 - 边框高度 - 内边距高度 ) 普通盒子模型中 , 设置垂直居中对齐时 , 直接设置 内容高度 = 行高 即可 ; 由于采用的是 CSS3 样式 , 该模式下 ,...设置行高 = 26 会偏下 上面的设置 高度 不等于 行高 原因是 这是 CSS3 模型 CSS3 中的垂直居中是在 边框 + 内边距 + 尺寸 的总高度中垂直居中...iOS上加上这个属性才能给按钮和输入框自定义样式*/ input { -webkit-appearance: none; } /*禁用长按页面时的弹出菜单*/ img, a {...} ul { /* 设置列表的默认样式 */ margin: 0; padding: 0; /* 去掉小圆点 */ list-style: none; } img

    37920
    领券