JD m站自我解析理解
第一步:从首页着手
文档部分:应用的是H5默认文档开头 即:
head部分:放了一些相关的JS,title描述,然后就是meta表述了。比较有参考的如下
<meta name="author" content="m.jd.com">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> 禁止滚动,默认设备大小;
<meta http-equiv="Content-Type" content="text/html; charset=GBK"> 编码类型
<meta name="author" content="m.jd.com">
<meta name="apple-mobile-web-app-capable" content="yes"> 默认的工具栏
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta http-equiv="Expires" content="-1">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Pragma" content="no-cache">
什么缓存之类的了
body部分:就是放内容的地方了;
第二步:内容区按块自我分析
首先是基本的CSS设置,
第一:清除边距,设置最大宽度640px,最小宽度300px;居中显示。默认的字体,给元素加一个vertical-align:baseline;为所有的元素设模型为 box-sizing:border-box等等。
依次下来:第一个就是一个a标签,看类型应该就是一个top顶部了,不过具体也没有什么样式。用的还是一个ID,或许是给后台留了一个接口吧。
第二:客户端首单满多少送多少,一直显示在顶部的一个通栏。
外层宽的100%,子级为320px(行内样式,因此应该是用JS控制的,这个宽度应该是判断大于max-width:那么就等于这个max-width)
内部放的就是各种浮动,然后外加各种行内样式。
第三:viewport部分
max-width:640px; min-width:320px; margin: 0 auto; padding: 0 5px;
第一块就是搜索,不过N的地方就是,人家JD把位置移动下来了,但是为了抓取,人家放了一个占位在那。(然后用了一个定位)
定位后,内部放一个jd-header,然后也就没哟什么特别的了,比较推荐的借鉴就是input里面用的是margin-top不是我们习惯用的padding
第三:快速导航
宽度为25% 并且为相对定位。内部加一个::after伪类,来实现考右的小竖线。
第四:楼层2
上半部也定时器,也没有什么特别的布局,挺简单的span出来的。
下部分,秒杀,用的也就是百分比33.3%,然后加了一个左边框,margin-left:-1px; 反正所有的都是box-sizing:border-box;因此不用担心撑开之类的。
布局呢,考虑的也不用那么多,就是能正常显示的就不用管了,靠其它的来显示就可以。
第五:金秋风暴
比较有特色想法的是,标题部分。左边的小红竖条是一个::before来实现的,是一个width:3px; background:red;的背景色。
下面图片这块的部分,做的真的不错。竟然没有看出来用个什么方法,但经过测试发现,一定是在改变窗口尺寸的时候做了处理。用的也不是flex属性,也没有看到JS有什么改动。不过有理由相信它应该就是JS控制。左边的高度等于右边两张图高度总和。
第六:主题馆
这个用的方法非常好,背景图片就是一个图片,上面切换的图片是放在一个相对定位高度为1px的盒子里。
第七:猜你喜欢
这个地方也有一个地方用的很好,就是他没有用table但是他把元素用了display:table; display:table-cell;的形式,模拟了table。
然后也就没有什么了,首页就这样的过去了。好多不懂的,看是也懂了好多。看别人写的东西,一点好处就是,学到对方很多的思维与方法。好的去学,不好的去发现去避免。
JD m站自我解析理解的更多相关文章
- 图形解析理解 css3 之倾斜属性skew()
1.作用 改变元素在页面中的形状2.语法 属性:transform 函数: 1.skew(xdeg) 向横向倾斜指定度数 x取值为正,X轴不动,y轴逆时针倾斜一定角度 x取值为负,X轴不动,y轴顺时针 ...
- 函数(定义、参数、return、变量、作用域、预解析)
一.函数定义 1.方式一 function 函数名(参数){ 函数体 }——————函数声明的方法 function fn(a){ console.log(a); }: 2.方式二 ...
- 悟透JavaScript(理解JS面向对象的好文章)
引子 编程世界里只存在两种基本元素,一个是数据,一个是代码.编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力. 数据天生就是文静的,总想保持自己固有的本色:而代码却天生活泼,总想改变这个 ...
- http协议请求规则与dotNet的解析
请求方法URI协议/版本 请求的第一行是"方法URL议/版本":GET/sample.jsp HTTP/1.1 以上代码中"GET"代表请求方法,"/ ...
- PULL解析学习
学习过程 安卓中有三种对XML解析的方式,这个众所周知,DOM,SAX,PULL 其中被推荐的方法是PULL,说是非常简单,但从一开始接触就觉得比较迷惑,总是云里雾里的感觉,甚至在自己写出了一个能 ...
- 深入理解MAGENTO – 第九章 – 数据集合瓦瑞恩
本来,作为一个PHP程序员,如果你想攒一组变量的相关你有一个选择,古老的 阵列 . 尽管共享一个地址的名称与C存储器的阵列,一个PHP数组是一种通用的字典可变数组索引像数值对象结合行为的影响. 在其他 ...
- 【自编教材】16万8千字的HTML+CSS基础 适合从0到1-可收藏
[图片链接有点小问题,这几天更新,敬请期待!] 目 录 第一章HTML基础 1.1 HTML简介和发展史 1.1.1 什么是HTML 1.1.2 HTML的发展历程 1.1.3 web标准 1.2 开 ...
- .NET C#操作文件系统数据的常用方法总结 part1
目录导航 1.0开启文件隐藏属性 1.1开启文件夹只读属性 1.2输出子文件夹路径 1.3统计文件数目 1.4批量重命名文件 1.5分割文件 1.6拼接文件 1.7读取用逗号分割的值 1.8读写压缩数 ...
- tornado框架&三层架构&MVC&MTV&模板语言&cookie&session
web框架的本质其实就是socket服务端再加上业务逻辑处理, 比如像是Tornado这样的框架. 有一些框架则只包含业务逻辑处理, 例如Django, bottle, flask这些框架, 它们的使 ...
随机推荐
- Netty源码分析(前言, 概述及目录)
Netty源码分析(完整版) 前言 前段时间公司准备改造redis的客户端, 原生的客户端是阻塞式链接, 并且链接池初始化的链接数并不高, 高并发场景会有获取不到连接的尴尬, 所以考虑了用netty长 ...
- 微软职位内部推荐-Senior Software Engineer_HPC
微软近期Open的职位: Job Title: Senior Software Engineer_HPC Location: Shanghai, China Are you passionate ab ...
- 《Linux内核设计与实现》读书笔记——第五章
<Linux内核设计与实现>读书笔记--第五章 标签(空格分隔): 20135321余佳源 第五章 系统调用 操作系统中,内核提供了用户进程与内核进行交互的一组接口.这些接口让应用程序受限 ...
- 组件 -- Badge
.badge :长方形的徽章 badge的颜色: .badge-primary .badge-secondary .badge-success .badge-warning ... ... .badg ...
- Beta 冲刺 四
团队成员 051601135 岳冠宇 031602629 刘意晗 031602248 郑智文 031602330 苏芳锃 031602234 王淇 照片 项目进展 岳冠宇 昨天的困难 数据交换比较复杂 ...
- 课堂final发布
项目组名:奋斗吧兄弟 小组成员:黄兴.李俞寰.栾骄阳.王东涵.杜桥 今天6个小组在课上进行了Final发布,以下是我的一些看法: 1.Nice团队的约跑app: 今天Nice团队给我的最突出的印象就是 ...
- 使用phantomjs进行无界面UI自动化测试
PhantomJS(http://phantomjs.org/) 是一个基于WebKit的服务器端JavaScript API.它全面支持web而不需浏览器支持,其快速.原生支持各种Web标准:DOM ...
- SparkException: Master removed our application
come from https://stackoverflow.com/questions/32245498/sparkexception-master-removed-our-application ...
- VMXNET3 vs E1000E and E1000
VMXNET3 vs E1000E and E1000 用户为什么要从E1000调整为VMXNET3,理由如下: E1000是千兆网路卡,而VMXNET3是万兆网路卡: E1000的性能相对较低,而V ...
- 【Revit API】脱离中心文件
话不多说,直接代码,整个过程不需要发起Transaction OpenOptions op = new OpenOptions(); op.Audit = true; //是否需要核查 op.Deta ...