移动端H5自适应:基于rem的响应式布局实战指南

移动端h5自适应rem适配最佳方案 最佳移动端h5自适应rem适配方案,灵活主流做法 阅读详情

1. 为什么rem是移动端H5自适应的“黄金搭档”?

做移动端H5页面,最头疼的就是屏幕尺寸五花八门。从老旧的iPhone SE到最新的折叠屏手机,宽度从320px到接近1000px,设计师给的设计稿却往往只有一份,通常是750px宽。你总不能给每个尺寸都写一套样式吧?这时候,一个灵活、可靠的适配方案就成了救命稻草。我试过各种方案,从早期的百分比布局,到后来的媒体查询(Media Query),再到viewport单位的尝试,最后发现,基于rem的响应式布局,是平衡开发效率、设计还原度和代码维护性的最佳选择。

为什么是rem?咱们先来快速回顾一下前端开发中几个常见的单位。px是固定像素,一个萝卜一个坑,在375px宽的屏幕上写个375px宽的盒子,它刚好占满,但到了414px宽的屏幕上,它就会留出空白,这显然不是我们想要的“自适应”。em单位是相对于父元素的字体大小,听起来灵活,但实际用起来很“坑”。想象一下,你给一个容器设置了font-size: 14px,里面的子元素用1.2em,这没问题。但如果这个子元素自己又嵌套了一个容器,并且也设置了字体大小,那再往里的元素用em时,计算基准就变了,很容易算得头晕眼花,维护起来简直是噩梦。

而rem就聪明多了,它的“r”代表“root”,意思是它只认HTML根元素(也就是<html>标签)的字体大小。只要控制了根元素的font-size,页面上所有使用rem单位的元素都会按比例缩放。这就好比我们给整个页面设定了一个统一的“缩放比例尺”,设备宽度变化,比例尺就跟着变,所有元素自然就等比例适配了。实测下来,这种思路非常稳,也是目前社区里最主流的移动端适配方案的核心。

那么,这个“比例尺”具体怎么设定呢?这里有个非常经典且实用的公式。假设设计师给的是750px宽的设计稿,我们约定,在设计稿上,100px 等于 1rem。为什么是100?纯粹是为了好算。量出一个按钮宽度是150px,直接除以100,代码里写成1.5rem就行,心算都能搞定。接下来,关键的一步来了:我们需要用一段JavaScript,根据用户设备的实际宽度,动态地计算出当前HTML的font-size应该是多少。

这个计算的逻辑是这样的:设备宽度 / 设计稿宽度 = 当前HTML的font-size / 我们约定的基准font-size(100px)。套入公式,当前HTML的font-size = (设备宽度 / 750) * 100 px。比如,在一台iPhone 12(设备宽度375px)上,根字体大小就是 (375 / 750) * 100 = 50px。这意味着,代码里写的1.5rem按钮,在这台手机上实际渲染的宽度就是 1.5 * 50px = 75px。你看,虽然数值变了,但它在屏幕上的相对比例(占屏幕宽度的一半)和设计稿(150px占750px宽度的比例)是完全一致的!这就是rem适配的精髓所在。

2. 从设计稿到代码:手把手搭建rem适配环境

理解了原理,咱们就来动手实操。我会带你走一遍最完整、最实用的流程,这也是我在多个项目中验证过的稳定方案。我们不只满足于“能用”,更要追求“好用”和“高效”。

2.1 第一步:设置视口与动态根字体

一切的基础,是从HTML的<head>标签开始。这里必须正确设置视口(viewport),告诉浏览器如何控制页面的尺寸和缩放。我推荐使用下面这个标准的meta标签,它能很好地禁止用户缩放,保持页面布局稳定。

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

接下来,就是核心的JavaScript代码了。我们把它放在<body>结束标签之前,确保DOM元素加载前就执行。这段代码的作用就是实时计算并设置<html>的font-size。

