移动WEB开发之rem布局--苏宁首页案例制作(技术方案1)

news2024/11/27 10:49:29

案例:苏宁网移动端首页

访问地址:苏宁易购(Suning.com)-家电家装成套购,专注服务省心购!

 1. 技术选型

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

技术:布局采取rem适配布局(less + rem + 媒体查询)

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

2. 搭建相关文件夹结构

3. 设置视口标签以及引入初始化样式 

<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">

4. 设置公共common.less文件

1. 新建common.less 设置好最常见的屏幕尺寸,利用媒体查询设置不同的html字体大小,因为除了首页其他页面也需要

2. 我们关心的尺寸有 320px、360px、375px、384px、400px、414px、424px、480px、540px、720px、750px

3. 划分的份数我们定为 15等份

4. 因为我们pc端也可以打开我们苏宁移动端首页,我们默认html字体大小为 50px,注意这句话写到最上面

5. 新建index.less文件

1. 新建index.less 这里面写首页的样式

2. 将刚才设置好的 common.less 引入到index.less里面 语法如下:

// 在 index.less 中导入 common.less 文件
@import “common”

3. 生成index.css 引入到 index.html 里

6. body样式

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

search-content模块制作 

 search模块制作

banner和广告模块制作

 nav部分制作

苏宁的做法是,把它固定死,宽度750px分5份

 

