您当前的位置:首页 > 电脑百科 > 程序开发 > 前端

前端面试:谈谈你对移动端适配的认识

时间:2023-05-26 13:55:57  来源:今日头条  作者:NativeBase

回答

移动端适配是指在不同的移动设备上展示相同的页面效果,以适应不同的屏幕分辨率和设备像素密度的要求。

常见的移动端适配方案有:

1.媒体查询:使用css3的媒体查询,根据不同屏幕宽度设置不同的样式,实现响应式布局。

2.百分比布局:使用百分比单位设置元素的宽度和高度,以适应不同屏幕分辨率的要求。

3.rem布局:使用相对单位rem,根据根元素字体大小设置其他元素的大小,可以实现根据设备像素密度适配不同的屏幕分辨率。

4.viewport:通过viewport标签设置设备的宽度和缩放比例,使网页在不同设备上展示相同的效果。

5.Flex 布局。

6.使用适配库 如amfe-flexible,postcss-pxtorem等。

7.设备检测 Modernizr

简单介绍

1.REM布局

REM 是 CSS3 中的一个相对单位,它相对于根元素(html)的字体大小进行计算。

通过改变根元素的字体大小,来改变其他元素的尺寸,以此来实现布局的自适应。

<html>
  <head>
    <style>
      html {
        font-size: calc(100vw / 10); /* 假设设计稿宽度为750px, 1rem = 75px */
      }
      div {
        width: 1rem; /* div的宽度为75px */
      }
    </style>
  </head>
  <body>
    <div></div>
  </body>
</html>

如何动态改变根元素的字体大小呢?

其实是搭配媒体查询来达到动态效果:

html {
  font-size: 16px; /* 默认字体大小 */
}

/* 当视口宽度小于600px时,改变字体大小 */
@media (max-width: 600px) {
  html {
    font-size: 14px;
  }
}

/* 当视口宽度小于400px时,再次改变字体大小 */
@media (max-width: 400px) {
  html {
    font-size: 12px;
  }
}

由于rem是相对于<html>元素的字体大小,所以当我们改变<html>元素的字体大小时,所有使用rem单位的元素的大小也会随之改变。这使得我们可以根据视口的大小来调整页面的布局和元素的大小。

2.什么是 Modernizr?

Modernizr是一个JAVAScript库,它可以帮助你检测用户的浏览器是否支持你需要的HTML5和CSS3特性。

这样你就可以根据这些检测结果来决定你的代码是否要使用某个特性,或者提供一个备选方案。

if (Modernizr.canvas) {
  // 浏览器支持canvas
  // 在canvas上画图
} else {
  // 浏览器不支持canvas
  // 提供一个备选方案
}


