<li><img>标签之间空隙解决办法

本文详细介绍了如何解决IE浏览器中图片与容器下边界存在空隙的问题,提供了包括设置图片为块级元素、调整垂直对齐方式、修改父对象文字大小、改变父对象属性、应用浮动属性及优化代码布局在内的多种解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一,给图片img标签display:block。

  Example Source Codeimg{display:block}


第二,定义容器里的字体大小为0。

  Example Source Codediv 
width:110px; 
border:1px  solid  #000000; 
font-size:0 
}


第三,定义图片img标签vertical-align:bottom,vertical-align:middle,vertical-align:top

  Example Source Codeimg{vertical-align:bottom}



其他还有把图片下边距设为负值和改写HTML标签的排列。我觉得前三种就完全可以解决了。 

造成图片在IE下与容器下边界有空隙的原因

在网上搜了一下,发现old9说的 

图片文字等inline元素默认是和父级元素的baseline对齐的,而baseline又和父级底边有一定距离(这个距离和 font-size,font-family 相关,不一定是 5px),所以设置 vertical-align:top/bottom/text-top/text-bottom 都可以避免这种情况出现。而且不光li,其他的block元素中包含img也会有这个现象。 

至于这里的HTML属性align="center"(对于图片浏览器会处理成align="middle"),就相当于vertical-align:middle; 所以道理也是一样的,只要vertical-align不取baseline,这个空隙就消失了。

IE下图片与容器下边界有空隙的解决方法

解决方法

一、将图片转换为块级对象
即,设置img为“display:block;”。在本例中添加一组CSS代码:“#sub img {display:block;}”。

二、设置图片的垂直对齐方式
即设置图片的vertical-align属性为“top,text-top,bottom,text-bottom”也可以解决。如本例中增加一组CSS代码:“#sub img {vertical-align:top;}”。

三、设置父对象的文字大小为0px
即,在#sub中添加一行:“font-size:0;”可以解决问题。但这也引发了新的问题,在父对象中的文字都无法显示。就算文字部分被子对象括起来,设置子对象文字大小依然可以显示,但在CSS效验的时候会提示文字过小的错误。

四、改变父对象的属性
如果父对象的宽、高固定,图片大小随父对象而定,那么可以设置“overflow:hidden;”来解决。如本例中可以向#sub中添加以下代码:“width:88px;height:31px;overflow:hidden;”。

五、设置图片的浮动属性
即在本例中增加一行CSS代码:“#sub img {float:left;}”。如果要实现图文混排,这种方法是很好的选择。

六、取消图片标签和其父对象的最后一个结束标签之间的空格。
这个方法要强调下,在实际开发中该方法可能会出乱子,因为在写代码的时候为了让代码更体现语义和层次清晰,难免要通过IDE提供代码缩进显示,这必然会让标签和其他标签换行显示,比如说DW的“套用源格式”命令。

原因分析

图片文字等inline元素默认是和父级元素的baseline对齐的,而baseline又和父级底边有一定距离(这个距离和 font-size,font-family 相关,不一定是 5px),所以设置 vertical-align:top/bottom/text-top/text-bottom 都可以避免这种情况出现。而且不光li,其他的block元素中包含img也会有这个现象。

至于这里的HTML属性align=”center”(对于图片浏览器会处理成align=”middle”),就相当于vertical-align:middle; 所以道理也是一样的,只要vertical-align不取baseline,这个空隙就消失了。

相关信息

IE的显示有几种模式,在html文档的开始部分声明<!DOCTYPE ….> 如果声明为strict模式,ie以w3c的方式显示文档,而w3c的标准里面<img />默认是一个inline的标签,除非自己显式的声明为block。

那个空隙是ie针对盒模型默认的line-height和font-size。给img desplay:block;虽然能解决问题,但没从结构上来考虑.可谓治标不治本。

原文链接:点击打开链接

