Визуализация данных на большом экране
В ежедневной работе по фронтенд-разработке мы часто сталкиваемся с некоторыми проектными требованиями для больших экранов, например, большой экран 3*3, фактический размер экрана 5760*3240, но размер проекта, который мы получили, 1920*1080 , 5 * 3 Фактический размер экрана 9600 * 3240, но размер полученного нами эскиза дизайна составляет 3200 * 1080. Видно, что полученный нами эскиз дизайна в основном представляет собой соотношение размеров фактического размера / 3 , то как мы можем сделать свой собственный Что с отладкой в среде разработки? И добиться экранизации?
Используйте amfe-гибкий
amfe-flexible в основном используется для решения проблемы адаптации мобильных терминалов amfe-flexible устанавливает размер шрифта html равным ширине разрешения экрана/10, то есть размер шрифта html с разрешением 1920*1080 должен быть 192.
Установить
npm install amfe-flexible -S
использовать
// main.js引入
import 'amfe-flexible';
с помощью рем
rem — это новая относительная единица длины в CSS3, которая относится к размеру вычисляемого значения font-size относительно корневого элемента html. Его можно просто понять как процент от ширины экрана. После использования amfe-flexible для установки размера шрифта html в ширину разрешения экрана/10 мы можем рассчитать его на основе размера корневого элемента html.
根html的font-size为192;
// px
.dom {
width: 100px;
}
// 自动转换成rem
.dom {
// 100/192
width: 0.52083333rem;
}
Но у нас на странице много единиц пикселей. Если каждый из них нужно вычислять вручную, это увеличит объем работы. Все, что мы можем использовать.postcss-pxtorem
, внедрить пакет автоматических вычислений, чтобы автоматически преобразовывать пиксели, которые я определил, в рем-единицы.
Используйте postcss-pxtorem
postcss-pxtorem преобразует px в rem, а единица rem используется для адаптации к экранам разной ширины.Результат рассчитывается в соответствии со значением размера шрифта тега, 1rem = значением размера шрифта тега html.
npm install postcss-px2rem -S
Настроить postcss-pxtorem Создайте новый файл .postcssrc.js
module.exports = {
"plugins": {
'postcss-pxtorem-include': {
include: 'src/views/fullScreen/*', // 制定转换的目录
rootValue: 320, // 设置根据多大设计稿尺寸
unitPrecision: 6,
propList: ['*'],
},
}
}
Примечание: include может указывать каталоги или файлы, которые необходимо преобразовать в px-rem. Особого внимания требует значение rootValue, это значение ширины полученного чертежа/10, например, чертеж проекта 1920*1080, здесь rootValue: 192, если размер эскиза 3200*1080 (5* 3) размер, Здесь rootValue: 320;
анализировать
3*3 большой экран Проектный размер эскиза 1920*1080 Реальный размер проекции 5760*3240 Мы устанавливаем DOM в соответствии с размером эскиза дизайна
//根html的font-size:192
.dom {
width: 200px;
height: 200px;
}
// 转为rem
.dom {
// 200/192
width: 1.0416666667rem;
height: 1.0416666667rem;
}
При фактическом размере экрана 5760*3240 фактическая ширина и высота, соответствующие DOM, рассчитываются следующим образом:
// 根html的font-size: 576
.dom {
// 1.0416666667 * 576
width: 600px;
height: 600px;
}
Пример просмотра
5*3 большой экран Проектный размер эскиза 3200*1080 Реальный размер экрана 9600*3240
//根html的font-size: 320
.dom {
width: 200px;
height: 200px;
}
// 转为rem
.dom {
// 200/320
width: 0.625rem;
height: 0.625rem;
}
При фактическом размере экрана 9600*3240 фактическая ширина и высота DOM рассчитываются следующим образом:
// 根html的font-size: 960
.dom {
// 0.625 * 960
width: 600px;
height: 600px;
}
Пример просмотра
Если вы столкнетесь с диаграммами и т. д., вам необходимо динамически установить размер.
// num为设置的大小(px)
function getSizeByScreen(num) {
// 这里的3200为你设计稿的宽度。
return Math.ceil((num / 3200) * window.screen.width);
}