第一步:从首页着手

文档部分:应用的是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站自我解析理解的更多相关文章

  1. 图形解析理解 css3 之倾斜属性skew()

    1.作用 改变元素在页面中的形状2.语法 属性:transform 函数: 1.skew(xdeg) 向横向倾斜指定度数 x取值为正,X轴不动,y轴逆时针倾斜一定角度 x取值为负,X轴不动,y轴顺时针 ...

  2. 函数(定义、参数、return、变量、作用域、预解析)

    一.函数定义 1.方式一       function 函数名(参数){  函数体  }——————函数声明的方法 function fn(a){ console.log(a); }: 2.方式二  ...

  3. 悟透JavaScript(理解JS面向对象的好文章)

    引子 编程世界里只存在两种基本元素,一个是数据,一个是代码.编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力. 数据天生就是文静的,总想保持自己固有的本色:而代码却天生活泼,总想改变这个 ...

  4. http协议请求规则与dotNet的解析

    请求方法URI协议/版本 请求的第一行是"方法URL议/版本":GET/sample.jsp HTTP/1.1 以上代码中"GET"代表请求方法,"/ ...

  5. PULL解析学习

    学习过程   安卓中有三种对XML解析的方式,这个众所周知,DOM,SAX,PULL 其中被推荐的方法是PULL,说是非常简单,但从一开始接触就觉得比较迷惑,总是云里雾里的感觉,甚至在自己写出了一个能 ...

  6. 深入理解MAGENTO – 第九章 – 数据集合瓦瑞恩

    本来,作为一个PHP程序员,如果你想攒一组变量的相关你有一个选择,古老的 阵列 . 尽管共享一个地址的名称与C存储器的阵列,一个PHP数组是一种通用的字典可变数组索引像数值对象结合行为的影响. 在其他 ...

  7. 【自编教材】16万8千字的HTML+CSS基础 适合从0到1-可收藏

    [图片链接有点小问题,这几天更新,敬请期待!] 目 录 第一章HTML基础 1.1 HTML简介和发展史 1.1.1 什么是HTML 1.1.2 HTML的发展历程 1.1.3 web标准 1.2 开 ...

  8. .NET C#操作文件系统数据的常用方法总结 part1

    目录导航 1.0开启文件隐藏属性 1.1开启文件夹只读属性 1.2输出子文件夹路径 1.3统计文件数目 1.4批量重命名文件 1.5分割文件 1.6拼接文件 1.7读取用逗号分割的值 1.8读写压缩数 ...

  9. tornado框架&三层架构&MVC&MTV&模板语言&cookie&session

    web框架的本质其实就是socket服务端再加上业务逻辑处理, 比如像是Tornado这样的框架. 有一些框架则只包含业务逻辑处理, 例如Django, bottle, flask这些框架, 它们的使 ...

随机推荐

  1. SICP读书笔记 1.1

    SICP CONCLUSION 让我们举起杯,祝福那些将他们的思想镶嵌在重重括号之间的Lisp程序员 ! 祝我能够突破层层代码,找到住在里计算机的神灵! 目录 1. 构造过程抽象 2. 构造数据抽象 ...

  2. Nodejs如何把接收图片base64格式保存为文件存储到服务器上

    app.post('/upload', function(req, res){ //接收前台POST过来的base64 var imgData = req.body.imgData; //过滤data ...

  3. 如何将maven项目打包上传到私服

    比如我们想要把项目通过maven生产源码包和文档包并发布到自己的私服上,有两个maven插件可以做到这些工作,一个是maven-source-plugin,另一个是maven-javadoc-plug ...

  4. sql两个日期之间的查询统计

    sql查询统计 sql语句: select count(code) as '统计',create_time as '订单时间' from sp_orders where datediff(create ...

  5. Beta冲刺预备

    作业链接 Beta冲刺随笔集 github地址 讨论组长是否重选的议题和结论 在Alpha阶段我们由于没有项目经验,很多技术都仅限于书本上的知识,没有真正实践过,所以出现各种各样的问题,在组长的带领下 ...

  6. Js单元测试工具 以及 粗浅的对我的快乐运算进行测试

    1. Karma的介绍 Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma.Karma是一个让人感到非常神秘的 ...

  7. mybatis之DAO层自动实现接口

    * 使用mybatis举例,使用DAO接口方式实现* 不需要针对接口去编写具体的实现类代码,编写映射XML文件,直接拿来使用即可.* 1.导入jar包:mybatis和mysql-connector* ...

  8. springMVC返回给页面参数的三种形式

  9. 51nod 1480 打广告(二分+线段树)

    题意 给出n个区间和m个区间,从这n个区间里选一个区间a,这m个区间选一个区间b,使得a&b的长度*c最大. 思路 如果这n个区间里有一个区间包含另一个区间,那另外一个区间就可以忽略掉,进行\ ...

  10. BZOJ1004 HNOI2008Cards(Burnside引理+动态规划)

    直接给了一个置换群(当然要自己手动加上不洗牌的情况).考虑求不动点数量即可.对于一个置换,求出所有循环的长度,然后设f[i][x][y]为给前i个循环着色后,用了x张红色卡片.y张绿色卡片的方案数,d ...