移动WEB开发之rem布局--苏宁首页案例制作(flexible.js)

news2024/11/18 3:38:48

简洁高效的rem适配方案flexible.js

手机淘宝团队出的简洁高效 移动端适配库

我们再也不需要在写不同屏幕的媒体查询,因为里面js做了处理

它的原理是把当前设备划分为10等份,但是不同设备下,比例还是一致的。

我们要做的,就是确定好我们当前设备的html 文字大小就可以了

比如当前设计稿是 750px, 那么我们只需要把 html 文字大小设置为 75px(750px / 10) 就可以

里面页面元素rem值: 页面元素的px 值 / 75

剩余的,让flexible.js来去算

github地址:amfe/lib-flexible: 可伸缩布局方案 (github.com)

1. 技术选型

方案:我们采取单独制作移动页面方案

技术:布局采取rem适配布局2(flexible.js + rem)

设计图: 本设计图采用 750px 设计尺寸

2. 搭建相关文件夹结构

3. 设置视口标签以及引入初始化样式还有js文件 

<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/index.css">

我们页面需要引入 这个js文件

在 index.html 中 引入 flexible.js 这个文件
<script src=“js/flexible.js”> </script>

4. body样式

body {
    min-width: 320px;
    max-width: 750px;
    /* flexible 给我们划分了 10 等份 */
    /* 就是理解成份数就对了,设定份数是15那就写15rem,是10那就是10rem,别想太多 */
    width: 10rem;
    margin: 0 auto;
    line-height: 1.5;
    font-family: Arial, Helvetica;
    background: #f2f2f2;
}

VSCode px 转换rem 插件 cssrem

 可以修改 html中的font-size的大小

这里注意的是采用了flexible.js,它算的是当前页面的尺寸,因此,我们要将大于750px的宽度改为750px

 

思路都是一样的,就是前一种需要在less中算出高宽,而这个是直接转换好了

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

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

    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <link rel="stylesheet" href="css/normalize.css">
    <link rel="stylesheet" href="css/index.css">
    <!-- 引入我们的flexible.js 文件 -->
    <script src="js/flexible.js"></script>
    <title>Document</title>
</head>

<body>
    <div class="search-content">
        <a href="#" class="classify"></a>
        <div class="search">
            <form action="">
                <input type="search" value="rem适配方案2很开心哦">
            </form>
        </div>
        <a href="#" class="login">登录</a>
    </div>
</body>

</html>

body {
    min-width: 320px;
    max-width: 750px;
    /* flexible 给我们划分了 10 等份 */
    /* 就是理解成份数就对了,设定份数是15那就写15rem,是10那就是10rem,别想太多 */
    width: 10rem;
    margin: 0 auto;
    line-height: 1.5;
    font-family: Arial, Helvetica;
    background: #f2f2f2;
}

a {
    text-decoration: none;
    font-size: .333333rem;
}


/* 这个插件默认的html文字大小 cssroot  16px */


/* 
img {
    width: 5.125rem;
    height: 4rem;
    width: 1rem;
    width: 1.093333rem;
    height: 1rem;
} */


/* 如果我们的屏幕超过了 750px  那么我们就按照 750设计稿来走 不会让我们页面超过750px */

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


/* search-content */

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

.classify {
    width: .586667rem;
    height: .933333rem;
    margin: .146667rem .333333rem .133333rem;
    background: url(../images/classify.png) no-repeat;
    background-size: .586667rem .933333rem;
}

.search {
    flex: 1;
}

.search input {
    outline: none;
    border: 0;
    width: 100%;
    height: .88rem;
    font-size: .333333rem;
    background-color: #FFF2CC;
    margin-top: .133333rem;
    border-radius: .44rem;
    color: #757575;
    padding-left: .733333rem;
}

.login {
    width: 1rem;
    height: .933333rem;
    margin: .133333rem;
    color: #fff;
    text-align: center;
    line-height: .933333rem;
    font-size: .333333rem;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]Python计算机毕业设计Django学生疫情防控信息填报系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【Java面试】说说你对ThreadLocal内存泄漏问题的理解

文章目录前置知识为什么会产生内存泄漏问题&#xff1f;如何解决内存泄露问题&#xff1f;为什么要使用弱引用&#xff1f;前置知识 讲解ThreadLocal的内存泄漏问题之前&#xff0c;首先得先知道什么是内存泄漏。 Memory overflow&#xff1a;内存溢出&#xff0c;没有足够的内…

第02章_MySQL环境搭建

目录第02章_MySQL环境搭建服务启动与停止登录MySQL查看版本退出MySQL1. MySQL操作1.1 MySQL的使用演示数据库查看所有的数据库创建数据库使用数据库查看数据库的创建信息删除数据库表格查看数据库的所有表格创建新的表格查看一个表的数据添加一条记录查看表的创建信息删除表格1…

FineReport地图数据图表-按钮控件

1. 概述 1.1 版本 报表服务器版本 功能变更 11.0 -- 1.2 应用场景 「按钮控件」可应用于填报、参数等场景中&#xff0c;添加按钮后&#xff0c;点击按钮可触发某些报表操作。如下图所示&#xff1a; 1.3 如何添加 1.3.1 填报控件 选中单元格后&#xff0c;点击右侧属性…

Python中的__init__.py的高级用法

刚开始学习编程&#xff0c;我们很少会关注这个文件&#xff0c;只知道一个目录中存在该文件&#xff0c;该目录就是一个package&#xff0c;不存在就是普通的目录&#xff0c;普通的目录在导入包时&#xff0c;pycharm并不会智能提示。 Python中每新建一个package都会默认生成…

