京东首页移动端-web实战

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

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

body常用初始化样式

body {width: 100%;min-width: 320px;max-width: 640px;margin: 0 auto;background: #fff;font-size: 14px;font-family: -apple-system, Helvetica, sans-serif;line-height: 1.5;color: #666;
}

头部制作

  • 移动端宽度一般用百分比
  • 插入图片时记得设置图片的宽高
  • 图片默认与文字的基线对齐,所以设置垂直居中时,要给图片加上vertical-align:middle
ul {margin: 0;padding: 0;
}
ul li {list-style: none;
}
.app {height: 45px;
}.app ul li {float: left;height: 45px;line-height: 45px;text-align: center;background-color: #333;color:#fff;
}
.app ul li:nth-child(1){width: 8%;
}
.app ul li:nth-child(1) img {width: 10px;vertical-align: middle;
}
.app ul li:nth-child(2){width: 10%;
}
.app ul li:nth-child(2) img {width: 30px;/* 图片与文字的基线默认对齐 */vertical-align: middle;}
.app ul li:nth-child(3){width:  57%;
}
.app ul li:nth-child(4){width: 25%;background-color: #f63515;
}
    <header class="app"><ul><li><img src="./images/close.png" alt=""></li><li><img src="./images/logo.png" alt=""></li><li>打开京东App,购物更轻松</li><li>立即打开</li></ul></header>

 

 搜索框

  • 搜索框主体部分会随着页面宽度的变化而变化,左右两边的盒子宽度不变,故只需将左右两边盒子定位定宽定高,中间主体部分宽度百分百,之后再设置左右margin即可。
  • 京东后面的竖线可设置伪元素,记得转换伪元素为块级元素
  • 二倍精灵图要先将原图等比例缩放至原来的一半,之后根据改变之后的图片测量坐标,同时background-size变为原来精灵图宽度的一半,高度auto
  • 图片在搜索区域下方显示,将搜索区域设置为固定定位,一定要设置宽度,宽度100%

    <div class="search-wrap"><div class="search-btn"></div><div class="search"><div class="jd-icon"></div><div class="sou"></div></div><div class="search-login">登录</div></div><!-- 主体内容部分 --><div class="main-content"><!-- 滑动图 --><div class="slider"><img src="./upload/banner.dpg" alt=""></div></div>
/* 搜索 */
.search-wrap {width: 100%;position: fixed;height: 44px;/* 解决外边距合并问题 */overflow: hidden;max-width: 640px;min-width: 320px;
}.search-btn {position: absolute;top: 0;left: 0;width: 40px;height: 44px;
}
.search-btn::before{content: "";/* 伪元素为行内元素 */display: block;width: 20px;height: 18px;background: url(../images/s-btn.png) no-repeat;background-size: 20px 18px;margin: 14px 0 0 15px;
}.search-login {position: absolute;top: 0;right: 0;width: 40px;height: 44px;color:#fff;text-align: center;line-height: 44px;
}.search {position: relative;height: 30px;margin: 7px 50px;border-radius: 15px;background-color: #fff;
}
.jd-icon {width: 20px;height: 15px;position: absolute;top: 8px;left: 13px;background: url(../images/jd.png) no-repeat;background-size: 20px 15px;
}
.jd-icon::after {content: "";position: absolute;right: -8px;display: block;width: 1px;height: 15px;background-color: #f63515;
}
.sou {position: absolute;top: 8px;left: 50px;width: 18px;height: 15px;/*二倍精灵图*/background: url(../images/jd-sprites.png) no-repeat -81px 0;background-size: 200px auto;
}
.slider img {width: 100%;
}

品牌日

  • 由三张图片组成,每个图片均为一个链接
  • div里的每张图片宽度均为三分之一,即33.33%
  • 给brand加圆角边框时,记得要溢出隐藏,因为图片并未设置圆角边框
  • 上面图片底部有缝隙,去除图片底部缝隙只需给图片加上vertical-align:top;
  • 每个div浮动即可

        <div class="brand"><div><a href=""><img src="./upload/pic11.dpg" alt=""></a></div><div><a href=""><img src="./upload/pic22.dpg" alt=""></a></div><div><a href=""><img src="./upload/pic33.dpg" alt=""></a></div></div>
.brand {border-radius: 10px 10px 0 0;overflow: hidden;
}
.brand div {float:left;width: 33.33%;
}
.brand div img {width: 100%;
}

图片格式

  • DPG图片压缩技术

京东自主研发推出DPG图片压缩技术,经测试该技术,可直接节省用户近50%的浏览流量,极大的提升了用户的网页打开速度。能够兼容jpeg,实现全平台、全部浏览器的兼容支持,经过内部和外部上万张图片的人眼浏览测试后发现,压缩后的图片和webp的清晰度对比没有差距。

  • webp图片格式

谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器宽带资源和数据空间
 

 导航栏

  • nav里10个a,a里有图片和文字
  • 将a浮动起来,且每个a宽度占20%,设置a里的内容水平居中即可
  • 适当设置nav与其他元素的距离

        <nav><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a></nav>