<script>
  (function() {
    // 定义设计稿宽度和基准值
    var designWidth = 750;
    var baseFontSize = 100; // 1rem = 100px on design draft

    function setRootFontSize() {
      // 获取当前设备宽度
      var deviceWidth = document.documentElement.clientWidth || window.innerWidth;
      // 通常我们会设置一个最大和最小宽度限制,避免在超大或超小屏幕上过度缩放
      var maxWidth = 750;
      var minWidth = 320;
      if (deviceWidth > maxWidth) {
        deviceWidth = maxWidth;
      }
      if (deviceWidth < minWidth) {
        deviceWidth = minWidth;
      }
      // 核心计算公式
      var rootFontSize = (deviceWidth / designWidth) * baseFontSize;
      document.documentElement.style.fontSize = rootFontSize + 'px';
    }

    // 页面加载时执行一次
    setRootFontSize();
    // 窗口大小变化时(如横竖屏切换)重新执行
    window.addEventListener('resize', setRootFontSize);
    // 防止某些浏览器在页面加载后字体大小发生变化(如旋转后)
    window.addEventListener('pageshow', function(e) {
      if (e.persisted) {
        setRootFontSize();
      }
    });
  })();
</script>

把这段代码放到你的项目里,rem适配的基石就打好了。现在,你的CSS里所有用rem定义尺寸的元素,都已经具备了响应式缩放的能力。你可以打开浏览器开发者工具,切换不同的手机设备模拟器,观察<html>标签的font-size值变化,感受一下它的动态效果。

2.2 第二步:告别手动计算,用PostCSS插件自动转换px到rem

基础搭建好了,但新的问题来了:难道我每次写CSS,都要把设计稿上的px值手动除以100,再写成rem吗?一个按钮宽150px要写成1.5rem,一个字体14px要写成0.14rem,这太反人类了,不仅效率低下,而且极易出错。

别担心,现代前端工具链早就为我们解决了这个问题。我们可以使用 PostCSS 插件,在代码编译阶段,自动将我们写好的px单位转换成rem。这样,我们在CSS里可以继续用直观的px数值来写样式,享受“所见即所得”的畅快,最后由工具自动完成适配转换。这是提升开发体验和效率的关键一步。

目前最主流、最稳定的组合是 postcss-pxtorem 插件(注意,原始文章里提到的postcss-plugin-px2rem已较少维护,postcss-pxtorem是更活跃的替代品)。下面我以在Vue CLI或Webpack项目中集成为例,展示完整的配置过程。

首先,通过npm安装必要的依赖:

npm install postcss-pxtorem --save-dev
# 如果你还没有安装autoprefixer(用于自动添加浏览器前缀),也建议安装
# npm install autoprefixer --save-dev

然后,在你的项目根目录下找到PostCSS的配置文件。可能是 postcss.config.js,也可能是 .postcssrc.js 或 package.json 中的 postcss 字段。我们以独立的 postcss.config.js 文件为例进行配置:

// postcss.config.js
module.exports = {
  plugins: {
    // 自动添加浏览器厂商前缀,解决兼容性问题
    'autoprefixer': {},
    // px转rem的核心插件
    'postcss-pxtorem': {
      rootValue: 100, // 换算基数,对应我们之前约定的 1rem = 100px
      propList: ['*'], // 需要转换的属性列表,* 表示所有属性都转换
      selectorBlackList: ['.ignore-', '.hairlines'], // 忽略的选择器,这些类名下的px不会被转换
      replace: true, // 是否直接替换值,而不是添加备用值
      mediaQuery: false, // 是否转换媒体查询中的px
      minPixelValue: 2, // 小于等于2px的值不进行转换,常用于边框
      exclude: /node_modules/i // 排除node_modules文件夹,防止第三方UI库的样式被意外转换
    }
  }
}

配置完成后,重启你的开发服务器。现在,你可以尽情地在CSS中书写px单位了。例如,你根据750px设计稿测量出一个标题的字体是32px,一个容器的内边距是20px,直接这样写:

.title {
  font-size: 32px; /* 编译后会自动变成 0.32rem */
  margin-bottom: 20px; /* 编译后会自动变成 0.2rem */
}
.container {
  padding: 20px; /* 编译后会自动变成 0.2rem */
  border: 1px solid #ccc; /* 注意:1px 小于 minPixelValue: 2,所以不会被转换,保持为1px */
}

开发工具会实时编译,将你写的32px自动计算为0.32rem。在浏览器中检查元素,你会看到最终生效的是rem单位的值。这简直太爽了,开发时完全不用操心rem计算,又能完美实现自适应,生产力直接翻倍。

3. 实战避坑指南:处理1px边框、第三方UI与高清屏

方案跑起来之后,在实际项目中你肯定会遇到一些“坑”。别担心,这些都是常见问题,我有现成的解决方案。

3.1 令人头疼的“1物理像素”边框问题

