动态设置宽高

可视化页面宽高比固定为 16:9
当浏览器宽高比大于16:9时,可视化页面的宽度 = 浏览器高度 (16 / 9)
当浏览器宽高比小于16:9时,可视化页面的宽度=浏览器宽度
可视化页面的高度 = 可视化页面的宽度 / (16 / 9)
设置1rem = 页面宽度 / 100
元素尺寸 / 页面宽度 = 元素设计尺寸 / 页面设计宽度
元素尺寸 = 元素设计尺寸 / 页面设计宽度 页面宽度 = 元素设计尺寸 / 页面设计宽度
100rem
因为是大屏项目,所以把pageWidth的最小值写死为1400px, 小于这个值页面会错乱,影响效果

  1. const clientWidth = document.documentElement.clientWidth
  2. const clientHeight = document.documentElement.clientHeight
  3. const pageWidth = clientWidth / clientHeight > 16 / 9 ? clientHeight * (16 / 9) : 1400
  4. const pageHeight = pageWidth / (16 / 9)
  5. const string = `<style>html{
  6. font-size: ${pageWidth / 100}px
  7. }</style>`
  8. document.write(string)
  1. <div id="root"></div>
  2. <script>
  3. root.style.width = pageWidth + 'px'
  4. root.style.height = pageHeight + 'px'
  5. // 当页面高度小于屏幕高度时添加margin使页面垂直居中
  6. root.style.marginTop = pageHeight < clientHeight ? (clientHeight - pageHeight) / 2 + 'px' : 0
  7. </script>

自定义px函数设置元素尺寸

  1. @function px($n) {
  2. @return $n / 2420 * 100rem;
  3. }
  4. .home {
  5. width: px(367);
  6. height: px(315);
  7. border: 1px solid red;
  8. }