// 首页的样式less文件
@import url(common.less);
// @import 导入的意思 可以把一个样式文件导入到另外一个样式文件中
body {
    min-width: 320px;
    width:15rem;
    margin: 0 auto;
    line-height: 1.5;
    font-family: Arial,Helvetica;
    background: #F2F2F2;
}
// 页面元素rem计算公式:页面元素的px/html字体大小
// search-content
// 这里的50,是我们在750的页面下设置的
@baseFont:50;
.search-content{
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 15rem;
    height: (88rem/@baseFont);
    background-color: #FFc001;
    display: flex;
    .classify{
        width: (44rem/@baseFont);
        height: (70rem/@baseFont);
        background: url(../images/classify.png) no-repeat;
        // 背景缩放
        background-size:(44rem/@baseFont) (70rem/@baseFont);
        margin: (11rem/@baseFont) (25rem/@baseFont) (7rem/@baseFont) (24rem/@baseFont);
    }
    .search{
        flex: 1;
        input{
            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
.banner{
    width: (750rem/@baseFont);
    height: (368rem/@baseFont);
    img{
        width: 100%;
        height: 100%;
    }
}
// ad
.ad{
    display: flex;
    a{
        flex: 1;
        img{
            width: 100%;
        }
    }
}
// nav
nav{
    width: (750rem/@baseFont);
    a{
        width: (150rem/@baseFont);
        height: (140rem/@baseFont);
        float: left;
        text-align: center;
    }
    img{
        // margin值不能用在行内或者行内块去设置居中,另外,没有设置宽度的块级元素也不可以设置
        display: block;
        width: (82rem/@baseFont);
        height: (82rem/@baseFont);
        margin: (10rem/@baseFont) auto 0;
    }
    span{
        font-size: (25rem/@baseFont);
        color: #333;
    }
}

 

<!DOCTYPE html>
<html lang="en">
<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/index.css">
    <title>Document</title>
</head>
<body>
    <!-- 顶部搜索栏 -->
    <div class="search-content">
        <a href="#" class="classify"></a>
        <div class="search">
            <form action="">
                <input type="search" value="文字文字文字">
            </form>
        </div>
        <a href="#" class="login">登录</a>
    </div>
    <!-- banner部分 -->
    <div class="banner">
        <img src="upload/banner.gif" alt="">
    </div>
    <!-- 广告部分 -->
    <div class="ad">
        <a href="#"><img src="upload/ad1.gif" alt="" srcset=""></a>
        <a href="#"><img src="upload/ad2.gif" alt="" srcset=""></a>
        <a href="#"><img src="upload/ad3.gif" alt="" srcset=""></a>
    </div>
    <!-- nav模块 -->
    <nav>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
        <a href="#">
            <img src="upload/nav1.png" alt="" srcset="">
            <span>文字</span>
        </a>
    </nav>
</body>
</html>

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

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

相关文章

用 TensorFlow.js 在浏览器中训练一个计算机视觉模型(手写数字分类器)

文章目录Building a CNN in JavaScriptUsing Callbacks for VisualizationTraining with the MNIST DatasetRunning Inference on Images in TensorFlow.jsReferences我们在《在浏览器中运行 TensorFlow.js 来训练模型并给出预测结果&#xff08;Iris 数据集&#xff09;》中已…

数字源表如何测试MOS管?

MOSFET(金属—氧化物半导体场效应晶体管)是 一种利用电场效应来控制其电流大小的常见半导体器件&#xff0c;可 以 广 泛 应 用 在 模 拟 电 路 和 数 字 电 路 当 中 。 MOSFET可以由硅制作&#xff0c;也可以由石墨烯&#xff0c;碳纳米管 等材料制作&#xff0c;是材料及器件…

集成电路模拟版图入门-转行模拟版图基础学习笔记(二)

在众多IC岗位中&#xff0c;模拟版图确实属于容易入门&#xff0c;吸引来很多想要转行IC行业的朋友&#xff0c;但需要掌握的知识点和技巧并不比设计少&#xff0c;属于门槛简单&#xff0c;上手不易&#xff0c;想要自学模拟版图似乎比较困难。 之前为大家分享过移知学员的模…

(十四)笔记.net学习之RabbitMQ工作模式

RabbitMQ在.net中简单使用一、简单模式1.生产者2.消费者二、工作队列模式1.工作队列模式介绍2.生产者发送消息3.消费能力三、发布/订阅模式1.介绍2.生产者3.消费者四、Routing路由模式1.介绍2.生产着3.消费者五、topic 主题模式1.介绍2. 生产者3.消费者一、简单模式 1.生产者 …

MyBatis系列第1篇:MyBatis未出世之前我们那些痛苦的经历

这么多技术&#xff0c;为什么我们选择的是mybatis 不知道大家是否还记得使用jdbc如何操作数据库&#xff1f; 加载驱动、获取连接、拼接sql、执行sql、获取结果、解析结果、关闭数据库&#xff0c;这些操作是纯jdbc的方式必经的一些过程&#xff0c;每次操作数据库都需要写这…

三面:请设计一个虚拟DOM算法吧

一、问题剖析 这不是前几天面试官开局面试官就让我设计一个路由&#xff0c;二面过了&#xff0c;结果今天来个三面。 问你道简单的送分题&#xff1a;设计一个虚拟DOM算法&#xff1f; 好家伙&#xff0c;来吧&#xff0c;先进行问题剖析&#xff0c;谁让我们是卑微的打工人…

学习python基础知识

1、Python 基础语法 计算机组成&#xff1a;硬件、软件、计算机运行程序方式、Python 语言的特点、应用领域、Python IDE、程序注释&#xff1a;单行注释、多行注释&#xff1b;变量的作用、定义、 命名规则、变量的数据类型、查看变量类型、输入和输入函数、算术运算符、赋值…

gazebo中添加动态障碍物

文章目录gazebo 教程gazebo 添加动态障碍物gazebo添加动态障碍物插件gazebo中动态障碍物实时posegazebo 教程 gazebo github https://github.com/gazebosim/gazebo-classic/tree/gazebo9gazebo tutorials https://classic.gazebosim.org/tutorials运行一个空白环境 <sdf v…

深入了解Java中的SQL注入

深入了解Java中的SQL注入 本文以代码实例复现了Java中JDBC及Mybatis框架采用预编译和非预编译时可能存在SQL注入的几种情况&#xff0c;并给予修复建议。 JDBC 首先看第一段代码&#xff0c;使用了远古时期的JDBC并且并没有使用预编译。这种简单的字符串拼接就存在SQL注入 …

一云七芯!ZStack 祝贺上海市金融信创联合攻关基地荣获一等奖

2022年11月初&#xff0c;由上海市总工会、中共上海市经济和信息化工作委员会、上海市经济信息化委员会主办的2022上海城市数字化转型 “智慧工匠”选树、“领军先锋”评选活动信创应用竞赛决赛暨颁奖典礼中&#xff0c;“一云七芯适配验证云平台及服务解决方案”获得信创应用案…

GitHub2022年度前100的Java面试真题高频知识点汇总

前言 这是我在工作、面试中学习并总结到的一些知识点&#xff0c;都是一些比较典型的、面试常常被问到的问题。 如果你平时没有注意去总结的话&#xff0c;那么当你面试被问到的时候可能会是一脸懵圈&#xff0c;就算这个问题你知道怎么回事&#xff0c;但是你平时没有认真总…

【win11内存占用高优化】未运行程序,系统内存占用50以上

这里写自定义目录标题前言打开控制面板找到电源键功能找到快速启动选项&#xff0c;取消勾选&#xff0c;确定win X以管理员身份打开powershell输入如下命令&#xff0c;回车关闭终端完成前言 windows11在未运行任何其他程序的情况下&#xff0c;内存占用超50%&#xff0c;可…

速度收藏,Fiddler详细使用教程出炉!

目录 01、抓取不同类型接口数据 02、数据模拟以及过滤规则 03、如何模拟接口响应数据 04、使用fiddler进行评论接口测试 绵薄之力【软件测试学习资源分享】 01、抓取不同类型接口数据 查看windows本机的IP 配置fiddler 需要保证要抓取的手机与电脑保持同一网段&#xff0…

转换 FLAC、APE 无损音乐格式为 iTunes 支持导入的 M4A 格式

大家知道常见的无损音乐格式有 FLAC、APE、WAV 等这些格式。其中 FLAC (Free Lossless Audio Codec) 格式因为是免费自由的压缩编码、无损压缩&#xff0c;且受到操作系统、软件及硬件的广泛支持。所以是非常流行常见的无损音乐格式。 自 2005 年 Mac OS X v10.4 开始&#xf…

《垃圾回收算法手册 自动内存管理的艺术》——其他分区策略(笔记)

文章目录十、其他分区策略10.1 大对象空间10.1.1 转轮回收器10.1.2 在操作系统支持下的对象移动10.1.3 不包含指针的对象10.2 基于对象拓扑结构的回收器10.2.1 成熟对象空间的回收10.2.2 基于对象相关性的回收10.2.3 线程本地回收10.2.4 栈上分配10.2.5 区域推断10.3 混合标记—…

磨金石教育摄影技能干货分享|传统民居摄影作品欣赏

我们知道在绘画领域有写实和写意之分&#xff0c;写实多用于人像的描绘&#xff0c;写意多用于山水田园画的创作。尤其是在中国传统绘画艺术中&#xff0c;写意简直就是创作的精髓。 写实和写意的区别在于&#xff0c;前者侧重真实还原&#xff0c;后者在于主管情感表达。 建筑…

哈希表、哈希桶(C++实现)

1. 哈希 1.1 概念 哈希&#xff08;hash&#xff0c;中文&#xff1a;散列&#xff1b;音译&#xff1a;哈希&#xff09;&#xff0c;是一种算法思想&#xff0c;又称散列算法、哈希函数、散列函数等。哈希函数能指导任何一种数据&#xff0c;构造出一种储存结构&#xff0c…

机器学习笔记之配分函数(二)——随机最大似然

机器学习笔记之配分函数——随机最大似然引言回顾&#xff1a;对数似然梯度关于∇θL(θ)\nabla_{\theta}\mathcal L(\theta)∇θ​L(θ)的简化基于MCMC求解负相关于书中图像的解释引言 上一节介绍了对包含配分函数的概率分布——使用极大似然估计求解模型参数的梯度(对数似然…

5款高效率,但是名气不大的小众软件

今天推荐5款十分小众的软件&#xff0c;但是每个都是非常非常好用的&#xff0c;用完后觉得不好用你找我。 1.多窗口文件整理——Q-Dir Q-Dir 是一款多窗口文件整理工具&#xff0c;特别适合用户频繁在各个文件夹中跳转进行复制粘贴的文件归档操作。如果你的电脑硬盘中文件已经…

MySQL 数据库的增删查改 (2)

文章目录一. 数据库约束1. 约束类型2.NULL 约束3.UNIQUE 约束4.DEFAULT 约束5. PRIMARY KEY 约束6.FOREIGN KEY 约束二.表的设计三.插入四.查询1.聚合查询2.联合查询3.合并查询本篇文章继承与 MySQL 表的增删改查(1) 一. 数据库约束 1. 约束类型 NOT NULL -- 表示某一行不能…