H5--开发适配

在 H5 开发中,适配不同设备和屏幕尺寸至关重要,它能确保页面在各种环境下都有良好的显示效果和用户体验。以下介绍几种常见的 H5 开发适配方案:

  1. 视口(Viewport)设置
    视口单位是相对于浏览器视口的尺寸进行度量的单位,常用的视口单位有 vw(视口宽度的百分比)、vh(视口高度的百分比)、vmin(视口宽度和高度中较小值的百分比)和 vmax(视口宽度和高度中较大值的百分比)。使用视口单位可以实现元素大小随视口尺寸的变化而自适应调整。
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
width=device-width:将视口宽度设置为设备的宽度。
initial-scale=1.0:页面初始缩放比例为 1。
maximum-scale=1.0 和 minimum-scale=1.0:限制用户最大和最小缩放比例为 1。
user-scalable=no:禁止用户手动缩放页面。
  1. 媒体查询(Media Queries)
    媒体查询是 CSS3 提供的一种技术,它可以根据不同的设备屏幕尺寸和特性,应用不同的 CSS 样式。
/* 当屏幕宽度小于 768px 时应用以下样式 */
@media screen and (max-width: 768px) {
    body {
        font-size: 14px;
    }
    .container {
        width: 90%;
    }
}

/* 当屏幕宽度在 768px 到 992px 之间时应用以下样式 */
@media screen and (min-width: 768px) and (max-width: 992px) {
    body {
        font-size: 16px;
    }
    .container {
        width: 80%;
    }
}

/* 当屏幕宽度大于 992px 时应用以下样式 */
@media screen and (min-width: 992px) {
    body {
        font-size: 18px;
    }
    .container {
        width: 70%;
    }
}
  1. 弹性布局(Flexbox)
    Flexbox 是一种一维的布局模型,通过设置容器和子元素的属性,可以灵活地控制元素的排列方向、对齐方式和空间分配,从而实现自适应布局。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .flex-container {
            display: flex;
            flex-wrap: wrap;
            justify-content: space-around;
        }
        .flex-item {
            width: 200px;
            height: 200px;
            background-color: lightblue;
            margin: 10px;
        }
    </style>
</head>
<body>
    <div class="flex-container">
        <div class="flex-item"></div>
        <div class="flex-item"></div>
        <div class="flex-item"></div>
    </div>
</body>
</html>

在上述代码中,.flex-container 设置为 display: flex 后,其子元素会按照弹性布局排列。flex-wrap: wrap 允许元素在空间不足时换行,justify-content: space-around 让元素在容器中均匀分布。

  1. 网格布局(Grid)
    CSS Grid 是一种二维的布局模型,通过定义网格容器和网格项,可以精确地控制元素在二维空间中的位置和大小,实现复杂的布局适配。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        .grid-container {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            grid-gap: 10px;
        }
        .grid-item {
            background-color: lightgreen;
            height: 200px;
        }
    </style>
</head>
<body>
    <div class="grid-container">
        <div class="grid-item"></div>
        <div class="grid-item"></div>
        <div class="grid-item"></div>
    </div>
</body>
</html>

.grid-container 设置为 display: grid 开启网格布局,grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) 表示列的宽度会根据容器宽度自动调整,最小为 200px,最大会平均分配剩余空间。

  1. 响应式图片
    使用 < picture > 元素和 srcset 属性可以根据不同的屏幕尺寸和设备像素比加载合适的图片。
<picture>
    <source media="(min-width: 1200px)" srcset="large-image.jpg">
    <source media="(min-width: 768px)" srcset="medium-image.jpg">
    <img src="small-image.jpg" alt="Responsive Image">
</picture>

上述代码中,当屏幕宽度大于 1200px 时,加载 large-image.jpg;宽度在 768px 到 1200px 之间时,加载 medium-image.jpg;宽度小于 768px 时,加载 small-image.jpg。

  1. REM 和 EM 单位
  • REM(Root EM):相对于根元素(< html >)的字体大小。通过设置根元素的字体大小,然后使用 rem 作为单位,可以实现整体的缩放。
html {
    font-size: 16px;
}

p {
    font-size: 1.2rem; /* 相当于 1.2 * 16px = 19.2px */
}
  • EM:相对于父元素的字体大小。
.parent {
    font-size: 14px;
}

.child {
    font-size: 1.5em; /* 相当于 1.5 * 14px = 21px */
}
  1. VH 和 VW 单位
  • vh(Viewport Height):视口高度的百分比,1vh 等于视口高度的 1%。
  • vw(Viewport Width):视口宽度的百分比,1vw 等于视口宽度的 1%。
.box {
    width: 50vw; /* 宽度为视口宽度的 50% */
    height: 30vh; /* 高度为视口高度的 30% */
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/977489.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

重构清洁想象,石头科技首创五轴仿生机械手打破传统清洁边界

2月25日&#xff0c;主题为“重构清洁想象”的石头科技2025发布会在上海天文馆正式召开。石头科技清洁产品BU总裁钱启杰在会上宣布&#xff0c;石头科技正式成为上海天文馆授权合作伙伴&#xff0c;希望借助航天科技到家庭科技的跨越&#xff0c;进一步简化家庭清洁工作&#x…

Amazon Outposts:构建混合云的安全堡垒,让数据安全“零距离”

在数字化转型的浪潮中&#xff0c;企业纷纷拥抱混合云架构以兼顾敏捷性与本地化需求。然而&#xff0c;如何确保数据在本地与云端的无缝流转中始终安全可控&#xff0c;成为企业面临的核心挑战。Amazon Outposts 作为AWS推出的混合云解决方案&#xff0c;不仅将原生AWS服务延伸…

详解Redis如何持久化

引言 本文介绍了 Redis 的两种持久化方式&#xff1a;RDB 和 AOF。RDB 按时间间隔快照存储&#xff0c;AOF 记录写操作。阐述了它们的配置、工作原理、恢复数据的方法、性能与实践建议&#xff0c;如降低 fork 频率、控制内存等&#xff0c;还提到二者可配合使用&#xff0c;最…

【Ambari】Ranger KMS

目录 一、Ranger KMS介绍 二、KMS基于Ranger插件安装 一、Ranger KMS介绍 Ranger KMS是把数据存储入后台数据库中。通过Ranger Admin可以集中化管理KMS服务。 Ranger KMS有三个优点 l Key management Ranger admin 提供了创建&#xff0c;更新&#xff0c;删除密钥的Web UI…

vscode设置终端复制快捷键(有坑!!!)

vscode的编辑页面和终端的复制粘贴快捷键是不一样的。 vscode的终端复制快捷键为ctrlshiftC&#xff0c;当然&#xff0c;自己可以自定义设置 vscode设置终端复制快捷键&#xff08;有坑&#xff01;&#xff01;&#xff01;&#xff09;_vs code 不能复制-CSDN博客文章浏览…

angular舒尔特方格

说明&#xff1a;我计划用angular实现舒尔特方格的功能&#xff0c;必须是动态的&#xff0c;比如33&#xff0c;55&#xff0c;9*9&#xff0c;而且无论是什么样式的&#xff0c;都必须保持正方形&#xff0c;然后还有时间监听&#xff0c;计算用户完成方格的时间&#xff0c;…

提升数据洞察力:五款报表软件助力企业智能决策

概述 随着数据量的激增和企业对决策支持需求的提升&#xff0c;报表软件已经成为现代企业管理中不可或缺的工具。这些软件能够帮助企业高效处理数据、生成报告&#xff0c;并将数据可视化&#xff0c;从而推动更智能的决策过程。 1. 山海鲸报表 概述&#xff1a; 山海鲸报表…

DistilQwen2.5发布:通义千问蒸馏小模型再升级

01 引言 因高计算成本和复杂性&#xff0c;在例如移动设备和边缘计算场景等资源有限的环境中&#xff0c;限制了大语言模型的普及。如何在保留模型性能的同时提高计算效率并降低部署成本&#xff0c;已成为研究和工业界必须面对的关键挑战。 在此背景下&#xff0c;我们正式…

VS2022配置FFMPEG库基础教程

1 简介 1.1 起源与发展历程 FFmpeg诞生于2000年&#xff0c;由法国工程师Fabrice Bellard主导开发&#xff0c;其名称源自"Fast Forward MPEG"&#xff0c;初期定位为多媒体编解码工具。2004年后由Michael Niedermayer接任维护&#xff0c;逐步发展成为包含音视频采…

【前端基础】Day 1 HTML

总结&#xff1a; 1. Web标准的构成 2. 基本标签 目录 1. Web标准的构成 2. 基本标签 2.1快捷键 2.2.1标题标签 2.2.2段落和换行标签 2.2.3文本格式化标签 2.2.4div和span标签 2.3.1 图像标签和路径 2.3.2路径 2.3.3超链接标签 2.4注释标签 2.5特殊字符 1. Web标准…

Android Realm数据库使用与集成指南

本地存储storage集成创建Realm数据模型插入和更新数据模型数据查询统计数据分页查询处理表数据删除操作总结Realm 是一款专为移动端和嵌入式场景设计的高性能、跨平台的 对象数据库(NoSQL),由 MongoDB 团队维护。它的核心思想是将数据模型直接映射到对象(如 Java/Kotlin、S…

(九)趣学设计模式 之 桥接模式!

目录 一、 啥是桥接模式&#xff1f;二、 为什么要用桥接模式&#xff1f;三、 桥接模式的实现方式四、 桥接模式的优缺点五、 桥接模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;可以多多支…

Day8 蓝桥杯acw讲解

首先先给大家看一道这个题&#xff0c; 我真的是太喜欢y总了&#xff0c;如果大家也是最近在准备蓝桥杯或者计算机相关的比赛&#xff0c;但是得加一个前提就是必须最好基础真的很好&#xff0c;要不然其实买了课&#xff0c;也没啥太大的用处&#xff0c;其实就可以以我本人举…

谷云科技iPaaS×DeepSeek:构建企业智能集成的核心底座

2025年&#xff0c;DeepSeek大模型的爆发式普及&#xff0c;正引领软件行业实现 “智能跃迁”。从代码生成到系统集成&#xff0c;从企业级应用到消费级产品&#xff0c;自然语言交互能力已成为新一代软件的核心竞争力。据行业分析&#xff0c;超60%的软件企业已启动大模型适配…

java面试项目介绍,详细说明

金三银四少走弯路,Java岗面试冲刺,你与大厂只差这篇文章包括面试准备,帮助大家少走弯路,成功入职大厂,并快速成长落地。 祝大家拿到满意的offer!(把许愿的offer发在评论区,一定会实现的) 主要从四大方面:掌握的主要知识、算法、项目、简历 掌握的主要知识 下面是我看过的资料和…

计算机毕业设计SpringBoot+Vue.js墙绘产品展示交易平台(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

springboot005学生心理咨询评估系统(源码+数据库+文档)

源码地址&#xff1a;学生心理咨询评估系统 文章目录 1.项目简介2.部分数据库结构与测试用例3.系统功能结构4.包含的文件列表&#xff08;含论文&#xff09;后台运行截图 1.项目简介 ​ 使用旧方法对学生心理咨询评估信息进行系统化管理已经不再让人们信赖了&#xff0c;把现…

Linux红帽:RHCSA认证知识讲解(二)配置网络与登录本地远程Linux主机

Linux红帽&#xff1a;RHCSA认证知识讲解&#xff08;二&#xff09;配置网络与登录本地远程Linux主机 前言一、使用命令行&#xff08;nmcli 命令&#xff09;配置网络&#xff0c;配置主机名第一步第二步修改主机名称 二、使用图形化界面&#xff08;nmtui 命令&#xff09;配…

【运维】内网服务器借助通过某台可上外网的服务器实现公网访问

背景&#xff1a; 内网服务器无法连接公网,但是办公电脑可以连接内网服务器又可以连接公网。 安装软件 1、frp 2、ccproxy 配置 1、内网服务器 # 内网服务器启动frp服务配置文件参考vi frps.ini# frps.ini [common] bind_port 7000# 备注: bind_port端口可以随意配置。配置完…

Pytorch实现论文:基于多尺度融合生成对抗网络的水下图像增强

简介 简介:提出了一种新型的水下图像增强算法,基于多尺度融合生成对抗网络,名为UMSGAN,以解决低对比度和颜色失真的问题。首先经过亮度的处理,将处理后的图像输入设计的MFFEM模块和RM模块生成图像。该算法旨在适应各种水下场景,提供颜色校正和细节增强。 论文题目:Und…