在Retina屏(高清屏)上,CSS的1px实际上会渲染成多个物理像素,导致边框看起来比设计稿粗,不够精致。我们的rem方案基于视口缩放,但这个问题依然存在。常见的解决方案有几种,我比较推荐使用 伪元素 + transform缩放 的方案,它兼容性好,效果也最接近原生。

假设我们想给一个按钮添加底部的1物理像素边框。我们可以这样写CSS:

.btn {
  position: relative;
  padding: 12px 24px;
}
.btn::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px; /* 这里写1px,但会被转换吗?注意我们的minPixelValue是2,所以不会转成rem */
  background-color: #e0e0e0;
  transform-origin: 0 0;
}
/* 针对高清屏的设备像素比(dpr)为2的情况 */
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) {
  .btn::after {
    transform: scaleY(0.5);
  }
}
/* 针对dpr为3的情况 */
@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) {
  .btn::after {
    transform: scaleY(0.333);
  }
}

这样,在普通屏幕上,边框就是1px;在Retina屏上,通过将1px高的线条垂直缩放0.5倍,视觉上就达到了“0.5物理像素”的细边框效果。记得在postcss-pxtorem配置中,把minPixelValue设为2或更大,确保这些1px不会被转换成rem,否则缩放计算会出错。

3.2 如何与Vant、Mint-UI等第三方组件库和谐共处?

这是很多新手会踩的大坑。你兴高采烈地引入了像Vant这样优秀的移动端UI库,结果发现里面的按钮、弹窗都变得特别小!这是因为UI库自身的样式很可能也用了px单位,并且它预期在某种特定的font-size基准下工作(比如375px设计稿下,1rem=37.5px)。当我们的方案(1rem=50px on 375px device)生效后,UI库的样式也被我们的postcss-pxtorem插件转换了,尺寸自然就对不上了。

解决这个冲突,核心思路是 “区别对待”:我们页面的样式需要px-to-rem转换,但第三方UI库的样式不需要,或者需要以不同的基准进行转换。有两种主流做法:

方法一:配置插件排除node_modules(推荐) 这是最省心的办法。就像我上面在postcss.config.js里配置的 exclude: /node_modules/i,它告诉插件:node_modules文件夹里的所有样式文件都不要进行px到rem的转换。这样,Vant等库的样式会保持原样。但这就要求UI库自身是已经做好移动端适配的(通常它们会使用flexible.js或类似的方案,设置html font-size为37.5px等)。这时,我们需要调整自己的基准值去匹配UI库。

我们需要修改最初的JS设置和PostCSS配置:

  1. 将设计稿基准改为 1rem = 37.5px(对应375px设备宽)。这样,在375px设备上,html font-size就是37.5px,与Vant等库的预期一致。
  2. 计算JS中的baseFontSize为37.5。
  3. 修改postcss-pxtorem的rootValue为37.5。

这样,我们自己的样式(按750px设计稿量取,量得的px值除以2再写到代码里)和UI库的样式都能正确适配。缺点是写自己样式时需要心算除以2。

方法二:使用注释标记,精细控制转换 如果你无法排除整个node_modules,或者只想对部分第三方样式进行转换,可以使用插件的注释功能。postcss-pxtorem支持在CSS中使用特殊注释来标记哪些行需要或不需要转换。

/* 转换 */
.our-element {
  width: 75px; /* 会被转换成rem */
}

/* 不转换 */
.van-button {
  width: 100px; /* 不会被转换,因为下面有`/*no*/`注释 */
  border: 1px solid #eee; /*no*/
}

/* 根据dpr生成多倍图代码(常用于字体,防止在高清屏上过小) */
.special-text {
  font-size: 24px; /*px*/
}

配置插件时,需要启用相关选项:

'postcss-pxtorem': {
  rootValue: 100,
  propList: ['*'],
  selectorBlackList: [],
  // 关键配置
  replace: true,
  mediaQuery: false,
  minPixelValue: 2,
  // 不排除node_modules,但通过注释控制
  exclude: undefined
}

使用/*no*/注释,该行所有px都不转换。使用/*px*/注释,插件会尝试根据设备dpr生成多个px值(此功能需要插件额外支持或特定配置)。这种方法更灵活,但需要开发者对代码有更精细的管理。

4. 进阶优化:打造更健壮、高性能的适配方案

基本的适配跑通了,但我们还可以做得更好。下面分享几个我在实际项目中总结的进阶技巧,能让你的适配方案更健壮、性能更好。

4.1 防止字体过大过小:设置合理的缩放阈值

在极端宽度的设备上,比如iPad或者超宽安卓平板,如果完全按照公式无限制地缩放,根字体可能会变得非常大或非常小,导致布局严重变形或字体难以阅读。因此,给html的font-size设置一个最小值和最大值是非常必要的。我们在最初的JS函数里已经做了简单的限制(minWidth和maxWidth),但我们可以更进一步,结合CSS的clamp()函数或媒体查询来设置更平滑的阈值。

我们可以在JS计算中加入更严格的限制:

function setRootFontSize() {
  var deviceWidth = document.documentElement.clientWidth;
  var maxWidth = 768; // 平板临界点
  var minWidth = 320;
  var maxFontSize = 85; // 最大根字体,防止在平板上过大
  var minFontSize = 42; // 最小根字体,防止在小屏手机上过小

  var rootFontSize = (deviceWidth / designWidth) * baseFontSize;
  // 使用Math.max和Math.min进行钳制
  rootFontSize = Math.max(minFontSize, Math.min(rootFontSize, maxFontSize));
  document.documentElement.style.fontSize = rootFontSize + 'px';
}

同时,在CSS中,对于字体大小,建议使用rem和媒体查询结合的方式,确保可读性:

body {
  font-size: 0.28rem; /* 默认约14px(在375px设备上) */
}
@media (min-width: 768px) {
  body {
    font-size: 16px; /* 在平板上直接使用固定px,避免rem缩放导致字体过大 */
  }
}

4.2 利用CSS自定义属性(CSS Variables)提升灵活性

CSS自定义属性(也叫CSS变量)现在得到了广泛支持。我们可以将计算出的根字体大小存为一个CSS变量,这样在CSS中也能方便地使用和计算。虽然我们的rem方案本身不依赖它,但结合使用可以增加灵活性。

在JS中设置变量:

document.documentElement.style.setProperty('--root-font-size', rootFontSize + 'px');

在CSS中,你可以这样用:

:root {
  /* 提供一个默认值,防止JS未执行 */
  --root-font-size: 50px;
}
.element {
  /* 直接使用rem */
  width: 1.5rem;
  /* 或者,如果需要基于根字体做更复杂的计算,可以使用calc和变量 */
  margin: calc(0.5rem + 2px);
  /* 甚至定义自己的缩放变量 */
  --my-scale-factor: 2;
  height: calc(var(--root-font-size) * var(--my-scale-factor));
}

这种方式在需要动态主题或复杂计算时特别有用。

4.3 图片和背景图的适配策略

对于内容图片(<img>标签),我们通常希望它也能在一定范围内自适应,同时避免失真。最常用的方法是设置最大宽度为100%,高度自动。

.content-img {
  max-width: 100%;
  height: auto;
  display: block;
}

对于背景图,情况更复杂一些。如果背景图需要覆盖整个区域并保持比例,可以使用 background-size: cover;。如果背景图是一个需要保持原始尺寸的图标,并且需要随布局缩放,一个技巧是使用 background-size 配合 em 或 rem。但更常见的做法是,对于需要多倍图适配的图标,使用雪碧图(CSS Sprite)并配合background-size进行缩放,或者直接使用SVG图标,因为SVG是矢量图形,无限缩放都不会失真,是移动端H5图标的最佳选择。

例如,使用rem来适配一个背景图标:

.icon {
  width: 0.4rem;
  height: 0.4rem;
  background-image: url('icon-sprite.png');
  background-size: 2rem 2rem; /* 雪碧图的总大小,也用rem */
  background-position: -0.5rem 0; /* 背景位置也用rem */
}

这样,整个图标系统也会随着页面整体缩放。当然,管理雪碧图的位置计算会比较麻烦,这也是为什么我强烈推荐在移动端项目中优先使用SVG图标库,比如通过<svg>标签内联或者使用字体图标(如IconFont)的SVG符号(symbol)方式,它们都能完美适配rem布局。

最后,我想说的是,技术方案没有绝对的银弹。基于rem的响应式布局是我经过多年实战验证,在开发效率、适配效果和维护成本上取得最佳平衡的方案。它可能不是最“新潮”的(比如现在也有很多人讨论vw/vh单位),但绝对是经过大规模项目验证、最稳定可靠的。关键在于理解其核心原理,并根据自己项目的实际情况(比如是否需要兼容非常老的浏览器、是否与特定UI库深度绑定)进行微调。希望这份详细的指南能帮你少走弯路,快速搞定移动端H5的适配难题。如果在实践中遇到具体问题,多看看最终渲染出的CSS和计算出的根字体大小,大部分问题都能迎刃而解。

h5的rem代替px做移动端界面的自适应 这两天要把公司以前的触屏设备的客户端应用做成h5的web应用,而且有针对不同设备和同一设备下的不同状态(有windows竖屏和横屏和android的平板),总想把它做成能适配不同设备分辨率的东西,所以来研究這个问题。 因为在之前的公司做过的项目中的某些模块参照过别的产品,发现过有用rem和em的,然后就来网上研究学习了解了下这几种相对单位。其中就找到了这篇文章:http://isux.tencen... 阅读详情

相关推荐

H5移动端的尺寸与分辨率教程

在H5移动端开发中,合理设置页面尺寸和分辨率是至关重要的,可以通过响应式设计、视口设置、rem布局和设备检测等手段来实现页面的自适应效果。本文将介绍如何根据不同设备的特点来确定H5移动端页面的尺寸和分辨率。移动端设备的分辨率多种多样,常见的有720x1280、750x1334、1080x1920等,不同设备的分辨率会影响页面的显示效果。因此,在设计H5移动端页面时,需要根据主流设备的分辨率特点来制定页面的尺寸和布局。在H5移动端开发中,可以使用rem单位来设置页面的尺寸和布局,实现页面的自适应效果。

weixin_73032215的博客 3457

H5移动端开发 之 rem适配

的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size。假如某个元素宽度是150px,那么在css里面定义这个元素的宽度就是 width: 2rem。1.安装插件 postcss-pxtorem, postcss-pxtorem是一款 PostCSS 插件,用于将 px 单位转化为 rem 单位。3.安装插件 lib-flexible, 该插件会自动在html的head中添加一个。4.在main.js中引入 lib-flexible。

m0_58575070的博客 1720

移动端H5页面布局:HBuilderX手把手教程

用HBuilderX制作网页,从零搭建响应式H5页面,详解viewport设置、flex布局与rem适配技巧,手把手带你完成移动端适配开发,真正实现一次编写、多端运行。

weixin_28888459的博客 819

题

BFC BFC是块级格式化上下文。BFC它是一个独立的渲染区域,只有Block-level box(块元素)参与,它规定了内部的Block-level box如何布局,并且与这个区域外部毫不相关。 可以理解成:创建了 BFC的元素就是一个独立的盒子,里面的子元素不会在布局上影响外面的元素(里面怎么布局都不会影响外部),BFC仍属于文档中的普通流 特性: ① 内部的块级元素会在垂直方向上一个接一个的放置; ② 位于同一BFC下的相邻块级子元素在垂直方向上会发生margin重叠; ③ 位于不同BFC下的相邻元素

sangjk的博客 268

H5移动端完美适配实战:基于rem与百分比的响应式布局方案

Grid 的强大之处在于它的函数式语法:fr: 弹性单位,自动分配剩余空间: 设定最小最大范围: 自动生成合适列数gap: 1rem;这个写法意味着:- 每列至少 250px- 如果空间足够,就拉伸填满- 屏幕变窄时自动换为单列💡 它甚至不需要媒体查询!浏览器会自动计算最优列数。你以为“完美适配”是要在所有设备上长得一模一样?错。真正的高手懂得:适配的目标不是绝对一致,而是基于用户体验的最优权衡。小屏优先,还是大屏重构?

weixin_42168902的博客 989

凌欧通用FOC框架解析(5.程序环流程)

结构体:电流内环.这是一个结构体函数占空比13.

weixin_43756295的博客 2934

H5 - rem自适应方案

H5 - rem自适应方案 对于H5应用来说,为了更通用地满足各机型屏幕的自适应布局要求,我们目前采用rem布局方案。 rem rem是相对于根元素(html)字体大小的单位,它只是一种相对单位。不同于另一个相对单位em,em是相对于父元素的字体大小,而rem则相对于根元素(html),与父元素的字体大小无关。 等比例适配所有屏幕 不论传统的px绝对像素布局,还是流式布局、固定宽度和响应式做法,都有其缺陷,并不能完全做到自适应所有屏幕。 但是,rem方案可以比较容易地做到等比例适配...

_ 2274

Crush 终端 LLM 工具安装与使用指南:把 AI 编程助手装进你的命令行

喜欢命令行的开发者需要离线/轻量级 AI 助手的场景希望自定义模型与工具链的高级用户通过LSP + MCP + 多模型支持,Crush 不仅能写代码,还能理解项目、调用工具、连接服务,真正成为你的“终端编程搭档”。

weixin_44058951的博客 1616

H5移动端适配方案rem/vw

H5移动端的适配方案

不想被卷出去的前端老鸟 7561

机械臂速成小指南(七):从旋转矩阵到齐次变换——机械臂位姿的数学表达

本文详细介绍了机械臂位姿描述的数学基础,包括旋转矩阵、欧拉角和齐次变换等核心概念。通过解析旋转矩阵的几何意义和合成方法,以及欧拉角的直观描述,帮助读者理解机械臂位姿的数学表达。文章还探讨了齐次变换在工程实践中的应用,并提供了数值稳定性、坐标系约定和计算效率等实用建议。

cuda7parallel的博客 835

勇闯dify v1.0.0之设置模型供应商。解决:Reached maximum retries (3) for URL https://marketplace.dify.ai/

朋友们,大家好,今天带大家来勇闯dify v1.0.0。为什么叫勇闯呢?我就这么说吧,本来我昨天就想带大家勇闯v1.0.0的。但是dify的marketplace访问不了。公司的网和手机热点都试了,就是访问不了。我们连个模型都没有,还勇闯个球啊,对吧,就搁置了。今天,我赶紧看看这个marketplace好了没。一看,可以了。赶紧写下这篇博客,帮助同志们走出困境。

xiezhipu的博客 4616

h5移动端自适应布局

场景:为适应各种大小的屏幕 自适应布局我知道的两种方式 1.使用媒体查询,下面制定了几种适应方式,例如第一个表示屏幕宽度在320px-360px之间的,html字体大小适配为13.65px <style> @media only screen and (max-width: 360px) and (min-width: 320px){ html{ ...

weixin_41228671的博客 7328

Jetson Orin Nano 平台适配IMX585 camera驱动调试记录

Jetson Orin Nano Devkit适配imx585 camera使用argus_camera捕获流,图片是黑色的用示波器来测量mipi信号,信号正常Jetpack版本: sensor参数: dts配置: 分析log: 如图: EBD有两行修改dts: 测试如下:log: 需要注意极性互换查看相应的原理图设置。可以使用设备树属性lane_polarity在任何lane上配置极性交换。例如, 尝试调整极性出现花屏 根据上述像素时钟配置说明调整为如下配置后,出图正常

jzwjzw19900922的博客 1322

h5响应式布局、PC和移动端适配方案

总结一下在实习期间遇到的h5的响应式布局、PC和移动端适配方案的介绍、选择以及一些问题。

weixin_45732455的博客 9850

labelImg使用教程

Anaconda环境 安装 Anaconda 之后,在开始菜单下找到 Anaconda 文件夹 找到 Anaconda Prompt 点击运行 安装 labelImg pip install labelImg #直接命令行输入 启动 labelImg labelImg #直接命令行输入名称即可 labelImg界面 开始标注 快捷键:W(创建方框),A(上一张),D(下一张) XML文件示例 <annotation> <folder>夜读</folder>

G果的博客 3万+

【Unity实战篇 】| 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】

本文来写一下怎样在Unity中完成一个 镂空遮罩 的效果。 镂空遮罩 比较常用的有两种:矩形镂空遮罩、圆形镂空遮罩。 镂空遮罩 在游戏中常被当做新手引导必备的内容,可以给玩家更多不一样的体验。 下面就一起来看一下怎样做出这种效果吧!

努力前行,总会成为自己心中的那道光 1万+

响应式布局和自适应

响应式布局和自适应 写网页时,经常要求要适配不同屏幕,要求可以在大屏幕,ipad,手机上可以显示正常。对于公司的官网这是很重要的。那么,这就涉及到了响应式布局和自适应。 文章目录响应式布局和自适应前言一、响应式布局二、自适应根字体大小rem方案一:postcss-px2rem+setRem()方案方案二:flexible和 postcss-px2rem2.读入数据总结 前言 如果对网站的适应方面要求多的话,例如移动端的排版要求变动比较大,可以做成两个版本:pc版本和h5版本(移动端),可以参考京东。

xueyawuhai的博客 2637

AUTOSAR从入门到精通-诊断事件管理模块(DEM)(四)

在 Autosar 中,诊断事件是指在车辆电子系统中发生的特定事件,可以用于诊断和故障排除。DEM模块通过EventId和相关的EventName来表示每个诊断事件。诊断事件的状态代表了监控器的结果,DEM模块通过RTE或其他BSW模块从SW-C接收监控器的结果。DEM模块使用EventId来管理系统中每个诊断事件的状态,并对各个测试结果执行所需的操作,例如存储冻结帧/拓展帧。所有监控器和BSW模块使用EventId作为符号化的EventName来管理诊断事件。

getusushu的博客 1509

H5+CSS3响应式设计实战:基于Flex布局的适配方案

H5+CSS3响应式设计的核心是“一次开发,多端适配”,而Flex布局以其简洁的语法、强大的弹性适配能力,成为响应式开发的核心工具。

HHH1433223的博客 1425

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

h5 rem是如何实现自适应布局的?

摘要:rem是相对于根元素,这样就意味着,我们只需要在根元素确定一个px字号,则可以来算出元素的宽高。本文讲的是如何使用rem实现自适应。 rem这是个低调的css单位,近一两年开始崭露头角,有许多同学对rem的评价不一,有的在尝试使用,有的在使用过程中遇到坑就弃用了。但是我对rem综合评价是用来做web app它绝对是最合适的人选之一。 rem是什么? rem(font size of the root element)是指相对于根元素的字体大小的单位。简单的说它就是一个相对单位。看到rem大家一定会想起

weixin_44117767的博客 1510

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

移动端开发、各种兼容问题、响应式布局开发、移动端和PC端开发的不同

移动端开发、各种兼容问题、响应式布局开发、移动端和PC端开发的不同

wxh2860906464的博客 2226

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

移动端h5框架自适应_移动h5自适应布局

http://www.cnblogs.com/samwu/p/4285748.html(转)问题一,分辨率Resolution适配:不同屏幕宽度,html元素宽高比和字体大小,元素之间的距离自适应,使用rem单位。问题二,单位英寸像素数PPI适配:使用rem单位,文字会发虚。段落文字,使用px单位,用media query或js来适配。标题文字可以直接使用rem单位。问题三,设备像素比例DPR适配...

weixin_29521249的博客 785

Henry前端笔记之响应式布局与弹性布局

Henry前端笔记之响应式布局与弹性布局弹性布局Rem布局的原理解析(em 与 rem区别 ):rem如何实现自适应布局使用CSS3 REM 和 VW 打造等比例响应式页面的便捷工作流从网易与淘宝的font-size思考前端设计稿与工作流使用Flexible实现手淘H5页面的终端适配rem自适应布局-移动端自适应rem自适应布局-移动端自适应进阶 弹性布局 Rem布局的原理解析(em 与 rem区...

Ayun0420的博客 634

Html5移动端布局及(rem布局)页面自适应布局详解

常见的页面布局方式有, 静态布局px布局 流式布局(Liquid Layout)主要的划分区域的尺寸使用百分数(搭配min-*、max-*属性使用) 自适应布局(Adaptive Layout)即创建多个静态布局,每个静态布局对应一个屏幕分辨率范围 响应式布局(Responsive Layout)检测窗口大小利用bootstrap布局 弹性布局(rem/em布局)css3 r...

仗剑天涯,从摘要开始 837

Vue3 H5移动端适配实战:从REM布局到真机调试全解析

移动端适配是前端开发中的核心挑战,其本质在于确保网页在不同尺寸、分辨率的设备上都能提供一致的视觉与交互体验。其原理主要围绕视口控制、相对单位应用和弹性布局策略展开,通过动态调整元素尺寸和布局来适应多样化的屏幕环境。这项技术的核心价值在于提升用户体验的普适性和产品的可访问性,尤其在电商、内容展示、工具类H5等应用场景中至关重要。本文聚焦于Vue3技术栈,深入探讨了基于REM与视口单位的现代适配方案,并系统解决了第三方库兼容、横屏适配以及真机调试中的常见问题,为开发者提供了一套从原理到实践的完整移动端适配方法论

weixin_33749131的博客 358
上一篇: TriLib2进阶:Unity运行时动态模型加载的配置与回调实战
下一篇: Proteus仿真实战:基于STM32的智能书房环境调控系统(附仿真与源码)
work3
博客等级 码龄1天 0粉丝 1266原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值