(精中求精) rem适配布局

rem适配两种方案——实战篇 用屏幕总宽度/划分等份数=html字体大小1rem=html字体大小页面元素rem计算公式:页面元素的px / html字体大小。 阅读详情

1.适配导读:

什么是适配布局?与flex或者流式布局又有什么区别?

所谓的适配布局,是让页面盒子的高度,宽度,内外边距,边框大小,文字的大小,定位的元素位置等能够根据屏幕宽度自动改变大小和位置,从而达到对不同的屏幕都能够做到最完美的展示,这就是rem适配布局的优秀地方。

flex和流式布局,主要针对盒子的宽度,仅能够做到宽度自适应屏幕,但是存在高度无法改变的缺陷,rem正好补全这一点。

以后的布局,不会是只用flex或者只用流式布局、rem布局,而是混合布局,flex布局做排版,rem做自适应屏幕。

最后的最后我会放上苏宁的案例,供大家理解flex+less+rem布局的完美

2.适配布局的方法:

1.rem + less +媒体查询

2.flexible.js + less +rem

本次重点在第一种方法

3.适配布局基础知识导读

1.初识rem em

1.rem 与 em ?

为什么放一块讲? rem 和 em都是相对单位,不同的地方在于 rem相对html的字体大小来确定 1rem = html的font-size em根据自身,如果自身没有设置字体大小,那么就会寻找最近具有字体大小的父盒子

2.为什么用rem

正是因为rem只根据html的字体大小有关,所以只要在不同的屏幕下,只要更改html的字体大小,就可以控制1rem = 多少,将盒子的高宽等 用px的地方都改为rem, 达到改变html字体大小从而改变整个页面的大小,达到适配效果。

2.html的字体大小的确定

rem的难点在于如何确定不同屏幕宽度下的html的字体大小问题?

先讲思路:

1.根据设计稿,将屏幕划分成10 / 15 /20 / 30 / 40份,选一个自己喜欢的,或者领导要求的份数

2.假设此时设计稿是750px 我们将设计稿分为15份 那么 每一份的大小为 50px

3.所以此时 我们只需要设置在750屏幕及以上,字体大小为50px

4.确定好份数后, 750px下,html字体大小为 50 450px下呢?

5.450px下 html字体大小 450 /15 = 30px

6.540px ? 540 / 15 = 36px

7.总结,html字体大小 = 屏幕宽度 / 确定划分的份数

下面列出几个问题?

为什么html字体大小 = 屏幕宽度 / 确定划分的份数?

因为我们要实现等比例的缩放 所谓的等比例,是屏幕宽度 与 html字体大小的比例 永远是 份数 : 1 这样才能够实现等比缩放。

如果750px下 字体大小为 50px 500px 屏幕下 字体大小为 20px 合适吗? 缩放也不会同步吧!

3.媒体查询

1.语句规范

1.如果界面的盒子摆放位置不变,那么媒体查询写在css中,如果是内嵌式,需要写在style内部 如果是外链式,需要写在css文件里

规范:

@media screen(手机,平板,pc端)/all (全部)/print(打印机) and (条件语句)

内容虽多,但是需要我们记住的就是下面这种类型!

@media screen and (max-width:540px)

2.如果界面的盒子位置需要改变,那么就需要写不同的css样式,媒体查询此时作用就是通过查询屏幕宽度,选择不同的样式 此时的书写方式

<link rel="stylesheet" href="./style780.css" media=" screen and (min-width:780px)">

2.媒体查询通用代码:

主要适配的屏幕宽度有:320px 360px 375px 384px 400px 414px 424px 480px 540px 720px 750px

