今天在锤子手机官网看到一个 活动页。它的内容布局让我学习了。

.wrapper-banner.content-bannerimga.hota.hot
复制代码

.wrapper-banner 是个普通的 div block 元素;.content-banner 是 relative 的;img 是一张 大~图片,宽 2560px;a.hot 是绝对定位元素,使用了 left、top、width 和 height 用于锁定图片的某块区域作为点击区域(图片里有两个商品活动,所以有两个 a.hot)。

.content-banner 设置了 2560px 的宽(与内部图片的原始宽度一样),为了能让内部图片原样显示。但有一个问题:

img 图片很宽,活动内容在图片中间了,而图片两边有等量大量的留白。怎么让图片能居中显示呢?

是这样的——

.content-banner {width: 2560px;position: relative;left: 50%;transform: translateX(-50%);
}
复制代码

position 是 relative 的元素,其包含块是 最近的 block container,即 .wrapper-banner。百分比值的 left 是相对于包含块宽度偏移的。那现在问题来了——.wrapper-banner 的宽度到底是多少呢?

答案: .wrapper-banner 的宽度是父级元素的宽度,因为 block 元素默认是撑满父级宽度的。注意,不是 img 撑开的 2560px!这很容易弄错(我就是这样)。

也很好证明,给 .wrapper-banner 一个 background color,往右滑动水平滚动条(内部 img 撑开的),发现背景色并没有覆盖一屏外更宽的区域。

对于当前场景:.wrapper-banner 就是当前视口的宽度了,或者说是一屏的宽度。

left: 50%; 让 .content-banner 的左边缘在屏幕中间的位置。然后使用 translateX(-50%),.content-banner 向左偏移自身宽度的 50%(应该是相对于于元素的 border box)!此时图片就居中了。当然,图片因为偏移而超出屏幕左边缘的部分,都被截取了(当然要这样,要不然还能将滚动条往左滚动划回去!?)

最后还要给 .wrapper-banner 一个 overflow: hidden; 这样水平滚动条就消失了。

最终使用样式如下:

.wrapper-banner {overflow: hidden;
}.content-banner {width: 2560px;position: relative;left: 50%;transform: translateX(-50%);
}.content-banner img {display: block;width: 100%;
}
复制代码

(完)

灵光乍现:巧妙居中显示原始大图片!相关推荐

  1. 智慧企业架构的触类旁通灵光乍现

    智慧企业架构的触类旁通灵光乍现<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" ...

  2. 乔布斯传记电影暂定名为《灵光乍现》

    好莱坞影星艾什顿·库切将在片中饰演乔布斯 新浪科技讯 北京时间4月16日上午消息,即将开拍的史蒂夫·乔布斯(Steve Jobs)传记电影制片人马克·休谟(Mark Hulme)透露,这部电影暂定名为 ...

  3. 灵光乍现 解决移动端保持键盘打开状态

    之前看到问题 小程序点击发送保持键盘打开状态 按常规答了一下 点击按钮 的处理,最后 让输入框重新获取焦点,应该就可以 小程序里 应该是有个 focus 属性,去查下文档吧 昨天看到消息提示,有人回复 ...

  4. image1载入大图片时如果stretch=true,image1会显示出大图片的缩图,那么如何将这个缩图镜像复制一份赋值给另一个image2的picture呢?...

    image1载入大图片时如果stretch=true,image1会显示出大图片的缩图,那么如何将这个缩图镜像复制一份赋值给另一个image2的picture呢? Delphi / Windows S ...

  5. ITEXT-小图片并排显示,大图片按行显示

    问题场景 使用itext开发PDF过程中,有这样一个需求:有N个图片,每个图片大小不一,要求小图片每2个并排显示,大图片逐一按行显示.那么问题来了,图片多小算小?由API知image01.getWid ...

  6. 关于UIImageView的显示问题——居中显示或者截取图片的中间部分显示

    我们都知道在ios中,每一个UIImageView都有他的frame大小,但是如果图片的大小和这个frame的大小不符合的时候会怎么样呢?在默认情况,图片会被压缩或者拉伸以填满整个区域. 通过查看UI ...

  7. 哇哦,灵光乍现——srp中commandbuffer设置SetViewProjectionMatrices方法注意点,终于对了

    重点是这里: m_commandBuffer.SetViewProjectionMatrices(m_myCamera.m_lightCamera.worldToCameraMatrix, m_myC ...

  8. NPOI随笔——图片在单元格等比缩放且居中显示

    NPOI导出的图片默认是在单元格左上方,这使得图片在单元格显示得很难看.居中,且等比缩放,才是图片在单元格上的完美展示. /// <summary>/// 图片在单元格等比缩放居中显示// ...

  9. 如何让图片自适应不同屏幕宽度,并居中显示。

    我们在浏览网站的时候发现,很多网站的banner图片都是全屏宽度.这种图片都是在不同分辨率下都是显示图片的中间部分,这里我们介绍两种方式, 第一种就是常见的方式,用定位 我简单定义为三部曲: - 让包 ...

最新文章

  1. java运算符-逻辑、三元运算符
  2. 做小程序费用太高?帮你选一个最省钱的方案
  3. seo优化源码_seo按天计费系统,无需登陆批量查询关键词价格
  4. 云炬Android开发笔记 16附加功能开发(二维码,一键分享,分页,搜索)
  5. tensorflow 数据格式
  6. HDU 1789 Doing Homework again (贪心)
  7. 计算机无法还原,降级为Windows 7的计算机无法引导至Windows 10恢复介质
  8. Visual Studio各个版本对应关系
  9. 交换两幅图像的幅度谱和相位谱,并重构图像
  10. linux下重装mysql_Linux下安装mysql
  11. 文本格式化标签(HTML)
  12. 复选框与文字无法对齐问题
  13. JPA 系列教程14-自定义类型-@Embedded+@Embeddable
  14. 开通5G网络服务三个月,中国广电交出了什么样的答卷?
  15. 色彩的对比度和饱和度_使用高色彩对比度进行更方便的设计
  16. matlab热应力计算,Matlab在齿轮应力计算中的应用
  17. java分页的方法_java实现的分页方法(上一页下一页)
  18. 简易网站流量统计工具
  19. 如何确保运维数据安全
  20. 三相全桥整流电路_三相桥式全控整流电路原理及电路图

热门文章

  1. 编译一个MaNGOS芒果服务端(转)
  2. 直角坐标与极坐标互相转换(PythonC++实现)
  3. 88hash 饰品交易平台 立刻取回的csgo开箱网站
  4. U-Boot2010.06移植(2440)-----移植NandFlash驱动
  5. uboot的硬件驱动
  6. 1092.结构体习题:通过职工信息输出高于平均工资的职工信息及高于平均工资的职工人数
  7. 基于Ohta颜色空间的火焰分割
  8. 化工热力学(第三版)答案陈
  9. 字扩展,位扩展和字位扩展
  10. Shader消融特效