nav {padding-top: 5px;
}
nav a {float: left;width: 20%;text-align: center;
}nav a img {width: 40px;margin: 10px 0;
}
nav a span {display: block;
}

 新闻模块

  • 三张图片,均浮动,a里面包括一张图片
  • 给每个a设置宽度,里面的图片百分百即可
  • 因为后两张图片有边框,为了不影响布局,应该让a元素变成CSS3模型(box-sizing:border-box)这样最后一张图片就不会挤下去

        <div class="news clearfix"><a href=""><img src="./upload/new1.dpg" alt=""></a><a href=""><img src="./upload/new2.dpg" alt=""></a><a href=""><img src="./upload/new3.dpg" alt=""></a></div>

 

.news {margin-top: 20px;
}
.news a:nth-child(1) {width: 50%;
}
.news a {float: left;box-sizing: border-box;
}
.news a:nth-child(n+2) {width: 25%;border-left: 1px solid #ccc;
}
.news a img {width: 100%;
}

整体代码:

 

body {width: 100%;min-width: 320px;max-width: 640px;margin: 0 auto;font-size: 14px;font-family: -apple-system, Helvetica, sans-serif;/* 当前文字的1.5倍 */line-height: 1.5;color: #666;
}.clearfix::after {content: "";display: block;clear: both;
}a {color: #666;text-decoration: none;
}ul {margin: 0;padding: 0;
}img {/* 去除图片底部的缝隙 */vertical-align: top;
}ul li {list-style: none;
}.app {height: 45px;
}.app ul li {float: left;height: 45px;line-height: 45px;text-align: center;background-color: #333;color: #fff
}.app ul li:nth-child(1) {width: 8%;
}.app ul li:nth-child(1) img {width: 10px;vertical-align: middle;
}.app ul li:nth-child(2) {width: 10%;
}.app ul li:nth-child(2) img {width: 30px;/* 图片与文字的基线默认对齐 */vertical-align: middle;}.app ul li:nth-child(3) {width: 57%;
}.app ul li:nth-child(4) {width: 25%;background-color: #f63515;
}/* 搜索 */
.search-wrap {width: 100%;position: fixed;height: 44px;/* 解决外边距合并问题 */overflow: hidden;max-width: 640px;min-width: 320px;
}.search-btn {position: absolute;top: 0;left: 0;width: 40px;height: 44px;
}.search-btn::before {content: "";/* 伪元素为行内元素 */display: block;width: 20px;height: 18px;background: url(../images/s-btn.png) no-repeat;background-size: 20px 18px;margin: 14px 0 0 15px;
}.search-login {position: absolute;top: 0;right: 0;width: 40px;height: 44px;color: #fff;text-align: center;line-height: 44px;
}.search {position: relative;height: 30px;margin: 7px 50px;border-radius: 15px;background-color: #fff;
}.jd-icon {width: 20px;height: 15px;position: absolute;top: 8px;left: 13px;background: url(../images/jd.png) no-repeat;background-size: 20px 15px;
}.jd-icon::after {content: "";position: absolute;right: -8px;display: block;width: 1px;height: 15px;background-color: #f63515;
}.sou {position: absolute;top: 8px;left: 50px;width: 18px;height: 15px;background: url(../images/jd-sprites.png) no-repeat -81px 0;background-size: 200px auto;
}.slider img {width: 100%;
}.brand {border-radius: 10px 10px 0 0;overflow: hidden;
}.brand div {float: left;width: 33.33%;
}.brand div img {width: 100%;
}nav {padding-top: 5px;
}nav a {float: left;width: 20%;text-align: center;
}nav a img {width: 40px;margin: 10px 0;
}nav a span {display: block;
}/* news */
.news {margin-top: 20px;
}.news a:nth-child(1) {width: 50%;
}.news a {float: left;box-sizing: border-box;
}.news a:nth-child(n+2) {width: 25%;border-left: 1px solid #ccc;
}.news a img {width: 100%;
}
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport"content="width=device-width, initial-scale=1.0, user-scalable=no,maximum-scale=1.0, minimum-scale=1.0"><title>Document</title><!-- 引入初始化样式 --><link rel="stylesheet" href="./css/normalize.css"><link rel="stylesheet" href="./css/index.css">
</head><body><!-- 顶部 --><header class="app"><ul><li><img src="./images/close.png" alt=""></li><li><img src="./images/logo.png" alt=""></li><li>打开京东App,购物更轻松</li><li>立即打开</li></ul></header><!-- 搜索 --><div class="search-wrap"><div class="search-btn"></div><div class="search"><div class="jd-icon"></div><div class="sou"></div></div><div class="search-login">登录</div></div><!-- 主体内容部分 --><div class="main-content"><!-- 滑动图 --><div class="slider"><img src="./upload/banner.dpg" alt=""></div><!-- 品牌日 --><div class="brand"><div><a href=""><img src="./upload/pic11.dpg" alt=""></a></div><div><a href=""><img src="./upload/pic22.dpg" alt=""></a></div><div><a href=""><img src="./upload/pic33.dpg" alt=""></a></div></div><!-- nav部分 --><nav class="clearfix"><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a><a href=""><img src="./upload/nav1.webp" alt=""><span>京东超市</span></a></nav><!-- 新闻模块 --><div class="news clearfix"><a href=""><img src="./upload/new1.dpg" alt=""></a><a href=""><img src="./upload/new2.dpg" alt=""></a><a href=""><img src="./upload/new3.dpg" alt=""></a></div></div>
</body></html>

 

 