@media screen and (min-width: 320px) {
  html {
    font-size: 21.33333333px;
  }
}
@media screen and (min-width: 360px) {
  html {
    font-size: 24px;
  }
}
@media screen and (min-width: 375px) {
  html {
    font-size: 25px;
  }
}
@media screen and (min-width: 384px) {
  html {
    font-size: 25.6px;
  }
}
@media screen and (min-width: 400px) {
  html {
    font-size: 26.66666667px;
  }
}
@media screen and (min-width: 414px) {
  html {
    font-size: 27.6px;
  }
}
@media screen and (min-width: 424px) {
  html {
    font-size: 28.26666667px;
  }
}
@media screen and (min-width: 480px) {
  html {
    font-size: 32px;
  }
}
@media screen and (min-width: 540px) {
  html {
    font-size: 36px;
  }
}
@media screen and (min-width: 720px) {
  html {
    font-size: 48px;
  }
}
@media screen and (min-width: 750px) {
  html {
    font-size: 50px;
  }

4.less使用

1.less介绍

less是帮助我们书写css的工具 帮助我们简化书写css样式的复杂性,最直接的就是不用再书写很长的父级变量名 而且less中可以定义变量,后期更易于维护代码。如若将颜色 字体大小 份数 定义为变量,那么我们只需要改变变量的值就可以实现全局的更改。

2.less的使用

后缀 .less

在less中写代码,后代写在父亲的大括号内 如果想要用结构伪类 伪元素,需要在前面加&

使用如图:

要求:第一个p 颜色是红色 第二个p里面的a鼠标经过变成红色 box里面的文字是绿色

html结构:
<body>
    <div class="box">
        <p>
            我是第一个p标签;
        </p>
        <p>
            <a href="#">我是第二个p标签</a>
        </p>
        <div class="box2">
            hello
        </div>
    </div>
</body>
less语句:
.box {
   p {
        &:first-child {
            color: red;
        }

        &:nth-child(2) {
            a {
                color: blue;

                &:hover {
                    color: red;
                }
            }
        }
    }

    .box2 {
        color: green;
    }
}

以上就是rem适配布局的全部基础内容

4.苏宁移动端布局

1.搭建文件夹结构

 

2.index.html中引入normalize.css基础样式,设置视口标签

<meta name="viewport" content="width=device-width, user-scalable=no, 
    initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

 <link rel="stylesheet" href="./css/normalize.css">

3.less中书写媒体查询

通常我们把媒体查询写在common.less中

// 设置常见的屏幕尺寸 修改里面的html文字大小
a {
    text-decoration: none;
    color: #333;
}

// 我们此次定义的划分的份数 为 15
@no: 15;

// 320
@media screen and (min-width: 320px) {
    html {
        font-size: (320px / @no);
    }
}

// 360
@media screen and (min-width: 360px) {
    html {
        font-size: (360px / @no);
    }
}

// 375 iphone 678
@media screen and (min-width: 375px) {
    html {
        font-size: (375px / @no);
    }
}

// 384
@media screen and (min-width: 384px) {
    html {
        font-size: (384px / @no);
    }
}

// 400
@media screen and (min-width: 400px) {
    html {
        font-size: (400px / @no);
    }
}

// 414
@media screen and (min-width: 414px) {
    html {
        font-size: (414px / @no);
    }
}

// 424
@media screen and (min-width: 424px) {
    html {
        font-size: (424px / @no);
    }
}

// 480
@media screen and (min-width: 480px) {
    html {
        font-size: (480px / @no);
    }
}

// 540
@media screen and (min-width: 540px) {
    html {
        font-size: (540px / @no);
    }
}

// 720
@media screen and (min-width: 720px) {
    html {
        font-size: (720px / @no);
    }
}

// 750
@media screen and (min-width: 750px) {
    html {
        font-size: (750px / @no);
    }
}

4.index.less中设置body基础

body {

  *width*: 15rem;

  *min-width*: 320px;

  *font-family*: Arial, Helvetica;

  *margin*: 0 auto;

}

5.代码结构模块划分

 

6.代码书写

index.less代码:

body {
    width: 15rem;
    min-width: 320px;
    font-family: Arial, Helvetica;
    margin: 0 auto;
}

@basefont : 50px;

// 顶部搜索模块
.search-content {
    display: flex;
    position: fixed;
    top: 0;
    left: 50%;
    -webkit-transform: translate(-50%);
    transform: translate(-50%);
    height: (88rem / @basefont);
    width: 15rem;
    background-color: #FFC001;

    .classify {
        width: (44rem / @basefont);
        height: (70rem / @basefont);
        background: url(../images/classify.png) no-repeat;
        background-size: (44rem / @basefont) auto;
        margin: (11rem / @basefont) (25rem / @basefont) (7rem / @basefont) (24rem / @basefont);
    }

    .search {
        flex: 1;

        input {
            height: (66rem / @basefont);
            width: 100%;
            border: 0;
            outline: 0;
            border-radius: (33rem / @basefont);
            margin-top: (12rem / @basefont);
            background-color: #FFF2CC;
            font-size: (25rem / @basefont);
            padding-left: (55rem / @basefont);
            color: #757575;
        }
    }

    .login {
        width: (75rem / @basefont);
        height: (70rem / @basefont);
        background-color: blue;
        font-size: (25rem / @basefont);
        color: #fff;
        text-align: center;
        line-height: (70rem / @basefont);
        margin: (10rem / @basefont);
    }
}

// banner模块
.banner {
    img {
        width: 100%;
    }
}

//ad模块
.ad {
    display: flex;

    a {
        flex: 1;

        img {
            width: 100%;
        }
    }
}

//nav模块
.nav {
    display: flex;
    flex-wrap: wrap;

    a {
        flex: 20%;
        display: flex;
        flex-direction: column;
        align-items: center;
        font-size: (25rem / @basefont);

        span {
            margin: (10rem / @basefont) 0 (20rem / @basefont);
        }


        img {
            width: (82rem / @basefont);
        }
    }
}

index.html结构

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, user-scalable=no, 
 	initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <link rel="stylesheet" href="./css/normalize.css">
    <link rel="stylesheet" href="./css/common.css">
    <link rel="stylesheet" href="./css/index.css">
    <title>suning </title>
</head>

<body>
    <!-- 顶部搜索模块 -->
    <div class="search-content">
        <a href="#" class="classify"></a>
        <div class="search">
            <!-- action 必需的 action 属性规定当提交表单时,向何处发送表单数据。 -->
            <form action="#">
                <input type="search" value="厨卫保暖季 哒哒哒">

            </form>

        </div>
        <a href="#" class="login">登录</a>
    </div>
    <!-- banner模块 -->
    <div class="banner">
        <a href="#">
            <img src="./uploads/banner.gif" alt="">
        </a>
    </div>
    <!-- 广告部分 -->
    <div class="ad">
        <a href="#"><img src="./uploads/ad1.gif" alt=""></a>
        <a href="#"><img src="./uploads/ad2.gif" alt=""></a>
        <a href="#"><img src="./uploads/ad3.gif" alt=""></a>
    </div>
    <!-- nav模块 -->
    <div class="nav">
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
        <a href="#">
            <span><img src="./uploads/nav1.png" alt=""></span>
            爆款手机
        </a>
    </div>
</body>

</html>

最后补充:

1.需要下载的插件:easyless less保存自动生成css文件

2.less中引入其他less文件 @import ‘文件名.less’ 要点 一定要有空格,文件名要用引号包裹

3.剩余的flexible.js 使用 下次再做补充

移动端h5自适应rem适配最佳方案 最佳移动端h5自适应rem适配方案,灵活主流做法 阅读详情

相关推荐

关于rem的适配前端页面响应式开发必备技巧

????作者小三是刚刚毕业不久全栈工程师,写的技术文章基本上是学习过程中笔记整理而来,大家看了之后如果喜欢可以给小弟点点赞哦。 ????例外小弟还有个程序员交流群,欢迎各位大佬来摸鱼哈。点击加群 我们作为前端初学者来说,是不是有一个疑惑,我们电脑屏幕大,但是手机屏幕小,那我在PC端页面写好的东西到了手机端岂不是很难看? 所以!我在这里将会给你们介绍关于rem的适配方案 关于rem的适配方案? 适配的目的是什么? 原理是什么 怎么做? 带着这三个疑问,我们一起来看看rem 适配的目的是什么?

881

rem原理及使用

rem原理及使用 rem的定义: rem是相对长度单位。是根元素(html)的font-size值的的一个css单位(适配单位rem)。 如:一个页面html中设置了font-size的值,使用rem即为这个已设置值的倍数。 eg: html设置font-size: 20px; 可知1rem=20px,使用时即可计算转化为rem的倍数。 html{ font-size: 20px; } <div style="font-size:

A_seeker的博客 2万+

车辆TBOX科普 第64次 TBOX系统集成测试与文档编写

汽车电子开发中,TBOX作为核心网关面临独特挑战:需处理多网络接口、满足严苛安全标准并确保10年以上可靠性。项目文档是开发流程的核心资产,必须与编码同步更新,构建从需求到测试的完整闭环。系统集成测试需分层进行,结合硬件在环测试和自动化工具,并严格管理缺陷。文档与测试深度协同,通过追溯矩阵确保每个需求都被覆盖验证。最终交付不仅是软件包,更是一套包含完整验证报告的信任体系。这种严谨的工程纪律,是将代码转化为车规级可靠产品的关键保障。

IT深耕十余载,大道之简 1317

rem 适配

rem 适配

WY_ALA的博客 1291

Cluster Computing投稿

在overleaf中新建picins.sty文件,该文件是导入的包在.tex文件中添加以下内容\usepackage{picins}%实现作者简介%下边这块有几个人复制几段\vspace{0\baselineskip} %这一行控制作者间隔,可视情况改数字!!!!!!!!

这里是萤石ym的学习路途,努力搬砖! 5533

LM Studio Bionic:本地AI智能体从部署到实战完整指南

AI智能体作为能够自主规划、执行多步任务的人工智能系统,其核心原理在于结合大语言模型的推理能力与工具调用机制。通过状态保持和任务分解算法,智能体实现了从单次问答到持续协作的技术跃迁。在工程实践中,这种架构显著降低了复杂任务自动化的门槛,特别适用于数据敏感场景和定制化需求。以Tesla V100等专业硬件为例,本地部署能充分发挥其大显存优势,支持更高精度的模型量化格式。在实际应用层面,智能体可无缝集成到代码审查、文档生成等开发工作流中,而LM Studio Bionic通过统一界面整合了模型服务、任务规划器等

weixin_29053695的博客 648

移动WEB开发之rem适配布局

本文深入探讨Rem布局与Less预处理器的基础知识,涵盖Rem单位的使用、媒体查询、Less变量与嵌套、运算及编译技巧。通过实际案例,展示如何利用Rem和Less实现响应式布局,提升开发效率与代码可维护性。

m0_73941339的博客 1433

CTF-MISC:BUUCTF练习汇总(1-25题,不包括签到题)

解题思路:该题比较基础,wireshark打开过滤HTTP流量包,追踪HTTP流后可以看到base64密文,解密后得到jpg图片,打开图片即可看到flag,在线OCR识别即可提取出flag值。解题思路:zip压缩包解压需要密码,图片中的盲文为解压的密码,解压后得到MP3音频文件,内容为典型的摩斯密码;解题思路:由题目可以为LSB隐写,使用StegSolve打开图片查看最低有效位得到PNG信息,另存为图片后发现是二维码,扫描后即可得到flag。对应摩斯电码为:-.-. - …-. .-- .–. . …

燕麦葡萄干的博客 1万+

rem适配布局

rem布局及其相关知识点

2302_79866622的博客 2085

基于Simulink的PID控制汽车巡航控制系统建模与仿真

汽车巡航控制系统(Cruise Control System)是一种通过自动调节发动机输出功率来维持车辆以恒定速度行驶的技术。这种系统能够减轻驾驶员在长途驾驶中的疲劳,同时提高燃油经济性和行车安全性。PID(比例-积分-微分)控制器因其结构简单、性能稳定且易于实现而被广泛应用于汽车巡航控制系统中。本项目旨在通过MATLAB/Simulink平台设计和验证一个基于PID控制的汽车巡航控制系统,重点研究PID参数调优方法、系统动态响应特性以及稳态误差消除能力。

MHD0815的博客 196

【AI智能体】Dify 基于知识库搭建智能客服问答应用详解

Dify 基于知识库搭建智能客服问答应用详解

congge 6928

【Web前端】rem适配布局

媒体查询 () 是CSS3新语法。使用@media查询,可以针对不同的媒体类型定义不同的样式当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面目前针对很多苹果手机、Android手机,平板等设备都用得到多媒体查询@media 可以针对不同的屏幕尺寸设置不同的样式上面提到使用 rem 时 根元素(html) 的文字大小是写死的,而使用媒体查询(@media)就能根据不同的设备来更改根元素(html)的文字大小来适应不同的设备css-code;}

