📚一站式解决:H5开发全攻略,看这篇让你省时又省力-1

简介: 响应式布局在 H5 中,我们通常会使用 REM 和 VW 这两种单位来实现页面的响应式布局。这两种单位可以让页面元素的大小随着根元素(对于 REM)或视口宽度(对于 VW)的大小变化而变化,从而适应不同尺寸的屏幕。

响应式布局

在 H5 中,我们通常会使用 REM 和 VW 这两种单位来实现页面的响应式布局。这两种单位可以让页面元素的大小随着根元素(对于 REM)或视口宽度(对于 VW)的大小变化而变化,从而适应不同尺寸的屏幕。

⭐️⭐️rem布局

引入手淘的flexible方案进行REM布局

<script src="https://cdnjs.cloudflare.com/ajax/libs/flexible.js/0.3.2/flexible.min.js"></script>

配合使用 postcss-pxtorem 插件来自动将 px 单位转换为 REM 单位

module.exports = {
  plugins: {
    'postcss-pxtorem': {
      rootValue: 37.5,  // 该值应与 flexible.js 中设置的 remUnit 值相同
      propList: ['*'],
      minPixelValue: 2  // 设置最小的转换尺寸,如果设置为 1 则会转换所有大小的像素值
    }
  }
}

注意:以上 rootValue 的设置值是基于设计稿的尺寸。例如,如果你的设计稿是 750px,那么你设置 rootValue: 75。如果你的设计稿是 375px,那么你设置 rootValue: 37.5。这样设置后,设计稿上的 1px 就对应于 1/100rem,方便转换。

⭐️⭐️vw布局

npm install postcss-px-to-viewport --save-dev
module.exports = {
  plugins: {
    'postcss-px-to-viewport': {
      unitToConvert: 'px',  // 要转化的单位
      viewportWidth: 750,  // UI设计稿的宽度
      unitPrecision: 5,  // 转换后的精度,即小数点位数
      propList: ['*'],  // 指定转换的css属性的单位,*表示全部css属性的单位都进行转换
      viewportUnit: 'vw',  // 指定需要转换成的视窗单位,默认vw
      fontViewportUnit: 'vw',  // 指定字体需要转换成的视窗单位,默认vw
      selectorBlackList: [],  // 指定不转换为视窗单位的类名,
      minPixelValue: 1,  // 默认值1,小于或等于1px则不进行转换
      mediaQuery: false,  // 是否在媒体查询的css代码中也进行转换,默认false
      replace: true,  // 是否直接更换属性值,而不添加备用属性
      exclude: [],  // 忽略某些文件夹下的文件或特定文件,例如 'node_modules',使用正则表达式
      include: undefined,  // 如果设置了include,那将只有匹配到的文件才会被转换,例如只转换 'src/mobile' 下的文件(使用正则表达式)
      landscape: false,  // 是否处理横屏情况
    },
  },
};

在你配置完成后,你可以像平时一样在 CSS 中使用 px 单位,然后 postcss-px-to-viewport 会在构建时自动将 px 单位转换为 vw 单位。

⭐️⭐️系统功能:

调用电话

<a href="tel:1234567890">Call me</a>

调用短信

<a href="sms:1234567890">Send me a SMS</a>

调用邮件

<a href="mailto:example@example.com">Email me</a>

调用图库和文件功能

<input type="file" accept="image/*">

弹出数字键盘:

适合输入电话号码

<input type="tel">

适合输入纯数字格式

<input type="number" pattern="\d*">

⭐️⭐️忽略自动识别

禁止移动端浏览器自动识别电话和邮箱

<meta name="format-detection" content="telephone=no">
<meta name="format-detection" content="email=no">

⭐️⭐️唤醒原生应用:

URL Scheme 示例

<a href="twitter://user?screen_name=OpenAI">Open Twitter</a>

⭐️⭐️禁止页面缩放和缓存:

禁止页面缩放和缓存

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="expires" content="0">

⭐️⭐️禁止字母大写:

禁止字母大写功能和自动纠正功能

<input type="text" autocapitalize="off" autocorrect="off">

针对特定浏览器的配置:

Safari私有属性示例

<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">

⭐️⭐️监听屏幕旋转

通过使用CSS媒体查询中的orientation选择器,您可以监听屏幕的旋转事件,并根据屏幕方向调整样式,以便页面始终保持最佳布局。

@media (orientation: portrait) {
  /* 在竖屏模式下的样式 */
}
@media (orientation: landscape) {
  /* 在横屏模式下的样式 */
}

⭐️⭐️禁止滚动传播

使用overscroll-behavior: contain属性可以阻止滚动传播的问题。当内容滚动到顶部或底部时,滚动事件不会继续传递给父容器。

.container {
  overscroll-behavior: contain;
}

⭐️⭐️禁止屏幕抖动

通过提前声明滚动容器的padding-right为滚动条宽度,可以防止滚动条的出现导致屏幕抖动。

.container {
  padding-right: calc(100vw - 100%);
}