之后的布局以及样式都与上面大致相同,京东移动端的练习就先到这里啦 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode1079:游戏玩法分析——求留存率

求留存率 题目描述题解 题目描述 表&#xff1a;Activity --------------------- | Column Name | Type | --------------------- | player_id | int | | device_id | int | | event_date | date | | games_played | int | --------------------- &#xff08;player_id&…

H2数据库

1.介绍 Java H2 是一个用 Java 编写的轻量级、开源的关系型数据库。它以其体积小、性能高、易于使用而闻名&#xff0c;常被用于开发和测试环境中&#xff0c;也适用于特定的生产环境。H2 数据库支持内存存储模式&#xff0c;这意味着数据可以直接存储在内存中&#xff0c;从而…

存内计算架构在通用视觉模型上的潜力应用

近年来&#xff0c;人工智能领域的通用视觉模型在自动驾驶、医疗图像分析、机器人视觉系统等场景中发挥了越来越重要的作用&#xff0c;它们通过模拟人类的视觉处理机制&#xff0c;有效地识别、理解和分析图像和视频数据。同时&#xff0c;新兴的存内计算架构显著优化了现有通…

SQLite database实现加密

注意&#xff1a;以下操作以VS2022为开发工具&#xff0c;以C#为开发语言。 数据加密原因 软件在使用的各个场景&#xff0c;很多都需要数据具有保密性&#xff0c;于是对于数据库就需要加密。特别是在某些特定领域或存储敏感数据尤其如此。 SQLite加密实现 SQLite加密有两种…

Arduino 串口绘图仪简单使用

1、工具所在位置 串口绘图仪实际上是从预设的串口获取值并将其绘制在xy轴图每获取到一组数据向左滑动一个单位&#xff0c;读取数据的速度起快&#xff0c;滑动就越快。 Y轴代表来自串口的值&#xff0c;可以是单个也可以是一组 。在读取串口数据时遇到"\n"&#xf…

Windows下Node.js下载安装及环境变量配置教程

Windows下Node.js下载安装及环境变量配置教程 安装版本&#xff1a;node-v18.19.0-x64.msi 文章目录 Windows下Node.js下载安装及环境变量配置教程一、Node.js和NPM简介二、下载地址三、安装步骤四、环境配置五、安装淘宝镜像总结 一、Node.js和NPM简介 1、Node.js &#xf…

Java设计模式大全:23种常见的设计模式详解(一)

本系列文章简介&#xff1a; 设计模式是在软件开发过程中&#xff0c;经过实践和总结得到的一套解决特定问题的可复用的模板。它是一种在特定情境中经过验证的经验和技巧的集合&#xff0c;可以帮助开发人员设计出高效、可维护、可扩展和可复用的软件系统。设计模式提供了一种在…

Java 学习和实践笔记(1)

2024年&#xff0c;决定好好学习计算机语言Java. B站上选了这个课程&#xff1a;【整整300集】浙大大佬160小时讲完的Java教程&#xff08;学习路线Java笔记&#xff09;零基础&#xff0c;就从今天开始学吧。 在这些语言中&#xff0c;C语言是最基础的语言&#xff0c;绝大多…

SQL 表信息 | 统计 | 脚本

介绍 统计多个 SQL Server 实例上多个数据库的表大小、最后修改时间和行数&#xff0c;可以使用以下的 SQL 查询来获取这些信息。 脚本 示例脚本&#xff1a; DECLARE Query NVARCHAR(MAX)-- 创建一个临时表用于存储结果 CREATE TABLE #TableSizes (DatabaseName NVARCHAR…

ResizeObserver的使用

这篇说下ResizeObserver API。ResizeObserver接口监视 Element 内容盒或边框盒或者 SVGElement 边界尺寸的变化。 ResizeObserver避免了通过回调函数调整大小时&#xff0c;通常创建的无限回调循环和循环依赖项。它只能通过在后续的帧中处理 DOM 中更深层次的元素来做到这一点…

CGAL-3D 凸包算法

3D 凸包算法 一、概述二、静态凸包构造1. Traits 特征类2. 极端点3. 半空间相交4. 凸性检验 三、动态凸包构造四、性能 一、概述 一个点集 S∈R3 是凸的&#xff0c;如果对于任意两点 p 和 q 在集合中&#xff0c;具有端点的线段 p 和 q 包含在 S。集合的凸包 P 包含点集 S 的最…

Java开发IntelliJ IDEA2023

IntelliJ IDEA 2023是一款强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;专为Java开发人员设计。它提供了许多特色功能&#xff0c;帮助开发人员更高效地编写、测试和调试Java应用程序。以下是一些IntelliJ IDEA 2023的特色功能&#xff1a; 智能代码编辑器&…