这段时间一直在做老师不值得的手机端的网页,在给元素设置宽度的时候都是使用百分比的形式,后来知道,这就是流体布局。不过这些都是后话,下面说的是在做静态手机站的时候遇到的一个问题。

  因为使用了流体布局,几乎都是最外面的盒子设置为width:100%然后,内部的盒子根据需要,占据最外层盒子的10%~90%不等,最常用的还是设为50%,当将多层的宽度设置好之后,最内层的盒子填充span,img等标签,写进去文字,或者放置图片,于是最内层的盒子会根据图片的宽度占据盒子的大小,高度等比缩放,因而通过img的高度获得了最内层盒子的高度,然后一级一级向上,最后整个最外层的盒子被内层的元素的高度给撑了起来。

  就在这时发现了一个奇怪的现象:如下图

  

  讲道理,盛放图片的盒子的height是由它里面盛放的元素的height决定的,途中是在一个div中放了一张img,所以div的高度,应该是由img的高度决定,但是,在几乎每个盛放img的盒子的高度,都会比img本身高度高处一小块空间,这使得在用手机浏览网页的时候产生非常违和不美观的效果。可是又突然发现,在盛放多个banner图片的盒子中,没有出现上述的情况,研究了半天,发现盛放多个banner图的盒子比其他盛放单张图片的盒子中多了个:

font-size:0;

  那么我为何要在盛放多个banner图的盒子上添加font-size:0呢。

  这是因为,在写代码的时候,多个img标签之间有换行符,但是浏览器会将这些换行符解析为一个空白字符,于是banner图与图之间产生了一小段空隙。

  上述问题的解决办法有很多,比如可以将img标签的换行符去掉,就是将img标签写在一行内。或者是将换行符注释掉,但是我选择了一个比较奇葩的做法,就是讲font-size设为0。

  话题转回来,难道图片下方出现的空白区域也是因为有换行或者是多余的空格被解析成了空白字符么。经过一番代码测试,不是这样的。

  那么为什么盛放img的盒子高度会大于图片本身高度呢,

  原来,问题出现在这里:

  

  解决办法是啥呢?

  

  (完)

img下面出现了蜜汁空白的更多相关文章

  1. 结对编程-->总结报告

    项目github地址 PSP时间表格 结对编程中关于Information Hiding, Interface Design, Loose Coupling原则的使用 Information Hidi ...

  2. IE6、7下html标签间存在空白符,导致渲染后占用多余空白位置的原因及解决方法

    直接上图:原因:该div包含的内容是靠后台进行print操作,输出的.如果没有输出任何内容,浏览器会默认给该空白区域添加空白符.在IE6.7下,浏览器解析渲染时,会认为空白符也是占位置的,默认其具有字 ...

  3. ASP.NET使用HttpModule压缩并删除空白Html请求

    当我们压缩我的Response后再传到Client端时,可以明显节省宽带. 提升Site的性能. 现在的浏览器大部分都支持Gzip,Deflate压缩. 同时我们还可以删除一些空白段,空行,注释等以使 ...

  4. EXCEL中多级分类汇总空白字段填充

    使用场景,多级分类汇总后,在汇总的字段中显示空白,这样对我们直接取值做表带来十分不更(假像有5000条记录,1000条汇总项) 相关技术,INDIRECT函数,单元格定位功能. 在数据区域外任意一个单 ...

  5. Golang Web开发时前端出现谜之空白换行的坑

    在使用Golang做Web开发时,有时候渲染出来的模板在前台显示时会出现一些奇怪的空白换行,具体特征就是查看css样式表并没有相关定义的空白部分. 分析: 查看出现问题页面的网页源代码,复制空白换行部 ...

  6. ActionBar设置自定义setCustomView()留有空白的问题

    先来看问题,当我使用ActionBar的时候,设置setCustomView时,会留有空白的处理 网上很多朋友说可以修改V7包到19,结果处理的效果也是不理想的. 下面贴出我觉得靠谱的处理代码 pub ...

  7. dede在php7上空白

    最近想看一本小说,想采集回来看,结果发现除了dedecms支持php7.0,其他主流cms基本上都不支持php7.0 在本地win7上调试了一遍,没有问题,放到linux服务器上的时候,发现打开任何页 ...

  8. 清除inline-block元素之间的空白

    一个元素如果被设置为display:inline-block,那么这个元素将表现为行内块的性质.被设为行内块的元素 对内(子元素)表现为块级框,具体为可以设置高度宽度,可以设置垂直margin和pad ...

  9. inline-block 空白间距问题

    一. 问题 元素是inline-block属性时,会有空白间隙 二. 解决方案 1. html方式 1)将元素之间的空隙去除 <div class="space"> & ...

随机推荐

  1. 【ES6】迭代器与可迭代对象

    ES6 新的数组方法.集合.for-of 循环.展开运算符(...)甚至异步编程都依赖于迭代器(Iterator )实现.本文会详解 ES6 的迭代器与生成器,并进一步挖掘可迭代对象的内部原理与使用方 ...

  2. Paper Reading_Distributed System

    最近(以及预感接下来的一年)会读很多很多的paper......不如开个帖子记录一下读paper心得 Mark一个上海交通大学东岳网络工作室的paper notebook Mark一个大神的笔记 Ed ...

  3. 剑指offer-旋转数组的最小数字-数组-python

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转 ...

  4. spring data jpa Specification 复杂查询+分页查询

    当Repository接口继承了JpaSpecificationExecutor后,我们就可以使用如下接口进行分页查询: /** * Returns a {@link Page} of entitie ...

  5. JavaScript回顾

    JavaScript是Web编程语言. JavaScript是一种基于对象的脚本语言 它是解释执行的 在客户端的浏览器中运行 可以被嵌入HTML文件中 代码以纯文本的形式存储在文件中 可以使用任何一种 ...

  6. 在XCode中使用XCTest

    测试驱动开发并不是一个很新鲜的概念了.在我最开始学习程序编写时,最喜欢干的事情就是编写一段代码,然后运行观察结果是否正确.我所学习第一门语言是c语言,用的最多的是在算法设计上,那时候最常做的事情就是编 ...

  7. Gcc如何知道文件类型。

    Linux系统不区分扩展名,但是GCC编译器通过扩展名区分. GCC是根据扩展名来编译源文件的.

  8. ntsysv - 用于配置运行级别的简单接口

    总览 SYNOPSIS ntsysv [--back] [--level <levels>] 描述 DESCRIPTION ntsysv 是个用于配置运行级别服务(也可通过 chkconf ...

  9. nroff - 用 groff 模拟 nroff 命令

    总览 (SYNOPSIS) nroff [ -h ] [ -i ] [ -mname ] [ -nnum ] [ -olist ] [ -rcn ] [ -Tname ] [ file... ] 描述 ...

  10. element-ui 表格标题换行

     render-header: 列标题 Label 区域渲染使用的 Function <template> <el-table :data="dataList"& ...