Tags:移动端适配   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
前端面试:谈谈你对移动端适配的认识
回答移动端适配是指在不同的移动设备上展示相同的页面效果,以适应不同的屏幕分辨率和设备像素密度的要求。常见的移动端适配方案有:1.媒体查询:使用CSS3的媒体查询,根据不同屏幕...【详细内容】
2023-05-26  Search: 移动端适配  点击:(179)  评论:(0)  加入收藏
大厂是怎么做移动端适配的
作者:子非鱼转发链接:https://mp.weixin.qq.com/s/uQ8c2Z6GJr4eyH3kidZt3g前言随着Web技术的革新,移动端适配方案也在不断的变化,网上有很多关于移动端适配的文章,说什么rem布局...【详细内容】
2020-04-15  Search: 移动端适配  点击:(320)  评论:(0)  加入收藏
▌简易百科推荐
20k级别前端是怎么使用LocalStorage的,想知道吗?
当咱们把咱们想缓存的东西,存在localStorage、sessionStorage中,在开发过程中,确实有利于咱们的开发,咱们想看的时候也是一目了然,点击Application就可以看到。前言大家好,我是林...【详细内容】
2024-03-26  前端之神  微信公众号  Tags:前端   点击:(12)  评论:(0)  加入收藏
前端不存在了?盲测64%的人更喜欢GPT-4V的设计,杨笛一等团队新作
3 月 9 日央视的一档节目上,百度创始人、董事长兼 CEO 李彦宏指出,以后不会存在「程序员」这种职业了,因为只要会说话,人人都会具备程序员的能力。「未来的编程语言只会剩下两种...【详细内容】
2024-03-11  机器之心Pro    Tags:前端   点击:(9)  评论:(0)  加入收藏
前端开始“锈化”?Vue团队开源JS打包工具:基于Rust、速度极快、尤雨溪主导
Vue 团队已正式开源Rolldown &mdash;&mdash; 基于 Rust 的 JavaScrip 打包工具。Rolldown 是使用 Rust 开发的 Rollup 替代品,它提供与 Rollup 兼容的应用程序接口和插件接口...【详细内容】
2024-03-09  OSC开源社区    Tags:Vue   点击:(11)  评论:(0)  加入收藏
两年前端经验还不会手写Promise?
什么是promise?当我们处理异步操作时,我们经常需要进行一系列的操作,如请求数据、处理数据、渲染UI等。在过去,这些操作通常通过回调函数来处理,但是回调函数嵌套过多会导致代码...【详细内容】
2024-03-07  海燕技术栈  微信公众号  Tags:Promise   点击:(23)  评论:(0)  加入收藏
网站开发中的前端和后端开发有什么区别
前端开发和后端开发都是干什么的?有哪些区别?通俗地讲,前端干的工作是用户可以直接看得见的,而后端开发的工作主要在服务端,用户不太能直接看到。虽然前端开发和后端开发的工作有...【详细内容】
2024-02-21  CarryData    Tags:前端   点击:(32)  评论:(0)  加入收藏
网站程序开发中的前后端分离技术
随着互联网的快速发展和技术的不断创新,传统的网站开发模式已经难以满足日益增长的业务需求。为了提高开发效率、增强系统的可维护性和可扩展性,前后端分离技术逐渐成为了网站...【详细内容】
2024-01-31  网站建设派迪星航    Tags:前后端分离   点击:(23)  评论:(0)  加入收藏
如何优雅的实现前端国际化?
JavaScript 中每个常见问题都有许多成熟的解决方案。当然,国际化 (i18n) 也不例外,有很多成熟的 JavaScript i18n 库可供选择,下面就来分享一些热门的前端国际化库!i18nexti18ne...【详细内容】
2024-01-17  前端充电宝  微信公众号  Tags:前端   点击:(69)  评论:(0)  加入收藏
Vue中Scope是怎么做样式隔离的?
scope样式隔离在 Vue 中,样式隔离是通过 scoped 特性实现的。当在一个组件的 <style> 标签上添加 scoped 特性时,Vue 会自动为这个样式块中的所有选择器添加一个唯一的属性,以...【详细内容】
2024-01-04  海燕技术栈  微信公众号  Tags:Vue   点击:(80)  评论:(0)  加入收藏
vue3中 ref和 reactive的区别 ?
最近有朋友在面试过程中经常被问到这么一个问题,vue3 中的ref 和 reactive的区别在哪里,为什么 要定义两个API 一个 api不能实现 响应式更新吗??带着这个疑问 ,我们 接下来进行逐...【详细内容】
2024-01-03  互联网高级架构师  今日头条  Tags:vue3   点击:(38)  评论:(0)  加入收藏
React18 与 Vue3 全方面对比
1. 编程风格 & 视图风格1.1 编程风格 React 语法少、难度大;Vue 语法多,难度小例如指令:Vue<input v-model="username"/><ul> <li v-for="(item,index) in list" :key="inde...【详细内容】
2024-01-03  爱做梦的程序员  今日头条  Tags:Vue3   点击:(72)  评论:(0)  加入收藏
站内最新
站内热门
站内头条