作者:Rain雨露Dew | 来源:互联网 | 2023-05-16 21:29
说明:本人习惯性的直接上代码,不想用太多的文字去表述
一、html页面
<html lang="en">
<head>
<meta charset="UTF-8">
<title>title>
<script type="text/Javascript">
var dpr, rem, scale;
document.write('')
var docEl = document.documentElement;
var fOntEl= document.createElement('style');
var metaEl = document.querySelector('meta[name="viewport"]');
dpr = window.devicePixelRatio || 1;
rem = docEl.clientWidth * dpr / 10;
scale = 1 / dpr;
metaEl.setAttribute('content', 'hljs-string">',initial-scale=' + scale + ',maximum-scale=' + scale + ', minimum-scale=' + scale + ',user-scalable=no');
docEl.setAttribute('data-dpr', dpr);
docEl.style.fOntSize= rem + 'px';
docEl.style.width = '100%';
docEl.style.height = '100%';
docEl.style.overflow = 'hidden';
window.rem2px = function (v) {
v = parseFloat(v);
return v * rem;
};
window.px2rem = function (v) {
v = parseFloat(v);
return v / rem;
};
window.dpr = dpr;
window.rem = rem;
script>
<link rel="stylesheet" href="demo2.css">
head>
<body>
<div class="app">
<div class="header">
<div class="text">你好,我是标题div>
div>
div>
body>
html>
二、less代码
@charset "utf-8";
.px2rem(@name, @px) {
@{name}: @px / 75 * 1rem;
}
.px2px(@name, @px) {
@{name}: round(@px / 2) * 1px;
[data-dpr="2"] & {
@{name}: @px * 1px;
}
[data-dpr="2.5"] & {
@{name}: round(@px * 2.5 / 2) * 1px;
}
[data-dpr="2.75"] & {
@{name}: round(@px * 2.75 / 2) * 1px;
}
[data-dpr="3"] & {
@{name}: round(@px / 2 * 3) * 1px
}
// for 三星note4
[data-dpr="4"] & {
@{name}: @px * 2px;
}
}
* {
margin: 0;
padding: 0;
}
.app {
width: 100%;
height: auto;
}
.header {
width: inherit;
.px2rem(height, 90);
background: #f90;
.text{
.px2rem(height,90);
.px2rem(width,500);
.px2px(font-size,30);
.px2rem(line-height,90);
.px2px(margin-left,50);
}
}
三、说明
- 在
less
文件中有两个方法px2rem
和px2px
的使用情况
- 1、关于盒子大小、图片大小都是用
px2rem
方法
- 2、字体大小与
padding,margin
,定位用的right
都是用px2px