rem + простая-гибкая схема адаптации
Простой разбор
rem
относительно корневого элемента<html>
изfont-size
Размер для расчета сиденья как единицы;
simple-flexible
По мнению команды Шоу Таоlib-flexible.js
, Сравните, переписанный плагин, совместимый с ОШИБКОЙ в вертикальном экране UC на горизонтальный экран, настройка ширины визуального проекта дизайна: designWidth, установка максимальной ширины: maxWidth
здесь естьsimple-flexibleизGithub
адрес, загрузка и использование;
- Первый параметр — это ширина эскиза визуального дизайна, как правило, эскиз визуального дизайна имеет ширину 750 пикселей, которую можно настроить в соответствии с реальной ситуацией.
- Второй параметр устанавливает максимальную ширину производственного наброска, если она превышает 750 пикселей, максимальное ограничение составляет 750 пикселей;
- Коэффициент конвертации при использовании 1:100, то есть 1rem = 100px;
Шаги для использования
-
копироватьsimple-flexibleиз
flexible.min.js
илиflexible.js
код на страницу<head>
из<script>
внутри этикетки; -
Затем размер эскиза визуального оформления, внутри отрегулируйте значения двух последних параметров;
-
В соответствии с пикселем дизайна используйте
rem
В визуальном проекте проекта пересчета единиц измеренияpx
Единица, например: 750px = 7.5rem;
плюсы и минусы
Простой и практичный, практически без недостатков, вIISПоследний IPheonX также был адаптирован, рекомендуется использовать
rem+lib-гибкая схема адаптации
Простой разбор
lib-flexible.js
Это плагин Js, созданный командой Hand Taoist, который может быть динамически переписан через JS.<meta>
Этикетка;
lib-flexible.js
Основной принцип заключается в имитацииvw
Делим визуальную осадку на 100 частей, в пересчете на единицу а, 1бэр = 10а;
Возьмите мокап 750px в качестве примера.
1a = 7.5px, 1rem = 75px
Шаги для использования
В соответствии с приведенными выше шагами внешний CDN также можно импортировать.
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">
<script src="./node_modules/amfe-flexible/index.js"></script>
Можно также использовать модульный подход.
Npm:
npm i -S amfe-flexible
JS:
import 'amfe-flexible'
/*
do something
*/
плюсы и минусы
Я обнаружил в браузере UC, что горизонтальный пакет и вертикальный экран не могут быть преобразованы, и было найдено совместимое решение, которое через js на странице<head>
генерируется в определении<html>
элементfont-size
изstyle
элементы для решения!
<style id="rootFontSize">html{font-size: 100px !important;}</style>
И официально заявлено, что этоvw
Чрезмерная программа, не рекомендуется для длительного использования;
Схема адаптации PostCSS + VW
Простой разбор
PostCSS
БудуCSS
сталиJavaScript
данные, чтобы сделать его действенным;
VW
единица длины, основанная на окне Viewpost;
Viewpost
Относится к области визуализации браузера, а область визуализацииwindow.innerWidth/window.innerHeight
размер;
а такжеViewpost
Соответствующими единицами являются следующие четыре
-
vw
: Это меньше ширины области просмотра 1VW = 1% от Window.innerwidth; -
vh
: сокращение высоты области просмотра 1vw = window.innerHeight 1%; -
vmin
: меньшее значение между vw и vh -
vmax
: большее значение между vw и vh
Шаги для использования
Предполагая, что ширина эскиза визуального дизайна составляет 750 пикселей, то есть 1vw = 7,5 пикселей, тогда единица измерения vw должна быть преобразована в соответствии со значением px чертежа дизайна.Чтобы избежать такого расчета, конечно, необходимо использоватьPostCSS
,так же какpostcss-px-to-viewport
ОдинPostCSS
плагин
Это решение является наиболее кислым и освежающим при использовании инструментов упаковки для сборки проектов.Рекомендуется попробовать его в следующих средах;
Если вы использовали детскую обувь с передними строительными лесами, вы должны были видеть, что они будут в корневом каталоге проекта..postcssrc
файл, который содержит некоторые известные параметры конфигурацииautoprefixer
,cssnano
,px2rem
,cssnext
...и так далее забавные плагины для настройки, но я не буду приводить здесь эти инструкции, просто представлюpostcss-px-to-viewport
Использовать с ВВ
нпм:
npm i -S postcss-px-to-viewport
Открыть.postcssrc
, предполагая, что ширина эскиза визуального дизайна составляет 750 пикселей, и перепишите конфигурацию следующим образом:
//...
"plugins": {
"postcss-px-to-viewport": true
},
"rule": {
"postcss-px-to-viewport": {
"viewportWidth": 750,
"viewportHeight": 1334,
"unitPrecision": 5,
"viewportUnit": "vw",
"selectorBlackList": [],
"minPixelValue": 1,
"mediaQuery": false
}
}
//...
После того, как конфигурация будет завершена, используйте px непосредственно в проекте, и он будет автоматически преобразован в единицу vw при сборке, что не слишком круто;
postcss-px-to-viewport
Описание элемента конфигурации
"viewportWidth" //设置视觉设计稿的宽度
"viewportHeight" //设置视觉设计稿的高度
"unitPrecision": //单位的精度,即保留多少位小数
"viewportUnit": //转换的单位
"selectorBlackList": //需要忽略的选择器
"minPixelValue": //最小像素值
"mediaQuery": //是否允许媒体查询转换为 px
плюсы и минусы
Совместимость vw кажется не очень хорошей, и, возможно, потребуется понизить версию.Необходимо использовать CSS Houdini и CSS Polyfill, чтобы выполнить некоторую обработку понижения для единиц vw;
Vw может превышать 100vw при смешивании с px поля.В настоящее время вместо поля используется отступ, и для его решения можно использовать размер окна.Вы также можете использовать функцию calc() CSS для выполнения расчета;
При конвертации все еще есть небольшая разница в пикселях, которую невозможно полностью восстановить;
Присоединение rem также не требует вычислительных средств
На возвышенном есть плагинcssremВы можете позволить почерку px, а затем sublime автоматически преобразовать в rem, вы можете влюбиться в css,
Инструкции по настройке следующие:
px_to_rem // px转rem的单位比例,默认为40,基本定义是视觉设计稿的宽度/10;
max_rem_fraction_length // px转rem的小数部分的最大长度,默认为6;
available_file_types // 启用此插件的文件类型。默认为:[".css", ".less", ".sass"];
Суммировать
Все три схемы адаптации, описанные здесь, используются.
Конечно, есть еще много решений, которых я не знаю, но все решения по адаптации должны идеально восстановить визуальный проект дизайна и идеально решить проблему совместимости.Конечно, это идеальное состояние;
благодарный@напрасноПомощь (анализ существительного) + поощрение (напоминание)
благодарный@w3cplus,блог разработки @frontend,
Спасибо вам двоим за четыре статьи, которые меня вдохновили
- Поговорим об адаптации мобильных страниц
- Использование Flexible для реализации терминальной адаптации страниц H5 Taobao
- рем адаптивная верстка
- рем адаптивный js
Оригинальная ссылкаСтаньте более опытным в навыках CSS
оригинальный блогИстория времениДобро пожаловать в игру~