移动开发常见问题

去除图片下边的空白间隙

元素宽高等比缩放

百分比实现

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>
相关推荐
kyriewen2 小时前
我手写了一个 EventEmitter,面试官追问了 6 个问题——第 4 个我没答上来
前端·javascript·面试
IT_陈寒2 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
小林攻城狮3 小时前
使用 Transport 节流解决 Vercel AI SDK 流式渲染卡死问题
前端·react.js
前端缘梦3 小时前
告别 TS 运行时类型漏洞!Zod 完整入门实战教程(前端 / 全栈必备)
前端·react.js·全栈
the_answer3 小时前
Webpack vs Vite 深度对比分析
前端·webpack
转转技术团队4 小时前
验证码识别实战:前端不写页面,改训模型了?
前端
MomentYY4 小时前
Temperature:AI 的“脑洞旋钮”
前端·llm·ai编程
远航_4 小时前
OpenSpec 完整详细介绍
前端·后端
召钱熏4 小时前
状态枚举正确≠渲染正确:一个语音按钮的状态机边界修复实录
android·前端
SkyWalking中文站4 小时前
认识 Horizon UI · 1/17:SkyWalking 新一代可观测性控制台
运维·前端·监控