h5-div内img会多2px间隙

本文解析了H5中div内的img元素下方出现2px间隙的现象,并提供了三种解决方案,包括调整line-height、使用vertical-align属性及设置display属性。

div内img会多2px间隙

现象:h5中 标签问题,div里面如果装有一个img下边会有2px间隙

<div class="div">
    <img class="img" src="https://upload-images.jianshu.io/upload_images/19298013-e4177135faba11ce.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" alt="">
</div>
.div {
  background: black;
}
.img{
  width: 100%;
  border: 1px solid red;
  box-sizing: border-box;
}
效果:

解析:

浏览器有三种模式:1、怪异模式(Quirks),2、标准模式(Standards)。

在这两种标准模式中,行框总是会包含类似字母"j","g"尾巴下伸出来的那一部分空间(针对下行字母),即使行框内并没有任何内容。因此这种情况下你看到的跟父元素底部几个像素的间隙实际上就是为”字母尾巴“预留的。

图片与父元素之间有间隙,是因为元素默认是基线(baseline)对齐的,看下下图基线位置
即:

.img{
  vertical-align: baseline;
}

解决的方法:

1、可以设置img的父级div的 line-height: 0 或者 font-size: 0;

.div{
  line-height: 0; // 行高为0
  // font-size: 0; // 字号为0
}

2、设置vertical-align:middle;

.img{
  vertical-align: middle; //中线对齐
  // vertical-align: bottom; // 底线对齐
  // vertical-align: top; // 顶线对齐
}

3、设置img为display:block;个人并不建议这种写法,通常在项目中图片右,会紧随文案模块,block并不能满足了。

# 系统前端架构图 ```mermaid graph TD A[前端架构] --> B[技术栈] A --> C[页面结构] A --> D[响应式设计] A --> E[组件化开发] B --> B1[HTML5] B --> B2[CSS3] B --> B3[JavaScript] B --> B4[Bootstrap框架] C --> C1[布局模板] C --> C2[业务模块] C --> C3[公共组件] C1 --> C1a[layout.html] C2 --> C2a[考勤管理] C2 --> C2b[部门管理] C2 --> C2c[员工管理] C2 --> C2d[薪资管理] C3 --> C3a[导航栏] C3 --> C3b[侧边栏] C3 --> C3c[页脚] D --> D1[移动端适配] D --> D2[平板适配] D --> D3[桌面端适配] E --> E1[UI组件] E --> E2[业务组件] E --> E3[工具组件] E1 --> E1a[Bootstrap组件] E1 --> E1b[自定义组件] E2 --> E2a[表单组件] E2 --> E2b[列表组件] E2 --> E2c[图表组件] E3 --> E3a[工具函数] E3 --> E3b[API封装] style A fill:#f9f,stroke:#333,stroke-width:4px style B fill:#bbf,stroke:#333,stroke-width:2px style C fill:#bfb,stroke:#333,stroke-width:2px style D fill:#fbb,stroke:#333,stroke-width:2px style E fill:#fbf,stroke:#333,stroke-width:2px ``` ## 架构说明 ### 1. 技术栈 - **HTML5**:页面结构 - **CSS3**:样式和动画 - **JavaScript**:交互逻辑 - **Bootstrap框架**:响应式布局和UI组件 ### 2. 页面结构 - **布局模板**:基于`layout.html`的统一布局 - **业务模块**: - 考勤管理 - 部门管理 - 员工管理 - 薪资管理 - **公共组件**:导航栏、侧边栏、页脚等 ### 3. 响应式设计 - **移动端适配**:针对手机屏幕优化 - **平板适配**:针对平板设备优化 - **桌面端适配**:针对大屏设备优化 ### 4. 组件化开发 - **UI组件**: - Bootstrap组件库 - 自定义组件 - **业务组件**: - 表单组件 - 列表组件 - 图表组件 - **工具组件**: - 工具函数 - API封装 ## 技术特点 1. 采用Bootstrap框架实现响应式布局 2. 组件化开发,提高代码复用性 3. 端适配,确保良好的用户体验 4. 模块化设计,便于维护和扩展 5. 统一的UI风格和交互规范
最新发布
05-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值