手机端怎样用rem+scss做适配

这次给大家带来手机端怎样用rem+scss做适配,手机端做rem+scss适配的注意事项有哪些,下面就是实战案例,一起来看一下。

rem介绍

rem(font size of the root element)是指相对于根元素(即注意事项)的字体大小的单位。

假设根元素的字体大小是10px, 则5rem的大小为 5*10=50px,例如

html{    font-size: 10px;}p{    width: 2rem; /* 2*10 = 20px;*/    margin: 1rem;}

登录后复制

rem来做适配

立即学习“前端免费学习笔记(深入)”;

以前我们往往这样做页面:viewport width 设置为 device-width,然后选我们需要兼容设备的最小宽度(一般是320px)。根据这最小宽度来做页面。单位使用px和百分比。在宽度不同的设备上,页面的字体大小,内容尺寸都是一样的,不同的是,大屏的内容间的空隙比小屏的大。所以这样做的缺点就是,页面在某些尺寸的设备上显示的效果不好。

如果用rem来页面,我们会根据不同的设备宽度在根元素上设置不同的字体大小。宽度越宽,字体越大。然后对原本使用px的地方使用rem来替换。这样,字体大小,内容尺寸,对随着屏幕宽度的变大而变大。

首先js设置html的默认字体大小(写在注意事项)

    var bodyElement = document.documentElement || document.body,        RC = {            w: 750,            h: 1206        }, //默认设计稿宽高        GC = {            w: document.documentElement.clientWidth || window.innerWidth || screen.width,            h: document.documentElement.clientHeight || window.innerHeight || screen.height        };    function setFontSize(){        var rightSize = parseFloat((RC.w / RC.h).toFixed(1)),            currentSize = parseFloat((GC.w / GC.h).toFixed(1)),            lastHTMLSize = 16, // 默认16是因为html默认字号是16px            html = document.getElementsByTagName("html")[0];                    if(rightSize > currentSize){  // 长屏                lastHTMLSize = 16;            }else if(rightSize < currentSize){  //宽屏                lastHTMLSize = (RC.h / GC.h * GC.w) / RC.w * 16;            }            html.style.fontSize = GC.w / lastHTMLSize + 'px';            }     setFontSize();

登录后复制

设置scss文件px转rem

// 默认16是html默认字号// 默认750是设计稿默认宽度// $n是量取设计稿的距离 @charset "UTF-8";@function rem($n) {    @return $n / (750 / 16)+rem;}

登录后复制

编辑方便调用的函数:

