Web移动前端开发-——rem+less+媒体查询,rem+flexble.js+媒体查询



实际开发搞搞起来!!!!

rem适配方案

媒体查询+rem+less

基础知识铺垫

  • 第一步,我们需要拿到设计稿,安装设计稿的要求来设置一个合适的html字体大小。
  • 第二步,计算元素大小的取值 页面rem = 页面元素值(设计稿) / (屏幕的宽度/划分的份数)
  • (屏幕的宽度/划分的份数) = html大小
  • 这个算法你也不需要太纠结,按照这个来就是

最后终结一下:

  1. 首先我们选一套标准尺寸 750为准
  2. 我们用屏幕尺寸 除以 我们划分的份数 得到了 html 里面的文字大小 但是我们知道不同屏幕下得到的文字大小是不一样的 */
  3. 页面元素的rem值 = 页面元素在 750像素的下px值 / html 里面的文字大小 */

代码实例:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        @media screen and (min-width: 320px) {
            html {
                font-size: 21.33px;
            }
        }

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

        div {
            width: 2rem;
            height: 2rem;
            background-color: pink;
        }
        /* 1. 首先我们选一套标准尺寸 750为准
        2. 我们用屏幕尺寸 除以 我们划分的份数 得到了 html 里面的文字大小 但是我们知道不同屏幕下得到的文字大小是不一样的 */
        /* 3. 页面元素的rem值 =  页面元素在 750像素的下px值 / html 里面的文字大小 */

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

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

        div {
            width: 2rem;
            height: 2rem;
        }
    </style>
</head>

<body>
    <div></div>
</body>

</html>

仿苏宁首页

方案是单独写页面,技术是 rem+媒体查询+less,设计稿是750的

以下是部分的核心代码,

关于样式的初始化,我就不多强调了,设置视口标签,引入normalize.css ,设置 body样式,链接高亮等。注意一下细节问题,一个less中可以引入另一个less,这种使用方法在后期的node开发很重要---(@import "common";)

+++
// common.lss设置公共的样式,给站点里的所有页面都设置一个方便很多了
// 设置常见的屏幕尺寸 修改里面的html文字大小

//设置相关的不同的媒体适配html大小,根据不同的屏幕尺寸

/*强调以下,由于不同的屏幕下字体的大小不一样,为了保证可以达到等比例的缩放,我们需要给屏幕划分相同的份数*/
a {
    text-decoration: none;
}
// 一定要写到最上面,代码执行从上到下,你要写在上面
// 在pc端上打开的时候限定50px
html {
    font-size: 50px;
}
// 我们此次定义的划分的份数 为 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;
    }
}

body {
    min-width: 320px;
    width: 15rem;
    margin: 0 auto;
    line-height:?1.5;
    font-family:?Arial,Helvetica;
    background:?#F2F2F2;
}
+++

index.less

// 页面元素rem计算公 = (页面元素的px) / (html 字体大小 50)
// 小提问等你来回到,为什么这里是是50?50哪儿蹦出来的,我们只是知道设计稿的宽度是750
// search-content
@baseFont: 50;
.search-content {
    display: flex;
    /*我们也还是使用了flex布局*/
    position: fixed;
    top: 0;
    left: 50%;
    /*注意一下这里的居中对齐,固定定位的盒子,最好使用translateX来实现居中*/
    transform: translateX(-50%);
    width: 15rem;
    height: 88rem / @baseFont;
    background-color:#FFC001;
    .classify {
        width: 44rem / @baseFont;
        height: 70rem / @baseFont;
        margin: 11rem / @baseFont 25rem / @baseFont 7rem / @baseFont 24rem / @baseFont;
        background: url(../images/classify.png) no-repeat;
        // 背景缩放,你也要掌握清楚
        background-size: 44rem / @baseFont 70rem / @baseFont;
    }
    .search {
        flex: 1;
        input {
            // 注意一下这里的outline,这个是设置去掉蓝色边框
            outline: none;
            width: 100%;
            border: 0;
            height: 66rem / @baseFont;
            border-radius: 33rem / @baseFont;
            background-color:#FFF2CC;
            margin-top: 12rem / @baseFont;
            font-size: 25rem / @baseFont;
            padding-left: 55rem / @baseFont;
            color: #757575;
        }
    }
    .login {
        width: 75rem / @baseFont;
        height: 70rem / @baseFont;
        line-height: 70rem / @baseFont;
        margin: 10rem / @baseFont;
        font-size: 25rem / @baseFont;
        text-align: center;
        color: #fff;

    }
}
+++
.banner {
    width: 750rem / @baseFont;
    height: 368rem / @baseFont;
    // 注意一下盒子里面的图片也跟着变化
    img {
        width: 100%;
        height: 100%;
    }
}
+++

flexible+rem+less

这个是手机淘宝 团队写的一个适配库 ,我们不在需要写媒体查询了。

注意一下这里我们省去了less,我们直接写css。我们使用了一个vs上的一个插件,cssrem快速的转化我们的单位代码,注意一下修改它的配置,这个的好处就是我们不需要再用less除来除去咯

以下是部分的核心代码,完整的项目请在github上链接我,别忘了给我 ” 小星星“哦

@media screen and (min-width: 750px) {
    html {
        font-size: 75px!important;
        /* width: 75px; */
    }
}

/* search-content */

.search-content {
    display: flex;
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 10rem;
    height: 1.173333rem;
    background-color: #FFC001;
}

原文地址:https://www.cnblogs.com/BM-laoli/p/12367531.html

