rem设计方案

本文介绍了一种基于REM单位的响应式布局方法,适用于所有移动端设备。通过动态调整HTML字体大小,确保不同屏幕尺寸下内容的清晰显示。讨论了布局、图片、文字大小的最佳实践,强调了flex布局的重要性。

找到最大尺寸 720px

考虑问题 屏幕缩小是=时尺寸的问题:让HTML的font-size是一个动态值

(function (window, document) {

    var viewWidth = 750;
    var pick = viewWidth / 100;
    var mode = "resize";

    function change() {
        var view = document.documentElement.clientWidth || window.innerWidth;
        // 如果视图窗口 宽度大于 720px
        if (view >= 750) {
            //那么设置 html 的font size 为100px
            document.getElementsByTagName("html")[0].style.fontSize = 100 + "px";
            return;
        }
        document.getElementsByTagName("html")[0].style.fontSize =
            view / pick + "px";
    }
    window.addEventListener(mode, change, !1);
    window.document.addEventListener("DOMContentLoaded", change, !1);
})(window, document);

一套代码一个布局适用所有移动端

1.设计时,以最大像素为基础 768px,那么所有低于768的屏幕都适配
2.整体布局默认不设置宽度:默认100%
3:父元素一半不设置高度,有子元素撑起来
4.图片设置100%宽度
5.布局用flex  不用 width:100% float
6.文字大小用rem
在使用rem方案的时候,设计师设计尽量最大的页面效果图,例如720像素的基本可以适应所有的移动端的设备

整体布局默认是不设置宽度的,就直接让它100%,铺满整个屏幕就OK了
小布局都是rem为单位的,大于720像素的时候,没有变化,但是一旦小于720像素的时候,等比例的缩放,这点跟移动端不考虑放大,考虑缩小的原则是一致的
图片只设置width:100%,其余不用设置,自适应盒子的大小
文字依然以rem为单位,等比例的放大,缩小
所有的布局均使用flex布局来用,不再使用width百分比,float布局了

### REM 自适应布局实现方案 REM 是一种基于根字体大小(`html` 或 `root` 的字体大小)来设置其他元素尺寸的单位。通过动态调整根字体大小,可以轻松实现页面在不同设备上的自适应效果。 #### 动态计算根字体大小 为了使页面能够根据不同屏幕宽度自动调整比例,通常会利用 JavaScript 来动态修改 HTML 元素的字体大小。以下是常见的实现方法: ```javascript function setRemUnit() { const html = document.documentElement; const width = html.clientWidth; // 获取视口宽度 const rem = (width / 10); // 假设设计稿宽为750px,则每1rem等于75px html.style.fontSize = `${rem}px`; // 设置HTML的font-size } setRemUnit(); // 初始化 window.addEventListener('resize', setRemUnit); // 当窗口改变时重新计算 ``` 上述代码的核心逻辑在于将视窗宽度映射到根字体大小上[^3]。这样,所有的子元素都可以按照这个基础单位进行缩放。 #### 使用媒体查询辅助 尽管 REM 可以很好地解决大部分问题,但在某些特殊场景下可能还需要配合 CSS 媒体查询进一步微调样式: ```css /* 默认情况 */ body { font-size: 16px; } @media screen and (max-width: 768px){ body{ font-size: 14px; } } ``` 这种做法可以在特定断点处强制应用不同的视觉表现[^2]。 #### 结合Flexbox/Grid增强体验 现代前端开发中推荐结合 Flexbox 和 Grid Layout 技术共同构建灵活且强大的布局体系。这些技术可以帮助开发者更高效地管理复杂结构下的间距、排列等问题[^4]。 --- ### 注意事项 - **性能考虑**: 频繁触发重绘可能会带来性能开销,在实际项目里需谨慎处理 resize 事件频率。 - **兼容性测试**: 虽然主流浏览器均支持 REM 单位,但仍建议针对目标受众群体做充分验证[^5]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值