移动开发常见问题

去除图片下边的空白间隙

元素宽高等比缩放

百分比实现

aspect-ratio实现

css 复制代码
.aspect-16-9 {
	width: 100%; /* 可改为固定值 */
	aspect-ratio: 16 / 9;
}

.aspect-1-1 {
    width: 200px;
    aspect-ratio: 1;
    object-fit: cover;
}
html 复制代码
<div class="aspect-16-9"></div>
<img src="image.jpg" class="aspect-1-1" alt="正方形图片">

背景图等比缩放

2倍精灵图

精灵图采用的是2倍图

所以在处理精灵图时,我们需要通过background-size来将背景图片大小缩小一半

测量尺寸时,也需要按一半的大小来测量

1px问题

各方案优缺点对比

方案 优点 缺点
伪元素+transform 兼容性好,实现简单 需要为每个边框单独处理
媒体查询 精确适配不同dpr 代码量较大
viewport缩放 实现简单 影响整个页面布局
SVG 精确控制 兼容性问题
box-shadow 实现简单 兼容性较差
border-image 可复用 图片资源维护成本高
html 复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            height: 300px;
            position: relative;
        }

        .box::after {
            position: absolute;
            content: "";
            height: 1px;
            width: 100%;
            background-color: red;
            left: 0;
            bottom: 0;
        }

        @media screen and (-webkit-min-device-pixel-ratio: 2) {
            .box::after {
                transform: scaleY(0.5);
            }
        }

        @media screen and (-webkit-min-device-pixel-ratio: 3) {
            .box::after {
                transform: scaleY(0.33);
            }
        }
    </style>
</head>

<body>
    <div class="box"></div>
</body>

</html>
相关推荐
掘金安东尼14 小时前
纯 CSS 实现弹性文字效果
前端·css
牛奶15 小时前
Vue 基础理论 & API 使用
前端·vue.js·面试
牛奶15 小时前
Vue 底层原理 & 新特性
前端·vue.js·面试
anOnion15 小时前
构建无障碍组件之Radio group pattern
前端·html·交互设计
pe7er15 小时前
状态提升:前端开发中的状态管理的设计思想
前端·vue.js·react.js
SoaringHeart16 小时前
Flutter调试组件:打印任意组件尺寸位置信息 NRenderBox
前端·flutter
晚风予星17 小时前
Ant Design Token Lens 迎来了全面升级!支持在 .tsx 或 .ts 文件中直接使用 Design Token
前端·react.js·visual studio code
sunny_17 小时前
⚡️ vite-plugin-oxc:从 Babel 到 Oxc,我为 Vite 写了一个高性能编译插件
前端·webpack·架构
GIS之路17 小时前
ArcPy 开发环境搭建
前端
林小帅18 小时前
【笔记】OpenClaw 架构浅析
前端·agent