T_158327的博客 3308

手把手教你用 Cursor 写一个完整的 Web 应用(含前后端 + 部署)

本文介绍如何利用Cursor AI工具从零开发一个完整的全栈待办事项Web应用。文章针对开发者常见痛点——无法独立完成项目闭环,提供了一套AI驱动的全栈开发范式。通过Vue3+Node.js+MySQL技术栈,全程由Cursor自动生成项目架构、前后端代码、数据库设计,并解决联调、部署等关键问题。重点展示了如何用AI完成:项目规划与架构设计、后端接口开发、前端页面实现、跨域联调、打包优化及云端部署全流程。该方法将传统需要3-5天的开发工作压缩至1小时内完成,产出规范可上线的项目,特别适合想突破"碎

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 633

响应式布局之rem适配布局方案

rem适配布局有两种方案,一种是rem + 媒体查询 + Less技术,一种是使用 flexible.js。

HanyStill的博客 3288

基于STM32设计的数字电子秤

当前项目是采用采用STM32+称重模块+OLED实现了简单的电子秤项目,称重模块上采用24位的ADC芯片,精度较高。实现了称重,校准、去皮等功能。

1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

rem布局

媒体查询(Media Query)是CSS3新语法。使用 @media查询,可以针对不同的媒体类型定义不同的样式@media 可以针对不同的屏幕尺寸设置不同的样式(也就是响应式布局)当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面目前针对很多苹果手机、Android手机,平板等设备都用得到多媒体查询Less(Leaner Style Sheets 的缩写)是一门 CSS扩展语言,也成为CSS预处理器。

