移动端布局,字体使用rem不生效问题

本文参考连接:https://blog.csdn.net/qq_35484341/article/details/78248371

移动端布局是最让我感到头疼的一件事,一直都是逃避的心态,不想面对,但没办法,公司前端就我一个人,所有的问题迟早都要自己解决,所以不得不开始摸索,最快的办法就是看前辈们都是怎么解决的,但是有些办法不一定适合自己,要挨个试,才知道哪个方法好用,这次我就来记录一下移动端布局rem不生效的问题。

众所周知,rem是相对于html元素的font-size大小而言的,而em是相对于其父元素,所以要用rem布局的话就必须设置根元素html的font-size大小,要是不设置的话根元素大小就默认是16px,也就是1rem = 16px;然后发现不好换算,所以就设置成了10px;,这样就是在写css的时候就直接除以10。

但是这样写,字体大小并不能随着屏幕大小缩放而变换,这时候需要配合js来使用了。

一、使用js

(function(){
    function w() {
    var r = document.documentElement;
    var a = r.getBoundingClientRect().width;//获取当前设备的宽度
        if (a > 720 ){//720不固定,根据设计稿的宽度定
            a = 720;
        }
        rem = a / 7.2;
        r.style.fontSize = rem + "px"
    }
    w();
    window.addEventListener("resize", function() {//监听横竖屏切换
        w()
    }, false);
})();

将这段代码写到html里面,然后我们写css只需要把对应的值除以100,单位改成rem即可

注意:

1、这段js最好放到页面的body上面,让他第一时间加载,防止网速慢而导致屏幕闪烁问题

2、当写一像素边框时,最好还是使用1px来写,因为在部分手机上0.01rem不显示

但是加上这段js代码后css写的html根元素大小并没有生效,不知道这是怎么回事。

上面的js是一种解决方案,还有另一种

二、html根元素

html{
font-size: calc(100vw/6.5)
}

亲测这个方法有效,但是不知道原理是什么

地址:https://blog.csdn.net/qq_31659129/article/details/93898384?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

原文地址:https://www.cnblogs.com/lyt0207/p/12350525.html

时间: 2024-11-05 20:43:07

移动端布局,字体使用rem不生效问题的相关文章

移动端布局之路-----rem布局

rem基础 rem单位 rem (root em)是一个相对单位,类似于em,em是父元素字体大小. 不同的是rem的基准是相对于html元素的字体大小. 比如,根元素(html)设置font-size=12px; 非根元素设置width:2rem; 则换成px表示就是24px. /* 根html 为 12px */ html { font-size: 12px; } /* 此时 div 的字体大小就是 24px */ div { font-size: 2rem; } rem的优势:父元素文字大

超好用的移动端布局自适应大小rem判断js文件及超过一定高度回到顶部按钮代码

//以下代码放到一个adapt.js文件当中 (function (doc, win) {   var docEl = doc.documentElement,     resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',     recalc = function () {       var clientWidth = docEl.clientWidth;       if (!clientWi

精通移动端布局 - 概念篇 -

本文大多数的内容基本都是从多篇博客或相关文章中进行筛选,提炼出来,原本我也想用我匮乏的语言来描述,但是发现别人已经总结的更好了,所以...我还是乖乖的站在巨人的肩膀上吧~~ 完整目录: 基本概念    物理像素    设备独立像素    CSS 像素    PPI的概念    DPR的概念    缩放的概念    viewPort 的概念    viewport 渲染流程    Meta 标签说明 移动端布局实践    混合方式    REM 方式        响应式        JS自动换

精通移动端布局 - 实践篇 -

本文大多数的内容基本都是从多篇博客或相关文章中进行筛选,提炼出来,原本我也想用我匮乏的语言来描述,但是发现别人已经总结的更好了,所以...我还是乖乖的站在巨人的肩膀上吧~~ 完整目录: 基本概念    物理像素    设备独立像素    CSS 像素    PPI的概念    DPR的概念    缩放的概念    viewPort 的概念    viewport 渲染流程    Meta 标签说明 移动端布局实践    混合方式    REM 方式        响应式        JS自动换

移动端布局rem em

1.概念 em作为font-size的单位时,其代表父元素的字体大小,em作为其他属性单位时,代表自身字体大小 rem作用于非根元素时,相对于根元素字体大小:rem作用于根元素字体大小时,相对于其出初始字体大小 优缺点:em就是为字体和行高而生的,有些时候子元素字体就应该相对于父元素,元素行高就应该相对于字体大小:而rem的有点在于统一的参考系 2.Rem布局原理 rem布局的本质是等比缩放,一般是基于宽度 3.比Rem更好的方案 vw -- 视口宽度的 1/100:vh -- 视口高度的 1/

rem与移动端布局

移动端布局痛点在:兼容各个分辨率的移动设备,同样是手机,iPhone4-iPhoneX分辨率范围就已经很广:如果使用px进行布局,显然会出现问题: 常见的像素单位px,em,rem中,em是相对于父元素font-size的单位,个人认为在使用中,em会比较混乱:rem相对的是根元素.HTML,便于根据屏幕分辨率进行布局: 目前移动端布局采用的方式:  “横向百分比 + 纵向rem”,同时使用flex布局,媒体查询: https://www.cnblogs.com/ysshuai/p/669433

vw结合rem实现移动端布局

继上一篇<媒体查询结合rem实现移动端布局>的改进! 还是以昨天写的页面为例 上一回说到了媒体查询结合rem做移动端布局,步骤如下 首先设置媒体查询,确定html中font-size值的变化 @media all and (max-width:320px){ html{font-size:12px;} } @media all and (min-width:321px) and (max-width:375px){ html{font-size:14px;} } @media all and

移动端布局解决方案+神器

godcss 移动端布局终极解决方案+神器--- 让移动端布局开发更加容易 http:/www.github.com/godcss/ 介绍 godcss不是一个库,也不是一个框架.它是一个移动端布局开发解决方案.使用godcss可以让移动端布局开发更容易. 使用动态的HTML根字体大小和动态的viewport scale. 遵循视觉一致性原则.在不同大小的屏幕和不同的设备像素密度下,让你的页面看起来是一样的. 不仅便捷了你的布局,同时它使用起来异常简单.可能你会说 talk is cheap,s

移动端适配方案以及rem和px之间的转换

背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 1)首先,选取一款手机的屏幕宽高作为基准(以前是iPhone4的320×480,现在更多的是iphone6的375×667). 2)对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对iphone6而言: