流式布局(京东项目为例) 您所在的位置:网站首页 dpg图片格式 流式布局(京东项目为例)

流式布局(京东项目为例)

2024-07-12 19:25| 来源: 网络整理| 查看: 265

笔记来源:拉勾教育 - 大前端就业集训营

文章内容:学习过程中的笔记、感悟、和经验

流式布局(京东项目为例) 流式布局(百分比布局)

流式布局(百分比布局),也称非固定像素布局

原理:

使用百分比(%)的方式设置宽度或者高度,当父元素发生变化的时候,子盒子也会跟着变化

优点:

可以自适应进行变化,不需要设置固定数值

注意事项: 制作过程中,需要定义页面的最大和最小支持宽度

max-width最大宽度(max-height最大高度) min-width最大宽度(min-height最大高度) body { min-width: 320px; max-width:960px } 京东移动端首页准备工作(m.jd.com)

技术选型:单独制作移动端页面

技术:流式布局

搭建文件结构(index.html + css文件夹 + images文件夹) index设置视口标签、引入CSS文件(初始化css和样式css) 样式css设置body初始样式(最大宽度、最小宽度、背景色、字体、字号、行高、居中、文字颜色) 设置特殊样式 body { min-width: 320px; max-width: 560px; margin: 0 auto; background: #ffffff; line-height: 1.5; font-size: 14px; font-family: -apple-system, Helvetica, sans-serif; color: #666; } /*(通配符)点击高亮我们需要清除清除设置为transparent完成透明 */ * { -webkit-tap-highlight-color: transparent; } /* 在移动端浏览器默认的外观IOS上加上这个属性才能给按钮和输入框自定义样式(只需要给input标签即可) */ input { -webkit-appearance: none; } /* 禁用长按页面时的弹出菜单 */ img, a { -webkit-touch-callout: none; } 京东移动端首页项目 顶部小提示区域

B5OxUA.png

结构分析:

整体是一个大盒子,从左到右浮动四个元素,每个都是垂直居中显示(其中一些CSS样式可以打开m.jd.com查看,不需要手动测量)

打开京东App,购物更轻松 立即打开 /* top-tips样式 */ /* 整体宽高、居中、边距背景、文字属性、固定定位 */ .top-tips { position: fixed; top: 0; left: 0; width: 100%; height: 45px; margin: 0 auto; padding: 0; background: #262626; line-height: 45px; text-align: center; color: #fff; } /* 所有li左浮动 */ .top-tips li { float: left; } /* 第1个li宽度 */ .top-tips li:nth-child(1) { width: 8%; } /* 大尺寸限制图片高度、垂直居中对齐父元素 */ .top-tips li:nth-child(1) img { width: 10px; vertical-align: middle; } /* 第2个li宽度 */ .top-tips li:nth-child(2) { width: 10%; } /* 大尺寸限制图片高度、垂直居中对齐父元素 */ .top-tips li:nth-child(2) img { width: 30px; vertical-align: middle; } /* 第3个li宽度 */ .top-tips li:nth-child(3) { width: 57%; } /* 第4个li宽度、背景色 */ .top-tips li:nth-child(4) { width: 25%; background: #f11d13; } 搜索栏区域

BonJsS.png

结构分析:

整体一个大盒子包裹三个子盒子,并且中间搜索栏要跟着屏幕大小变化,两边要保持一致不变,可以使用两侧绝对定位,中间两侧设置margin让出空间来实现

搜索框内部从左到右可以分我三块,由于搜索内容区域要跟着父元素宽度变化,所以我们可以使用绝对定位,宽度设置为100%,左边两个可以设置左浮动,搜索区域只要让出来空间就可以了

可能会用到的CSS属性:

background: transparent;背景透明 outline: none;去掉轮廓线(去掉input默认点击出现边框) 登录 /* header区域 */ /* 整体固定定位、宽高、行高、文字颜色 */ .header { position: fixed; top: 45px; left: 0; width: 100%; height: 44px; background: pink; line-height: 44px; color: #fff; } /* 左和右绝对定位,宽高 */ .header .l, .header .r { position: absolute; width: 40px; height: 44px; } /* 左侧定位 */ .header .l { left: 0; top: 0; } /* 图标使用二倍图 */ .header .l span { display: block; width: 20px; height: 18px; margin: 14px 0 0 15px; background: url(../images/s-btn.png); background-size: 20px 18px; } /* 搜索框相对定位。不设置宽度自动撑开,设置边距、圆角、背景色 */ .header .search { position: relative; left: 0; top: 0; height: 30px; margin: 7px 50px; border-radius: 15px; background: #fff; } /* jd图标 相对定位、左浮动、宽高、边距、二倍图背景 */ .header .search span { position: relative; float: left; width: 20px; height: 15px; margin: 8px 8px 0 15px; background: url(../images/logo2.png) no-repeat 0 0; background-size: 20px 15px; } /* 伪元素变竖线、病危、背景色、宽高 */ .header .search span::before { content: ''; position: absolute; top: 0; right: -8px; width: 1px; height: 15px; background: #ccc; } /* 精灵二倍图 */ .header .search i { float: left; width: 18px; height: 15px; margin: 8px 0 0 15px; background: url(../images/jd-sprites.png) no-repeat -82px 0; background-size: 200px 200px; } /* 搜索框绝对定位、边距、去除边框、背景透明、去掉默认点击边框 */ .header .search input { position: absolute; top: 0; left: 0; padding: 0 20px 0 78px; height: 30px; width: 100%; border: 0; background: transparent; font-size: 12px; outline: none; } /* 登录按钮右侧定位 */ .header .r { right: 0; top: 0; } 多倍精灵图的使用 使用图片工具(ps等)将精灵图尺寸呢缩小n倍 量取所需精灵图尺寸获取定位值 引入背景,修改定位,同时修改background-size为缩小后的尺寸 /* 下面是使用400*400精灵图 */ background: url(../images/jd-sprites.png) no-repeat -82px 0; background-size: 200px 200px; 主要内容区域 CSS背景渐变

实现背景颜色逐渐变化的效果

background-image:linear-gradient(方向, 颜色1 停止,颜色2 停止)

/* 从左到右依次是前50%纯红色,50%-80%红-绿过渡,80%-100%绿和蓝过渡 */ background-image: linear-gradient(to right, #f00 50%, #0f0 80%, #00f);

Boy3rT.png

图片格式 DPG图片压缩技术

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

webp图片格式

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

焦点图部分

Bocdu6.png

结构分析:

上面的搜索栏部分其实是不包括在焦点图里面的,焦点图区域只有两个东西,一个后边的背景,一个前面的轮播图,背景可以使用div元素,这里面北京实际上是一个150%宽度的元素,再经过下半部圆角和颜色过渡实现的,上面的轮播图就是一个轮播图结构

/* main 主要内容区域 */ .content { width: 100%; margin-top: 45px; } /* 焦点图定位、宽高、溢出隐藏 */ .content .banner { position: relative; width: 100%; height: 187px; overflow: hidden; } /* 背景定位、宽高、圆角、渐变背景色 */ .content .banner .banner-bg { position: absolute; left: -25%; width: 150%; height: 187px; border-bottom-left-radius: 100%; border-bottom-right-radius: 100%; background: linear-gradient(0deg,#f1503b,#c82519 50%); } /* 图片列表定位、宽度、边距 */ .content .banner ul li { position: absolute; left: 0; top: 0; width: 100%; padding: 44px 3.33% 0; } /* 后两张图片定位 */ .content .banner ul li:nth-child(2) { left: 100%; } .content .banner ul li:nth-child(3) { left: 200%; } /* 图片宽高 */ .content .banner ul li a img { width: 100%; } /* 指示灯定位、宽高、边距 */ .content .banner ol { position: absolute; bottom: 10px; left: 50%; width: 60px; height: 10px; margin: 0 0 0 -30px; padding: 0; } /* 指示灯浮动、宽高、背景、圆角 */ .content .banner ol li { float: left; width: 10px; height: 10px; border-radius: 50%; background: #cccccc; margin-right: 10px; } /* 当选选中样式 */ .content .banner ol .now { background: #ffffff; } 优惠活动布局

Bo47wt.png

结构分析

整体从左到右为3块区域,并排显示,使用大盒子包裹三个小盒子,三个小盒子都占用三分之一的宽度,高度无需设置,让元素自动撑开

/* 优惠券 */ /* 优惠券宽度、清除边距、溢出隐藏 */ .content .youhui { width: 100%; padding: 0; margin: 0; overflow: hidden; } /* 左浮动,宽度平分100% */ .content .youhui li { float: left; width: 33.333%; } /* 图片宽度 */ .content .youhui li a img { width: 100%; } 导航栏

BoIQDs.png

结构分析:

导航栏一共两个,右侧还有一个,只不过隐藏了,导航栏内部有10个块,每行5块平分整行,平均每个块20%宽度,内部元素正常设置即可,两个导航栏使用定位,后面的超出隐藏

京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 京东超市 /* 导航菜单 */ /* 整体大结构定位、宽高、溢出隐藏 */ .content .daohang { position: relative; width: 100%; height: 160px; overflow: hidden; } /* 导航菜单定位、溢出隐藏 */ .content .daohang ol { position: absolute; top: 0; left: 0; overflow: hidden; } /* 第二个菜单在右侧 */ .content .daohang ol:nth-child(2) { left: 100%; } /* 每个小块左浮动、宽度、居中文字 */ .content .daohang li { float: left; width: 20%; text-align: center; } /* 图片转块、宽度、边距 */ .content .daohang li img { display: block; width: 40px; margin: 10px auto 6px; } /* 文字属性 */ .content .daohang li span { line-height: 18px; font-size: 12px; } 信任专享

BoH8L4.png

结构分析:

和上面优惠券模块基本相同,大盒子包裹两个小图片,图片占用50%宽度

/* 新人专享 */ /* 大结构宽度、边距、溢出隐藏 */ .content .new { width: 100%; padding: 10px; overflow: hidden; } /* a标签浮动。一半宽度、转块 */ .content .new a { float: left; display: block; width: 50%; } /* 图片占满父元素宽度 */ .content .new a img { width: 100%; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有