移动开发常见问题

去除图片下边的空白间隙

元素宽高等比缩放

百分比实现

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>
相关推荐
jzlhll1231 天前
kotlin Flow first() last()总结
开发语言·前端·kotlin
蓝冰凌1 天前
Vue 3 中 defineExpose 的行为【defineExpose暴露ref变量】详解:自动解包、响应性与实际使用
前端·javascript·vue.js
奔跑的呱呱牛1 天前
generate-route-vue基于文件系统的 Vue Router 动态路由生成工具
前端·javascript·vue.js
柳杉1 天前
从动漫水面到赛博飞船:这位开发者的Three.js作品太惊艳了
前端·javascript·数据可视化
Greg_Zhong1 天前
前端基础知识实践总结,每日更新一点...
前端·前端基础·每日学习归类
We་ct1 天前
LeetCode 148. 排序链表:归并排序详解
前端·数据结构·算法·leetcode·链表·typescript·排序算法
IT_陈寒1 天前
JavaScript开发者必看:5个让你的代码性能翻倍的隐藏技巧
前端·人工智能·后端
还是大剑师兰特1 天前
Vue3 中 computed(计算属性)完整使用指南
前端·javascript·vue.js
井川不擦1 天前
前端安全通信方案:RSA + AES 混合加密
前端