移动端适配

简介: 【8月更文挑战第4天】

4.1.3 利用第三方库lib-flexible动态font-size
下载地址:GitHub - amfe/lib-flexible: 可伸缩布局方案

核心代码和上面写js是差不多的,主要他处理一些别的情况,比如屏幕是否支持0.5px,还有页面跳转问题。


我是文本


效果一样的:

4.1.4 rem单位-px转成rem的方案
上面我们已经解决了动态生成font-size了,但是我们要把px转成rem。

375px的屏幕font-size就是37.5,100px宽的盒子就是100除以37.5。每一次都要运算。这就很麻烦。

4.1.5第一种:手动用计算器算。(不推荐)
比如有一个在375px屏幕上,100px宽度和高度的盒子
我们需要将100px转成对应的rem值:
100/37.5=2.6667,其他也是相同的方法计算即可
4.1.6 第二种用less的混合scss的函数
.pxToRem(@px) {
result: 1rem * (@px / 37.5);
}

.box {
width: .pxToRem(100)[result];
height: .pxToRem(100)[result];
background-color: orange;
}

p {
font-size: .pxToRem(14)[result];
}

这种比上面的方便很多,但是也不是很好。要写很多的函数名。

4.1.7 第三种:postcss-pxtorem
目前在前端的工程化开发中,我们可以借助于webpack的工具来完成自动的转化;

例如,设计稿375的那就在375上布局写px,之前怎么布局现在就怎么布局。后面打包就会自动修改。

下载插件:npm i postcss-pxtorem -D

插件官网

在根目录下新建一个postcss.config.js文件,下面提供了一份基本的 PostCSS 示例配置,可以在此配置的基础上根据项目需求进行修改。

// postcss.config.js
module.exports = {
plugins: {
'postcss-pxtorem': {
rootValue: 37.5,
propList: ['*'],
},
},
};
其他设计稿的可以修改rootValue的值
4.1.8 第四种:VSCode插件
px to rem的插件,在编写时自动转化

然后直接打100px就可以看得到,然后选rem就可以了。就不用直接算了。

4.2 vw单位 (方案二)
vw单位是相对于视口的。比如375px的屏幕就是1vw==3.752px。

基于375屏幕:

<style>
    /* 设置给375px的设计稿 */
    /* 1vw = 3.75px */
    .box {
        /* width: 100px / 3.75px = 26.6667vw */
        width: 26.6667vw;
        height: 26.6667vw;
        background: #8ec04c;
    }

    p {
        font-size: 3.2vw;
    }
</style>


<div class="box">
    <p>紫陌学前端</p>
</div>
相关文章
|
存储 Ubuntu 安全
百度搜索:蓝易云【Ubuntu系统离线安装Telnet服务教程。】
确保在进行任何系统配置更改之前备份重要的数据,并在操作过程中小心谨慎,以免造成不必要的问题。
581 0
|
8月前
|
人工智能 监控 数据可视化
如何破解AI推理延迟难题:构建敏捷多云算力网络
本文探讨了AI企业在突破算力瓶颈后,如何构建高效、稳定的网络架构以支撑AI产品化落地。文章分析了典型AI IT架构的四个层次——流量接入层、调度决策层、推理服务层和训练算力层,并深入解析了AI架构对网络提出的三大核心挑战:跨云互联、逻辑隔离与业务识别、网络可视化与QoS控制。最终提出了一站式网络解决方案,助力AI企业实现多云调度、业务融合承载与精细化流量管理,推动AI服务高效、稳定交付。
|
缓存 监控 前端开发
JavaScript 实现大文件上传的方法
【10月更文挑战第17天】通过以上步骤和方法,我们可以实现较为可靠和高效的大文件上传功能。当然,具体的实现方式还需要根据实际的应用场景和服务器要求进行调整和优化。
|
前端开发 JavaScript
前端项目公共组件封装思想
该文介绍了如何封装通用组件,如表单搜索、表格展示和分页器。首先,通过抽离出公共部分,创建`TableContainer`组件,利用具名插槽插入`navbar`和`table`,并通过props传递标题。然后在父组件中使用具名插槽和子组件实现具体功能。文中还展示了更复杂的组件封装示例,通过props实现数据双向绑定,以`el-pagination`为例,利用`sync`修饰符和`computed`属性监听并更新父组件状态,实现分页功能。文章最后提到了内容来源于哪。
532 0
|
JavaScript 前端开发 API
纯js轻量级页面顶部Loading进度条插件
纯js轻量级页面顶部Loading进度条插件
使用JTS及其姐妹项目GeoTools进行坐标系转换
【6月更文挑战第7天】使用JTS及其姐妹项目GeoTools进行坐标系转换
1645 0
|
缓存 运维 Ubuntu
掌控软件管理:详解 APT、YUM 和 DNF 的使用方法
掌控软件管理:详解 APT、YUM 和 DNF 的使用方法
2038 0
vue 中 axios 的安装及使用
本文介绍了在Vue项目中安装和使用axios的方法。首先通过命令`npm install axios --save-dev`安装axios,然后在组件的`created`生命周期钩子中使用`axios.get`异步获取数据,并将获取的数据更新到组件的`data`中。文中提供了完整的示例代码,包括安装命令、验证安装成功的步骤、Vue组件的模板、脚本和样式。
vue 中 axios 的安装及使用