解决img下边距

今天在制作一个网页的时候又碰到以往曾经碰到的问题,在图片下面会出现莫名的下边距,刚好这次制作不像以往那么急,所以抽出空来测试了下,发现,在FF中下边距大概是多出了3像素左右,而IE6更多,在IE8中展示却是完好的,以往的做法只需要将img定义为块状级就解决了问题,而对于其原理却一直都不知道,今天google了下很荣幸的找到了答案:“图片底部的空隙实际上涉及行内元素的布局模型,图片默认的垂直对齐方式是基线,而基线的位置是与字体相关的。所以在某些时候,图片底部的空隙可能是 2px,而有时可能是 4px 或更多。不同的 font-size 应该也会影响到这个空隙的大小。

如果将图片的垂直对齐方式设置为 top 或 bottom,我们会发现这个空隙也会消失。

行内元素的格式化实际上比我们想像的要复杂得多,这也是我至今不愿面对的一个知识点。还好它并不常用。

p.s. 我现在甚至怀疑书上提到的“某些浏览器”指的是第一个能显示图片的浏览器 Mosaic。因为刚刚在翻阅《CSS权威指南(第三版)》中文版时,在第 204 页发现了它,而那一页讲述的正是行内元素的布局模型。我最近也在研究浏览器的历史,历史真的非常有意思。”这个是蓝色理想中版主说的一句话,我仔细的测试了下,确实给图片定义vertical-align也可以解决这个问题,我一直以为是以为没有清除img这些元素的默认内外边距引起的,现在才知道原来行内元素也有它的默认布局模型,这些布局模型不仅仅只是块状级元素才有的!看来css不仅仅是要掌握技巧还有它的原理这样才能自己知道问题解决问题了,还要加油啊!

ps:解决办法给img定义vertical-align或者定义为块状,最优的解决办是定义vertical-align,注:定义vertical-align为middle时在IE6中大概还有一像素的顶边距,最好为top或bottom。当然还有种极端解决办法大家可以试试就是将 父容器的字体大小为零,font-size:0

 

时间: 2024-10-16 17:51:19

解决img下边距的相关文章

img下面出现莫名下边距的解决办法

今天在制作一个网页的时候又碰到以往曾经碰到的问题,在图片下面会出现莫名的下边距,刚好这次制作不像以往那么急,所以抽出空来测试了下,发现,在FF中下边距大概是多出了3像素左右,而IE6更多,在IE8中展示却是完好的,以往的做法只需要将img定义为块状级就解决了问题,而对于其原理却一直都不知道,今天google了下很荣幸的找到了答案:“图片底部的空隙实际上涉及行内元素的布局模型,图片默认的垂直对齐方式是基线,而基线的位置是与字体相关的.所以在某些时候,图片底部的空隙可能是 2px,而有时可能是 4p

解决UITableView分割线距左边有距离的办法

首先在viewDidLoad方法中加上如下代码: if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {    [self.tableView setSeparatorInset:UIEdgeInsetsZero];}if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {    [self.tableView setLa

解决UITableView分割线距左边有距离的办法xcode6

今天做项目时对比UI图突然发现自己的cell左边的线距离屏幕左边有一定距离,左边的坐标已经是0了,如果不想动坐标又解决此问题的话可以看看下面的方法 解决UITableView分割线距左边有距离的办法,有需要的朋友可以参考下. 我们在使用tableview时会发现分割线的左边会短一些,通常可以使用setSeparatorInset:UIEdgeInsetsZero 来解决.但是升级到XCode6之后,在iOS8里发现没有效果.下面给出解决办法: 首先在viewDidLoad方法中加上如下代码: i

解决垂直外边距合并的几种办法

外边距合并指的是,当两个垂直外边距相遇时,它们将形成一个外边距.合并后的外边距的高度等于两个发生合并的外边距的高度中的较大者 在父级容器有上下外边距的情况下,子元素如果添加外边距,父元素和子元素的垂直方向上的外边距会合并,相邻元素也会合并.在用margin给子元素和父元素之间留空白的时候通常会发生这样的问题. 几种解决办法: 1:父容器:border:1px solid;(不能是0px) 2:父容器:overflow: hidden;(或auto) 3:父容器:padding:1px:(不能是0

小程序消除图片下边距的三个方法

1. 图片属性加 display: block; 把图片转换为块状元素显示. 2.图片的父级标签加上 font-size: 0; 3.图片属性上加 vertical-align: top; 1 和 3 不能同时使用 原文地址:https://www.cnblogs.com/junyi-bk/p/10350644.html

外边距(padding)重叠的及解决办法

两个或多个块级盒子的垂直相邻边界会重合.结果的边界宽度是相邻边界宽度中最大的值.如果出现负边界,则在最大的正边界中减去绝对值最大的负边界.如果没有正边界,则从零中减去绝对值最大的负边界.注意:相邻的盒子可能并非是由父子关系或同胞关系的元素生成.但是边界的重叠也有例外情况: 1.水平边距永远不会重合.2.在规范文档中,2个或以上的块级盒模型相邻的垂直margin会重叠.最终的margin值计算方法如下:a.全部都为正值,取最大者:b.不全是正值,则都取绝对值,然后用正值减去最大值:c.没有正值,则

Day49:CSS属性操作(文本、背景、边框、列表、display、边距)

一.CSS属性操作 1.CSS text 文本颜色:color 颜色属性被用来设置文字的颜色. 颜色是通过CSS最经常的指定: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的名称 - 如:  red p { color: rebeccapurple; } 水平对齐方式 text-align 属性规定元素中的文本的水平对齐方式. left       把文本排列到左边.默认值:由浏览器决定. right     把文本排列到右边. center 把文

CSS中IE6下双边距BUG解决方案

其实这个问题在刚学习CSS的时候就知道怎样解决了,但是一直不知道为什么会出现这种现象,今天顺便记录一下. 1.为什么会出现双边距BUG? <style type="text/css"> body,div{padding: 0;margin: 0;} .box{border: 10px solid black;float: left;} .inner{width: 100px;height: 100px;background: red;float: left;margin:

解决div里面img的缝隙问题~

解决div里面img的缝隙问题 图片IMG与容器下边界之间有空隙怎么办?这里介绍3中简单的解决方法. 第一,给图片img标签display:block. img{display:block} 第二,定义容器里的字体大小为0. div { width:110px; border:1px solid #000000; font-size:0 } 第三,定义图片img标签vertical-align:bottom,vertical-align:middle,vertical-align:top img