⭐️⭐️禁止长按操作

使用user-select: none-webkit-touch-callout: none属性可以禁止用户对元素进行长按操作,防止出现意外的行为。

.element {
  user-select: none;
  -webkit-touch-callout: none;
}

⭐️⭐️禁止字体调整

通过设置text-size-adjust: 100%属性,可以阻止用户在旋转屏幕时浏览器自动调整字体大小。

⭐️⭐️禁止字体调整
通过设置text-size-adjust: 100%属性,可以阻止用户在旋转屏幕时浏览器自动调整字体大小。

⭐️⭐️禁止高亮显示

使用-webkit-tap-highlight-color: transparent属性可以禁止触摸元素时的高亮显示效果,使界面更加平滑和一致。

.element {
  -webkit-tap-highlight-color: transparent;
}

⭐️⭐️禁止动画闪屏

通过使用perspectivebackface-visibilitytransform-style属性,可以解决在移动设备上动画闪屏的问题,提供更流畅的动画效果。

.element {
  perspective: 1000px;
  backface-visibility: hidden;
  transform-style: preserve-3d;
}

⭐️⭐️自定义表单外观

使用appearance: none属性可以自定义表单元素的样式,使其更符合您的设计需求。

input[type="text"],
input[type="email"],
textarea {
  appearance: none;
}

⭐️⭐️自定义滚动滚动条

通过使用::-webkit-scrollbar-*伪元素,可以自定义滚动条的样式,使其更加美观。

.scrollable::-webkit-scrollbar {
  width: 8px;
}
.scrollable::-webkit-scrollbar-thumb {
  background-color: #ccc;
}
.scrollable::-webkit-scrollbar-track {
  background-color: #f1f1f1;
}

⭐️⭐️自定义输入占位文本样式

使用::-webkit-input-placeholder伪元素,可以自定义输入框的占位文本样式,使其更加吸引人。

input::placeholder {
  color: #999;
}

目录
相关文章
|
9月前
|
人工智能 自然语言处理 安全
新年愿望清单:搭建官网选哪家?
而今立足「SaaS系统」面向中小企业的各种低成本建站产品让人眼花缭乱,小云对比了几大厂牌,梳理出一些【阿里云精选建站】的功能亮点,篇幅有限,各位看官可酌情参考——
197 0
|
3月前
|
搜索推荐 数据可视化 项目管理
2024工作任务管理软件哪家强?这里有一份超全的选择攻略!
在快节奏的工作环境中,高效的工作任务管理软件成为职场人士的必备工具。2024年市场上的工作任务管理软件种类繁多,本文将详细介绍六款优秀软件:板栗看板、ProofHub、MeisterTask、Nifty、ClickUp 和 Todoist,帮助您轻松选择最适合自己的那一款。这些软件各具特色,适用于个人任务管理、团队协作和复杂项目管理等不同场景。
2024工作任务管理软件哪家强?这里有一份超全的选择攻略!
|
9月前
|
BI 项目管理 C++
工时管理软件大比拼:推荐您不容错过的工具
ZohoProjects是推荐的项目管理软件,特别适合工时管理,包括计划、记录和审批工时。它允许设置任务工时,使用计时器或手动记录,且支持工时审批以保证数据准确性和成本控制。软件提供资源使用日历、计划与实际对比及工时表报表,帮助项目经理高效管理项目。
64 0
|
BI 图形学 数据库管理
天下苦广告久矣!分享五款免费且无广告的开源软件
在日常的使用中,我们需要使用各种软件来提高我们的工作效率或者进行创意的表达。然而,商业软件价格昂贵,某些国产软件又充斥着广告。因此,开源软件成为了一个不错的选择,以下是我推荐的五款优秀的开源软件。
192 1
天下苦广告久矣!分享五款免费且无广告的开源软件
|
Web App开发 移动开发 前端开发
📚一站式解决:H5开发全攻略,看这篇让你省时又省力-3
⭐️⭐️border-radius 画出的圆在移动端有毛边 解决方案 给元素添加 overflow: hidden 属性。
200 0
|
Web App开发 传感器 移动开发
📚一站式解决:H5开发全攻略,看这篇让你省时又省力-2
⭐️⭐️对齐下拉选项 通过设置direction: rtl,可以改变下拉框选项的对齐方式,使其从右向左排列。
122 0
|
人工智能 小程序 数据安全/隐私保护
分享几个免费设计生成工具 (第二期)
今天来给大家分享几个国外免费的设计生成工具
125 0
推荐5款免费且无广告的软件,助你提升效率
有时候一些小工具,能给你带来一些意想不到的效果,我们来看看下面这5款工具,你又用过其中几款呢?
141 0
推荐5款免费且无广告的软件,助你提升效率
|
监控
《“啄”壮成长,移动app线上日志分析利器》电子版地址
“啄”壮成长,移动app线上日志分析利器
84 0
《“啄”壮成长,移动app线上日志分析利器》电子版地址

热门文章

最新文章