Gao_xu_sheng的博客 2111

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

移动端页面开发适配 rem布局原理

我们拿到的设计图一般是以640,750,1080分辨率为基准设计的,而现在的手机终端各式各样,分辨率不同,逻辑像素不同 ,适口不同,所以为了让我们的页面在每个设备上都可以良好的展示,那么就需要为这些设备做统一的处理,这个过程就称为移动端适配。需要知道的一些概念:物理像素(physical pixel)一个物理像素是显示器(手机屏幕)上最小的物理显示单元,可以理解为我们平时说的分辨率;设备独立像素(density-independent pixel)

风中追风 4991

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

聊聊rem适配布局

本篇文章将了解到rem布局的概念,以及完成一次rem适配布局体验

m0_58467275的博客 1159

20 【rem适配布局】

20 【rem适配布局】

DSelegent的博客 1389

REM适配方案--布局

页面布局 流式布局 适用页面特点:一般使用于–左侧固定+右侧自适应;左右固定宽度+中间自适应 通俗来讲容器百分比自适应 需求:左边宽高不变,右边宽度随着屏幕变化自适应 &lt;div class="box"&gt; &lt;div class="left"&gt;左边固定宽高,右边像液体一样流动&lt;/div&gt; &lt;div class="right...

weixin_41105030的博客 3309