在该vue项目下怎样将底部导航栏<footer>组件固定在底部,在不同设备打开时也不会位移,请提供修改后的完善代码:<template> <!-- 唯一根元素开始 --> <div class="container"> <!-- 顶部导航栏 --> <NavBar /> <!-- 中心大图展示区域 --> <section class="hero-section"> <img src="@/assets/recreation/fitness.png" alt="健身房内部场景" class="hero-image" > </section> <!-- 文字说明区域 --> <main class="content-section"> <section class="description"> <h2>活力健身房:城市上空的运动乌托邦</h2> <p>全景落地窗俯瞰草原与城市天际线,配备智能体测系统与专业训练器械,从有氧区到自由重量区私教课程结合蒙式体能训练法,让汗水挥洒成诗。恒温泳池与瑜伽室演绎健身快乐间奏曲,晨起泳姿划破朝阳,暮色中禅定瑜伽随音乐舒展,打造24小时不间断的健康生活场。</p> </section> <section class="rules"> <h3>蒙发国际温泉度假酒店多功能健身房设施使用守则</h3> <ul> <li>1、使用资格与时间</li> <p>-住店客人全天24小时刷卡进入,健身设施仅向住店客人开放。</p> <li>2、使用前准备</li> <p>-使用者需先熟悉各项设施使用说明,熟悉健身器材操作,有疑问可寻求工作人员帮助。</p> <li>3、场地使用规则</li> <p>-遵循先到先得原则,不设预订。</p> <p>-多功能活动室任何时间内最多允许十二名使用者同时在场。</p> <p>-室内不准饮食,需保持整洁。</p> <p>-须穿着合适运动服装及运动鞋,违反者校方有权拒绝其入场。</p> <li>4、健康与安全提示</li> <p>-患高血压、哮喘、心脏病或身体不适者,建议暂停使用。</p> <p>-运动前做10-15分钟热身,运动后做10分钟放松活动。</p> <p>-感到不适或痛楚,立刻停止运动并通知工作人员。</p> <p>-远离摆动中的健身设施或器材。</p> <li>5、器材使用规范</li> <p>-不能改动健身设施或器材原有位置。</p> <p>-有他人等待时,使用器材限时30分钟。</p> <p>-运动后将健身器材放回原处,用消毒剂喷雾擦拭。</p> <p>-操作前检查器材是否正常安全,发现故障/损坏,停止使用并通知酒店,勿自行维修。</p> <p>-损坏或遗失器材需赔偿。</p> <li>6、其他注意事项</li> <p>-未经同意,严禁在场内拍照、录影或录音。</p> <p>-酒店有权预留场地用于维修、清洁、训练班及活动安排。</p> <p>-酒店保留修改规则和规定的权利,恕不另行通知。</p> </ul> </section> </main> <!-- 底部导航栏 --> <Footer /> </div> <!-- 唯一根元素结束 --> </template> <script > import NavBar from '@/components/NavBar.vue'; export default { name: "ftness", data() { return { }; }, }; </script> <style > /* 健身区样式 */ .hero-section { position: relative; height: 60rem ; margin-top: 0rem; /* 补偿固定导航栏高度 */ overflow: hidden; } .hero-image { width: 100%; height: 100%; object-fit: cover; object-position: center; } .hero-title { position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%); color: white; font-size: 3rem; text-shadow: 2px 2px 10px rgba(0,0,0,0.5); margin: 0; } /* 内容区样式 */ .content-section { max-width: 150rem; margin: 2rem auto; padding: 0 5%; line-height:2.4rem; } .description { margin-bottom: 3rem; padding: 2rem; background: #f8f9fa; border-radius: 1rem; font-size: 2.4rem; line-height: 4rem; margin: 6rem auto; font-family: "宋体"; } .rules { margin-top: 3rem; height: 100rem; padding: 2rem; background: white; border-radius: 1rem; box-shadow: 0 2px 10px rgba(0,0,0,0.05); font-size: 2rem; line-height: 3.8rem; font-family: "宋体"; text-align: left; } .rules h3 { color: #007bff; border-bottom: 2px solid #007bff; padding-bottom: 0.5rem; margin-bottom: 1rem; font-size: 2.4rem; text-align: center; } @media (max-width: 768px) { .navbar { flex-direction: column; padding: 1rem 5% 0.5rem; } .nav-left, .nav-right { width: 100%; flex-wrap: wrap; justify-content: center; margin-bottom: 0.5rem; } .nav-item { margin: 0.5rem; } .hero-title { font-size: 2rem; } } </style>
06-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值