@function getTop($n) {    @return ($n - 1206 / 2) / (750 / 16)+rem;} @function getLeft($n) {    @return ($n - 750 / 2) / (750 / 16)+rem;} @function getRight($n) {    @return (($n - 750) / 2) / (750 / 16)+rem;} @mixin center($left, $top) { //左右居中 上变    position: absolute;    left: 50%;    top: rem($top);    margin: 0 0 0 getLeft($left);} @mixin centerlt($left, $top) { //上下,左右居中    position: absolute;    left: 50%;    top: 50%;    margin: getTop($top) 0 0 getLeft($left);}@mixin centerrt($right, $top) { //上下,左右居中    position: absolute;    right: 50%;    top: 50%;    margin: getTop($top) getRight($right) 0 0;}@mixin middlert($right, $top) { //上下居中 右变    position: absolute;    right: rem($right);    top: 50%;    margin: getTop($top) 0 0 0;} @mixin centerb($left, $bottom) { //左右居中 下变    position: absolute;    left: 50%;    bottom: rem($bottom);    margin: 0 0 0 getLeft($left);} @mixin leftTop($left, $top) { //左变 上变    position: absolute;    left: rem($left);    top: rem($top);}@mixin rightTop($right, $top) { //右变 上变    position: absolute;    right: rem($right);    top: rem($top);}@mixin leftBottom($left, $bottom) { //右变 上变    position: absolute;    left: rem($left);    bottom: rem($bottom);}

登录后复制

调用上面的函数(宽高距离用ps量实际距离即可,默认设计稿宽750):

page1-img1{    width: rem(473);    height: rem(173);    @include centerlt(139, 767);}

登录后复制

相信看了这些案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

相关阅读:

注意事项

注意事项

注意事项

以上就是手机端怎样用rem+scss做适配的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3125083.html

(0)
上一篇 2025年3月29日 19:39:24
下一篇 2025年2月27日 17:28:37

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • font-weight:blod的跳动问题怎样用CSS解决

    这次给大家带来font-weight:blod的跳动问题怎样用css解决,font-weight:blod的跳动问题用css解决的font-weight有哪些,下面就是实战案例,一起来看一下。 需求:实现鼠标悬停在链接上时,链接字体加粗的功…

    编程技术 2025年3月29日
    100
  • 你不知道的CSS使用技巧

    这次给大家带来你不知道的css使用技巧,css使用的注意事项有哪些,下面就是实战案例,一起来看一下。 在企业开发中修改样式都是交给CSS来做 通过CSS来修改样式有什么好处?1.不用记忆哪些属性属于哪个标签2.当需求变更时我们不需要修改大量…

    编程技术 2025年3月29日
    100
  • html5和CSS 实现禁止IOS长按复制粘贴功能

    这篇文章主要介绍了关于html5和css 实现禁止ios长按复制粘贴功能,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 因为在移动端APP需要实现长按执行别的事件,但是在iOS系统有默认的长按选择复制粘贴。禁止在网上找了很多…

    编程技术 2025年3月29日
    100
  • h5实现放大镜效果的代码

    这篇文章分享给大家的内容是关于h5实现放大镜效果的代码,内容很有参考价值,希望可以帮到有需要的小伙伴。 最近公司做的艺术品放大效果,和以往的淘宝放大镜效果有些不同,这个需要在本图上放大 *{margin:0;padding:0} .demo…

    编程技术 2025年3月29日
    100
  • 如何自定义video播放器样式?

    本篇文章给大家分享了关于如何自定义video播放器样式,内容很详细,希望可以帮助到大家。 DIY 本文基于HTML5 Video API,自定义Web视频播放器样式。 其实吧,原生的video 标签样式挺好看的,但每个人的视觉感受不一样,所…

    编程技术 2025年3月29日
    100
  • button按钮和submit按钮有什么区别?

    本篇文章给大家带来的内容是关于button按钮和submit按钮有什么区别?有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 button-普通按钮,submit-提交按钮。submit是button的一个特例,也是butto…

    编程技术 2025年3月29日
    100
  • CSS定位position使用介绍

    position选项来定义元素的定位position,选项有5个可选值:position、relative、absolute、fixed、inherit 属性值为relative、absolute、fixed时position | posi…

    编程技术 2025年3月29日
    100
  • 关于css中text-overflow属性与文本截断的示例代码分享

    这篇文章主要给大家介绍了关于css中text-overflow属性与文本截断的相关资料,文中给出了详细的示例代码供大家参考学习,希望本文的内容对各位前端开发者们能带一定的帮助,需要的朋友们下面跟着小编一起来学习学习吧。 前言 本文主要给大家…

    编程技术 2025年3月29日
    100
  • css属性中fontVariant的介绍与实例

    font-variant font-variant设置小型大写字母的字体显示文本,这意味着所有的小写字母均会被转换为大写,但是所有使用小型大写字体的字母与其余文本相比,其字体尺寸更小。取值small-caps    浏览器会显示小型大写字母…

    编程技术 2025年3月29日
    100
  • css中line-height的深入理解

    语法: line-height : normal | length 参数: normal :  默认行高length :  百分比数字 | 由浮点数字和单位标识符组成的长度值,允许为负值。其百分比取值是基于字体的高度尺寸。请参阅长度单位 说…

    编程技术 2025年3月29日
    100

发表回复

登录后才能评论