10-CSS-rem适配布局

思考1. 页面布局文字能否随着屏幕大小变化而变化?2. 流式布局和flex布局主要针对于宽度布局,那高度如何设置?3. 怎么样让屏幕发生变化的时候元素高度和宽度等比例缩放?

... 4340

移动端布局之Rem和媒体查询适配布局

前言 媒体查询(Media Query)是CSS3新语法。 使用 @media 查询,可以针对不同的媒体类型定义不同的样式 @media可以针对不同的屏幕尺寸设置不同的样式 当重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面 Rem和媒体查询适配布局优点: 1.页面布局文字随着屏幕大小变化而变化 2.流式布局和flex布局主要针对于宽度和高度的设置 3.屏幕发生变化的时候元素高度和宽度等比例缩放 Rem rem (root em)是一个相对单位,类似于em,em是父元素字体大小 不

m0_60264901的博客 1097

关于rem布局和适配

之前项目中遇到的一些布局 1.伸缩布局 flex 2.流式布局 百分比 3.响应布局 媒体查询 (超小屏设备的时候:流式布局) 共同点:元素只能做宽度的适配,高度不能适配(排除图片)更好的适配方案rem:宽度和高度都能做到适配(等比缩放) rem布局 通过控制html上的字体大小去控制页面上所有已rem为单位的基准值控制尺寸 4.1 把页面上px单位转换成rem单位 4....

yyy_wj的博客 399
上一篇: js总结,基础篇
下一篇: 响应式布局总结
小羊卷
博客等级 码龄8年 175粉丝 32原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值