Advertisement

如何在移动端布局中使用vw和rem

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:PDF


简介:
本文介绍在移动端布局中如何运用vw和rem单位进行灵活且响应式的网页设计,帮助开发者轻松实现适配各种屏幕尺寸的需求。 在移动端网页设计中,【vw+rem布局】是一种优化方案,旨在解决不同设备屏幕尺寸下的适配问题。传统的rem布局依赖于JavaScript代码动态调整根元素`html`的`font-size`值,从而实现按比例缩放所有页面元素大小。然而,这种做法存在两个主要缺点:一是与根元素字体大小强耦合的问题,在系统字体放大或缩小的情况下会导致布局混乱;二是需要在HTML头部插入一段压缩过的JavaScript代码来动态设置字体大小。 【vw单位】(Viewport Width)是CSS3引入的一种基于视口宽度的相对长度单位,1vw等于视口宽度的1%。使用这种方法,开发者可以直接根据屏幕尺寸定义元素尺寸,而无需通过JavaScript调整根元素字体大小。例如,在设计稿中一个元素宽为120px,则在移动端可以将其转换成`width: 3.75vw;`(假设设计稿基于iPhone6/7/8的宽度375px)。这种方式简化了代码,并且不受父级元素的影响。 【百分比与vw的区别】:百分比单位是根据其直接父容器来计算大小,而vw始终以整个视口的宽度为基准。当页面出现滚动条时使用100%会导致超出实际可视区宽高(不包括滚动条),从而产生水平或垂直滚动条;相反,使用100vw则会精确匹配屏幕尺寸。 【其他视口单位】除了vw外还有vh (Viewport Height),vmin和vmax。这些单位提供更多的灵活性以适应不同比例的设备屏幕,并允许基于高度或者宽度中较小/较大的值进行布局设计。 【兼容性】尽管vw等视口单位在现代浏览器得到了广泛支持,但在一些老旧或非主流浏览器上可能存在不完全兼容的问题。因此,在开发过程中需要考虑使用媒体查询或其他条件注释来为这些情况提供替代方案。 通过结合标签设置页面的缩放行为和初始尺寸以及合理利用vw+rem布局方法,可以有效解决移动端网页适配问题,并提高代码可读性和维护性。随着现代浏览器日益普及,这种技术已成为移动优先设计中的首选策略之一。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 使vwrem
    优质
    本文介绍在移动端布局中如何运用vw和rem单位进行灵活且响应式的网页设计,帮助开发者轻松实现适配各种屏幕尺寸的需求。 在移动端网页设计中,【vw+rem布局】是一种优化方案,旨在解决不同设备屏幕尺寸下的适配问题。传统的rem布局依赖于JavaScript代码动态调整根元素`html`的`font-size`值,从而实现按比例缩放所有页面元素大小。然而,这种做法存在两个主要缺点:一是与根元素字体大小强耦合的问题,在系统字体放大或缩小的情况下会导致布局混乱;二是需要在HTML头部插入一段压缩过的JavaScript代码来动态设置字体大小。 【vw单位】(Viewport Width)是CSS3引入的一种基于视口宽度的相对长度单位,1vw等于视口宽度的1%。使用这种方法,开发者可以直接根据屏幕尺寸定义元素尺寸,而无需通过JavaScript调整根元素字体大小。例如,在设计稿中一个元素宽为120px,则在移动端可以将其转换成`width: 3.75vw;`(假设设计稿基于iPhone6/7/8的宽度375px)。这种方式简化了代码,并且不受父级元素的影响。 【百分比与vw的区别】:百分比单位是根据其直接父容器来计算大小,而vw始终以整个视口的宽度为基准。当页面出现滚动条时使用100%会导致超出实际可视区宽高(不包括滚动条),从而产生水平或垂直滚动条;相反,使用100vw则会精确匹配屏幕尺寸。 【其他视口单位】除了vw外还有vh (Viewport Height),vmin和vmax。这些单位提供更多的灵活性以适应不同比例的设备屏幕,并允许基于高度或者宽度中较小/较大的值进行布局设计。 【兼容性】尽管vw等视口单位在现代浏览器得到了广泛支持,但在一些老旧或非主流浏览器上可能存在不完全兼容的问题。因此,在开发过程中需要考虑使用媒体查询或其他条件注释来为这些情况提供替代方案。 通过结合标签设置页面的缩放行为和初始尺寸以及合理利用vw+rem布局方法,可以有效解决移动端网页适配问题,并提高代码可读性和维护性。随着现代浏览器日益普及,这种技术已成为移动优先设计中的首选策略之一。
  • CSS3使vwrem实现响应式无需JS的方法
    优质
    本文介绍如何利用CSS3中的vw和rem单位在移动设备上创建响应式的网页布局,整个过程无需借助JavaScript,帮助开发者简化代码并提高性能。 在使用之前,我们先简单了解一下vw和rem及其作用。 1. **vw/vh介绍**:vw是CSS3引入的一个新单位,“view width”的缩写,定义为将当前屏幕宽度分成一百份,即1vw等于屏幕宽度的1%;vh与此类似,代表“view height”,表示把高度分成一百份,因此1vh等于屏幕高度的1%,通常我们使用vw来实现响应式布局。 2. **rem介绍**:rem是相对长度单位。它相对于根元素(通常是html)字体大小的比例值计算而来。例如,在HTML中设置`font-size: 20px;`时,则页面中的1rem等同于20px的尺寸。
  • Vue 实现 REMVW 的技巧
    优质
    本文介绍了在 Vue 项目中采用 REM 和 VW 单位进行自适应布局的方法和技巧,帮助开发者轻松实现响应式设计。 在移动设备开发过程中,适配不同屏幕尺寸是一项关键任务。`rem` 和 `vw` 单位常被用于创建响应式布局,在 Vue.js 这样的流行前端框架中,实现这两种布局策略有多种方法。 ### 一、使用 `rem` 布局 #### 方法一:手动设置 HTML 字体大小 在项目根目录的 JavaScript 文件(如 `main.js`)里添加如下代码: ```javascript const setHtmlFontSize = () => { let deviceWidth = document.documentElement.clientWidth || document.body.clientWidth; if (deviceWidth >= 750) { deviceWidth = 750; // 设定最大宽度,例如设计稿中的1rem为75px } if (deviceWidth <= 320) { deviceWidth = 320; // 设定最小宽度 } document.documentElement.style.fontSize = `${deviceWidth / 7.5}px`; // 设置字体大小,假设1rem=100px } window.onresize = setHtmlFontSize; setHtmlFontSize(); ``` 然后在 CSS 文件中使用 `rem` 单位定义元素尺寸。 #### 方法二:利用 `lib-flexible` 和转换插件 首先安装这两个库: - 安装命令为 `npm install lib-flexible --save` - 或者,对于转换插件如 `px2rem-loader`, 使用命令是 `npm install px2rem-loader --save-dev` 接着,在项目配置文件(例如 `vue.config.js`)中进行如下设置: ```javascript module.exports = { chainWebpack: config => { config.module .rule(css) .test(/\.css$/) .oneOf(vue) .resourceQuery(/\?vue/) .use(px2rem-loader, () => ({ loader: px2rem-loader, options: { remUnit: 75 }, // 设置转换基数 })); }, }; ``` ### 二、使用 `vw` 布局 在 CSS 文件中直接应用 `vw` 单位,例如: ```css width: 10vw; height: calc(100vh - 20px); /* 使用 vw 和 vh 结合 */ ``` 这种方法适用于元素尺寸需要与视口宽度成比例变化的情况。 ### 如何选择:使用 `rem` 还是 `vw` - 如果你需要更精确地控制不同分辨率下的布局,推荐采用 `rem` 单位。 - 对于那些依赖于相对单位的响应式设计和对视觉效果有特殊要求的应用场景,则更适合用到 `vw`。 在实际开发中可以根据具体需求灵活选择或结合使用这两种方法。
  • Vue使REM的配置函数
    优质
    本文介绍了在移动端Vue项目中如何配置和使用REM单位以实现自适应布局,提供了详细的配置步骤与示例代码。 移动端使用的rem配置函数设计得非常简洁,使用时只需调整一个参数即可完成设置。
  • 模仿京东首页设计(固定尺寸、remvw适配)
    优质
    本项目旨在模仿京东移动端首页的设计风格与布局,采用固定尺寸及REM和VW单位实现全面屏适配,确保良好用户体验。 仿照京东移动端首页布局设计,包括固定尺寸布局、rem适配布局以及vw适配布局。设计稿使用的是iPhone XR的414px * 896px。 通过在不同移动设备上展示网页,可以发现固定尺寸布局存在的不足之处,并了解rem和vw适配的原理。 其中,采用vw适配方式时所使用的css代码是用scss语法编写的,其中包括了函数、变量及嵌套等特性。
  • 携程首页(使Flex
    优质
    本项目为携程旅行网移动端首页设计,采用现代前端技术Flexbox布局实现响应式页面排布,优化用户体验与界面美观度。 当然可以。请提供您希望我重写的文字内容。
  • 使REM进行Vue屏幕适配
    优质
    本文介绍如何在Vue项目中运用REM单位实现移动端页面的自适应布局,帮助开发者轻松应对不同设备屏幕尺寸的挑战。 本段落主要介绍了如何在Vue项目中使用rem进行移动端屏幕适配,并通过实例代码详细讲解了实现rem布局的方法。对于对此主题感兴趣的读者来说,这是一篇值得参考的文章。
  • REM不同分辨率上的自适应与整体缩放实现
    优质
    本文探讨了REM布局技术及其在各类移动设备分辨率下的自适应调整和整体缩放策略,以优化用户体验。 REM布局能够实现不同分辨率移动终端的自适应与整体缩放功能。此外,界面UI设计也很出色。相关博文可以参考我之前的文章。
  • JS辨别PC
    优质
    本文介绍了使用JavaScript区分电脑和手机访问的方法,帮助开发者为不同设备提供优化的内容和服务。 有几种方法可以判断设备是移动端还是PC端,并据此决定是否跳转页面以实现匹配效果。
  • 网页】Flex弹性实例③
    优质
    本篇文章深入讲解了移动端网页设计中Flex弹性布局的应用技巧与实战案例,是系列教程中的第三部分。 在移动端网页设计中,Flex布局是一种强大的盒模型布局方式,尤其适合处理复杂的、响应式的界面。本段落将深入探讨Flex布局的使用,并通过实际代码示例阐述其核心概念和应用场景。 一、Flex布局基础 1. 容器(Container):设置为`display: flex`或`display: inline-flex`的元素被视为Flex容器,包含一系列子元素。 2. 项目(Items):容器内的所有直接子元素都被视为Flex项目,它们可以根据容器设定进行弹性排列和伸缩。 二、主要属性 1. `flex-direction`: 决定项目的主轴方向。可选值包括`row`(默认从左到右)、`row-reverse`(从右到左)、`column`(从上到下) 和 `column-reverse`(从下到上)。 2. `justify-content`: 控制项目在主轴上的对齐方式,选项有`flex-start`(靠边或顶部开始),`flex-end`(靠尾部或底部结束),`center`(居中),`space-between`(两端对齐且间隔相等) 和 `space-around`(每个元素两侧间隔相同)。 3. `align-items`: 定义项目在交叉轴上的对齐方式,选项包括与justify-content类似的值:`flex-start`, `flex-end`, `center`, `baseline` (基线对齐),以及将空间拉伸的`stretch`。 4. `align-content`: 当有多行布局时使用,控制这些行之间的排列。其功能类似于align-items但适用于多行情况。 5. `flex-wrap`: 决定项目是否换行,默认为不换行(`nowrap`),也可以选择允许换行(第一行为上部或下部)的`wrap` 或 `wrap-reverse`。 6. `flex-grow`, `flex-shrink`, 和 `flex-basis`: 这三个属性共同决定项目的伸缩比例。具体来说, `flex-grow` 定义了项目放大时的比例,`flex-shrink`定义缩小的比例,而`flex-basis`则指定了初始大小。 三、Flex项目属性 1. `flex`: 简写形式的属性,等同于设置项目的伸缩比例(即同时设置了上述三个值)。 2. `align-self`: 允许单个项目覆盖容器的对齐方式,选项与`align-items`相同。 四、案例分析 在“移动端网页布局”中,我们可能会看到一个包含多个子元素的Flex容器。通过调整`flex-direction`, 我们可以实现从横向到纵向布局的变化;利用`justify-content`和`align-items`, 可以使子元素按需对齐于容器内;而当屏幕尺寸变化时,使用`flex-wrap`来决定是否需要换行展示子元素。同时,通过设置项目的伸缩比例(`flex-grow`, `flex-shrink`) 和初始大小 (`flex-basis`) 来控制不同情况下的项目大小。 实际的HTML和CSS代码可以进一步帮助理解Flex布局的工作原理及实践应用。通过调整这些代码并进行试验,你将能够灵活地构建适应各种设备与视口尺寸的移动端网页布局。在实践中不断探索, 你会发现Flex布局能极大地简化复杂布局的设计,并提高开发效率。