时间: 2024-08-26 22:40:07

Web移动前端开发-——rem+less+媒体查询,rem+flexble.js+媒体查询的相关文章

前端开发环境之GRUNT自动WATCH压缩JS文件与编译SASS文件

前端开发环境之GRUNT-JAVASCRIPT任务运行器 前言: 1.sass编译为css文件,早先时刻写css,后来看了sass挺不错的,于是在新的项目中开始使用上了sass. 原方法: ①安装ruby ②编译sass文件(eg:style) sass style.scss style.css ③监控文件/文件夹的变化来自动编译sass文件 sass --watch style.scss:style.css #file sass --watch cssFilePath            

移动web页面前端开发总结

移动web在当今的发展速度是一日千里,作为移动领域的门外汉,在这段时间的接触后,发现前端开发这一块做一个小小的总结. 1.四大浏览器内核 1.Trident (IE浏览器) :因为在早期IE占有大量的市场份额,所以以前有很多网页是根据这个Trident的标准来编写的,但是实际上这个内核对真正的网页标准支持不是很好,同时存在许多安全Bug. 2.Gecko:( FireFox )优点就是功能强大.丰富,可以支持很多复杂网页效果和浏览器扩展接口,缺点是消耗很多的资源,比如内存. 3.Webkit:

Web前端开发需要学什么语言?

前端框架一般指用于简化网页设计的框架,比如,jquery,extjs,bootstrap等等,这些框架封装了一些功能,比如html文档操作,漂亮的各种控件(按钮,表单等等). Web前端开发需要学什么语言?Web前端开发主要学习html.css.js.jquery等等,除了学习开发语言,还要为网站上提供的产品和服务实现一流的Web界面,优化代码并保持良好兼容性; Web前端表现层及与前后端交互的架构设计和开发; 配合后台开发人员实现产品界面和功能; 利用各种Web技术模拟开发产品原型; Web新

在做APP前端开发时应注意的一些问题

在做APP前端开发时应注意的一些问题 在整个app开发流程中,app前端开发是一个必不可少的环节,也是一个在app开发过程中重量级的角色.说到这,那么在app应用的前端开发中,又要注意什么问题呢?一.什么是app软件前端开发 App前端开发是移动前端开发中的一个方面,主要是指用户能够看到和接触到的app层面,比如app客户端界面,包括ios客户端和安卓客户端界面. App前端开发使用的技术是html+css+js,同时移动软件前端开发还需要基于PhoneGap等开发平台调用手机核心功能接口(包括

【异周话题 第 16 期】2018年,你最期待的前端开发技术有哪些?

[异周话题 第 16 期]2018年,你最期待的前端开发技术有哪些?话题背景2017年已经过去,2018年如约而至.2017年在前端领域里,react已经逐渐占据主流,Angular 发布了 v4 以及 v5,Vue.js 继续流行:谷歌也宣布PWA将获得与安卓原生应用同等的待遇与权限,PWA将会得到迅速的普及.微软开发的TypeScript也逐渐得到关注,angular已经开始使用typeScript进行开发,react和vue也进一步加深对typeScript的支持.在过去的一年里前端领域的

px em rem在WEB前端开发中的区别

我们都知道基于像素的字体大小所用的单位是px,但是随着响应式设计的不断火热,基于相对字体大小的单位em变开始流行起来.当然,rem也在Web前端开发人员讨论如何更好设置字体大小的讨论话题之列.是不是需要用em或者是rem来替换掉px在前端开发中进行使用呢? 为什么我们需要使用相对字体大小呢? 或许我们最能直接想到的一点就是它关于CSS3的一些东西.很好理解的是它是一种字号计算方式,尤其是当你在为多种分辨率进行字号计算的时候.想想要在手机上实现字体变大或者变小的时候,你不得不要反复重新计算对象的字

入门书籍 web前端开发最佳实践

高效web前端开发  book PageSpeed  出自google公司  是一款  免费的工具  性能分析 Timeline网页交互  和渲染  所要花费的时间 Profile谁  可以查看网页cpu以及内存占有的情况报告 Audits  中提供了各种资源及配置的优化建议和未使用的css规则的列表 代码的压缩 文本服务器开启Gzip压缩. UglifyJs  不仅仅是一个压缩工具,同事具有JS语法分析和代码美化工能 图片压缩工具  以在线工具居多  TinyPNG  压缩  PNG格式图片.

拿到十份互联网公司Offer,他是怎样学好web前端开发的?

Web前端工程师是近几年的新兴职业,也是目前火爆而且高薪的职业.不同的公司也有不同的叫法,比如:网页界面开发,网站设计等,要学好web前端开发,需要掌握什么方法与技巧? 一.Div和Table 这个是最简单的,也是最基础的.要熟练掌握div.form table.ul li .p.span.font这些标签,这些都是最常用的,特别是div和table,div用于布局.table也可以用于布局,但是不灵活,基本 table是用来和数据打交道. 二.CSS 这里说的css不包括css3,一般我们看到

web前端开发 初学者 学习路径图

      第一阶段   web前端工程师课程 HTML语句,HTML页面结构.css语法.style属性.link和style标签.id属性.等HTML语句中的相关属性: 通过Dreamweaver制作出跨越平台限制和跨越浏览器兼容性的页面,掌握Dreamweaver成为Web前端工程是的关键. 浏览器兼容性问题处理:XHTML与CSS校验,XHTML校验器,CSS校验器:解决如:Chrome.Safari.firefox.opera 等主流浏览器的兼容问题. 第二阶段 WEB前端移动端+响应