使用VMware 16 安装中标麒麟 7

目录 1、下载中标麒麟7 2、虚拟机配置 3、NeoKylin7安装 1、下载中标麒麟7 百度网盘&#xff1a;百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可…

全网最牛最全面的全栈Jmeter性能测试之生成测试报告

结构 ps【文章末尾给大家留下了大量的福利】 测试计划 测试计划是顶级的层级⽬录的结构&#xff0c; 那么在这样的⽬录结构中&#xff0c;⾥⾯可以包含很多线程组 线程组 线程组我们可以简单的理解为postman测试⼯具⾥⾯的collection&#xff0c;那么在整体线程组⾥⾯&…

本地虚拟机linux中nginx搭建

nginx&#xff1a;主要管理服务器中的tomcat,将服务端接受的请求交给nginx来处理&#xff0c;分配给不同的tomcat处理&#xff0c;同时nginx根据每个服务器的性能来配置不同的权重,权重越大访问到的概率就越大&#xff0c;权重越小访问到的概率越低 安装nginx 1,在usr目录下创建…

个人网页设计成品DW静态网页 HTML网页设计结课作业 web课程设计网页规划与设计 Web大学生个人网页成品 web网页设计期末课程大作业

&#x1f389;精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业…

QGIS获取行政区geojson数据以及数据乱码修复

安装QGIS 1.下载 访问下面的地址&#xff0c;直接下载安装 https://qgis.org/zh-Hans/site/ 2.设置QGIS语言 点击Settings->Options 点击General&#xff0c;然后按图示选择对应选项。 点击确定&#xff0c;然后等待一会儿&#xff0c;关闭软件重新打开就好了。 安装Qu…

Matplotlib入门[07]——修改默认设置

Matplotlib入门[07]——修改默认设置 参考&#xff1a; https://ailearning.apachecn.org/Matplotlib官网 使用Jupyter进行练习 import numpy as np import matplotlib.pyplot as plt生成三角函数&#xff1a; x np.linspace(-np.pi, np.pi) c, s np.cos(x), np.sin(x)默认绘…

P3 PyTorch 维度变换

前言 参考 课时21 维度变换-2_哔哩哔哩_bilibili 目录&#xff1a; view unsqueeze squeeze Expand repeat 转置 contiguous Permute 例子一 view 作用&#xff1a; 重新调整Tensor的形状&#xff0c;通过shape&#xff0c;或size属性可以看出来 …

Maven从入门到精通

文章目录1.Maven简介1.1 传统项目管理状态分析1.2 什么是maven1.3 Maven的作用2.maven的安装与配置&#xff08;1&#xff09;maven的下载与安装&#xff08;2&#xff09;Maven目录结构&#xff08;3&#xff09;配置settings.xml&#xff08;4&#xff09;maven整合idea&…

chapter8——消抖技术

目录1.简介2.开关行为3.开关种类4.消抖5.消抖指南1.简介 在电子设备内两个金属触点随着触点的断开闭合便产生了多个信号&#xff0c;这就是抖动。“消抖”是用以确保在每一次断开或闭合触点时只有一个信号起作用的硬件设备或软件。机械开关和继电器触点通常由弹性金属制造&…

【RobotFramework】FOR循环应用

自动化测试过程中&#xff0c;如果我们想多次运行某段语句&#xff0c;且每次使用的值都不一样&#xff0c;那么我们就要使用到循环。 在Robot FrameWork中&#xff0c;循环使用到的关键字是FOR&#xff0c;常用见应用如下。 应用一&#xff1a; FOR ${变量} IN 参数1 参数2…

知识图谱-KGE-语义匹配-双线性模型-2019:RotatE

【paper】 RotatE: Knowledge Graph Embedding by Relational Rotation in Complex Space【简介】 本文是北大和加拿大的研究团队发表在 ICLR 2019 上的文章&#xff0c;提出了 RotatE&#xff08;Rotation Embedding&#xff09;&#xff0c;主要思想是将实体表示为复向量&…

Drupal9自定义module添加多个定时任务

drupal的自定义cron常见的就是hook_cron&#xff0c;具体做法参见&#xff1a; Drupal踩坑&#xff1a;在自定义module中添加cron job 这种方法只能一个module添加一个cron。如果想添加多个自定义的cron怎么办&#xff1f;使用hook_cronapi。 有两个模块提供 hook_cronapi&…

DeepLab V3学习笔记

DeepLab V3遇到的问题和解决方法相关工作DeepLab V3中的两种模型结构cascaded modelASPP model相对于DeepLab V2的优化Multi-grid MethodASPP的改进消融实验cascaded model消融实验ASPP model消融实验和其他网络的对比实验总结网络模型图遇到的问题和解决方法 对于DeepLab系列…

nginx使用配置(亲测自用)

文章目录一、作用二、案例1.动静分离将静态资源放入Nginx目录下2.负载均衡常见的几种负载均衡方式1) 轮询&#xff08;默认&#xff09;2&#xff09;weight3&#xff09;ip_hash4&#xff09;fair&#xff08;第三方&#xff09;5&#xff09;url_hash&#xff08;第三方&…

Flutter - Button样式及参数

Material 组件库中提供了多种按钮组件如ElevatedButton、TextButton、OutlineButton等&#xff0c;它们都是集成于ButtonStyleButton&#xff0c;所以他们大多数属性都和ButtonStyleButton一样。在介绍各个按钮时我们先介绍其默认外观&#xff0c;而按钮的外观大都可以通过属性…