当前位置:   article > 正文

前端开发大屏适配几种方案

前端开发大屏适配几种方案

方案一:vw(单位)

假设设计稿尺寸为 1920*1080,直接使用 vw 单位,屏幕的宽默认为 100vw,那么100vw = 1920px, 1vw = 19.2px 。

新建px2vw.scss

  1. / 使用 scss 的 math 函数
  2. @use "sass:math";
  3. // 默认设计稿的宽度
  4. $designWidth: 1920;
  5. // 默认设计稿的高度
  6. $designHeight: 1080;
  7. // px 转为 vw 的函数
  8. @function vw($px) {
  9. @return math.div($px, $designWidth) * 100vw;
  10. }
  11. // px 转为 vh 的函数
  12. @function vh($px) {
  13. @return math.div($px, $designHeight) * 100vh;
  14. }
 

配置

vue.config.js配置

vue.config.js文件

  1. module.exports = {
  2. ...,//其他设置
  3. css: {
  4. loaderOptions: {
  5. sass: {
  6. prependData: `@import "@/styles/px2vw.scss";`,
  7. },
  8. },
  9. },
  10. };
vite.config.ts配置
  1. return {
  2. ...,//其他配置
  3. css: {
  4. preprocessorOptions: {
  5. scss: {
  6. javascriptEnabled: true,
  7. additionalData: `@use "@/styles/px2vw.scss" as *;`,
  8. },
  9. },
  10. },
  11. };

在组件中使用

  1. <template>
  2. <div class="box">
  3. </div>
  4. </template>
  5. <script>
  6. export default{
  7. name: "Box",
  8. }
  9. </script>
  10. <style lang="scss" scoped="scoped">
  11. /*
  12. 直接使用 vw 和 vh 函数,将像素值传进去,得到的就是具体的 vw vh 单位
  13. */
  14. .box{
  15. width: vw(300);
  16. height: vh(100);
  17. font-size: vh(16);
  18. background-color: black;
  19. margin-left: vw(10);
  20. margin-top: vh(10);
  21. border: vh(2) solid red;
  22. }
  23. </style>

图表自适应

echarts 的字体大小只支持具体数值(像素),不能用百分比或者 vw 等尺寸,一般字体不会去做自适应,当宽高比跟 ui 稿比例出入太大时,会出现文字跟图表重叠的情况

这里我们就需要封装一个工具函数,来处理图表中文字自适应了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/899663
推荐阅读
相关标签