解决css中display:inline-block中间的空白间隙

1、display:inline-block
让一个元素具有“区块元素”的属性(可以设置width和height),又具有“内联元素”的属性(不产生换行)。

2、IE中的inline-block
IE6不支持这个属性,但IE8开始支持这个属性。

让IE6内联元素具备inline-block特性
由于inline-block会触发IE的layout,所以IE6中只要设置{display:inline-block;}即可。

让IE6区块元素具备inline-block属性,有两种方法
A、可以先触发layout,再设置为inline,需要注意的是这两个display必须在两个CSS声明中才有效,代码如下:

div { width:400px; height:200px; display:inline-block;}div { display:inline;}B、直接设置为inline,再利用zoom来触发layout来实现类似效果:

div { width:400px; height:200px; *display:inline; *zoom:1;}3、其它浏览器
其它浏览器都支持这个属性,但Firefox从3.0才开始支持这个属性,对于之前的版本可以利用其私有属性{display:-moz-inline-box}来实现类似效果,但也可以忽略3.0之前的版本(这些版本的浏览器很少有人使用了)。

例子

为display:inline-block有很多方便,可以水平垂直居中,又可以设高宽,但有个问题,当使用inline-block的时候发现当给各个元素相应的百分比的时候,他们的总和是大于100%的,从而出现了换行的情况,一开始没怎么在意这个问题,今天进行了一下研究,才发现原来display:inline-block给的元素中间会有一个空白的间隙,如图:

对应的代码是:

<style type="text/css">
 *{margin: 0;padding: 0;}
 .di{display: inline-block;width: 200px;height: 100px;background: #f00;}
</style>
<body>
 <div class="di">这是第一个div</div>
 <div class="di">这是第二个div</div>
</body>
其实这个空白间隙虽然在代码中没有体现,但其实是我们忽略的空格,因为当我们把元素设置inline-block的时候,它已经具有了行内的性质,也就是说元素跟元素之间是可以打入空格的,而由于我们写代码的习惯,上述我们定义的两个元素之间通常会有换行,而不论多少空格都会变成一个空格,所以才会出现空隙现象。

当我们把代码改成如下:

<style type="text/css">
 *{margin: 0;padding: 0;}
 .di{display: inline-block;width: 200px;height: 100px;background: #f00;}
</style>
<body>
 <div class="di">这是第一个div</div><div class="di">这是第二个div</div>
</body>
就没有了空隙:

出现这种问题的根本原因就在此,那么怎么解决呢,其实行内元素默认有间距是因为有font-size这个属性,我们把font-size设为0就可以解决这个问题。

<style type="text/css">
 *{margin: 0;padding: 0;}
        body{font-size:0}
 .di{display: inline-block;width: 200px;height: 100px;background: #f00;font-size:14px}
</style>
<body>
 <div class="di">这是第一个div</div>
 <div class="di">这是第二个div</div>
</body>
需要给相应的父元素加上font-size:0即可,注意的是要在子元素身上再重新设置font-size,不然会看不到里面的文字。

时间: 2024-10-27 02:09:50

解决css中display:inline-block中间的空白间隙的相关文章

解决CSS中 display 与 visibility 的区别_基础教程

span为内联/inline元素,给他宽度赋值是没有效果的. span为内联/inline元素,给他宽度赋值100px+float:right;可以看到有了宽度. 这个li被定义为内联/inline,设置宽度没有效果 test test 这个li被定义为内联/inline+float:left,设置宽度有效果 test test

CSS中display:inline-block属性妙用

  CSS中display:inline-block属性用法 在使用CSS实现表现的时候,会经常接触到display:inline-block这一属性,无论是初接触Web标准还是接触标准已久的朋友,大都会对这一属性感觉很迷惑和模糊. display:inline-block 将对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行内,允许空格. 但对于这个属性不是所有浏览器都识别. 支持的浏览器有:Opera.Safari 但很遗憾,最流行的IE和Firefox却不支持

css中display:Inline-Block深入理解说明

inline-block,如此的让人难以琢磨,并且又有诱人的显示方式宣传,只是其承诺的很多,兑现的却如此少.我已经收到这样的PSD文件有很多次: 看了之后我就开始哭了. 通常情况下,这个类型的布局是小菜一碟.固定宽度,固定高度,左侧浮动(float:left),然后就完成了.但但但是,这个设计需要与可变数量的内容一起工作,也就是说如果这些块中的一个比其他块拥有更多的内容,它将会破坏整个布局: 由于第一个画廊项目比其他的高,所以第五个项目就相对于它进行左侧浮动而不是位于它下面.总体上来说我们想要一

css中display:inline-block的兼容性问题

inline-block的兼容性问题 兼容性: IE6.IE7不识别inline-block但可以触发块元素. 其它主流浏览器均支持inline-block. 解决IE6.IE7兼容性的方法: 1.首先设置inline-block触发块元素,具有了layout的特性,然后设置display:inline使块元素呈现内联元素,此时layout的特性不会消失. 2.直接设置display:inline,使用zoom:1触发layout. 兼容所有浏览器的方法是: display:inline-blo

解决css中inline-block元素之间有空白问题解决办法

 代码如下 复制代码 <!DOCTYPE html> <html>     <head>         <meta charset="UTF-8" />         <style type="text/css">             * {                 margin: 0;                 padding: 0;             }           

css中display: inline-block;间隙解决方法

标签使用display: inline-block;时,将对象呈递为内联对象,但是对象的内容作为块对象呈递.旁边的内联对象会被呈递在同一行内,允许空格.(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性) 使用inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子: <!DOCTYPE html> <html lang="zh-cn"> <head>  <m

CSS中display与visibility的区别

css|区别 起因: 前几天在做一个图片无间隙滚动的效果,要利用到一个隐藏的层. 问题: 之间复制以前文字滚动的效果代码(文字滚动时无错误),结果发现页面被拉长了一倍,也就是隐藏的层. 解决: 查CSS手册后发现了隐藏内容原来是有区别的,一种是保留对象的物理空间,一种是不保留. ------------------------------- display:none CSS1 隐藏对象.与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间 visibility:h

css中display:none和visibility:hidden的区别

区别分析 首先我们都知道,display: none 和 visibility: hidden 都可以起到隐藏元素的功能 两者的区别在于占用文档流的不同 display: none 隐藏元素同时去除元素在文档流所占的空间 visibility: hidden 隐藏元素, 但不去除元素在文档流所占的空间 区别示例 HTML Code <span class="one">第一区域</span> <span>第二区域</span> <br

CSS中display各属性语法参数详解 附实例

这里向大家描述一下HTML DOM display属性的定义和用法,HTML DOM display属性主要用来设置元素如何显示,比如当此属性值为none时,表示此元素不会被显示,而block则表示此元素将显示为块级元素,此元素前后会带有换行符. HTML DOM display属性定义和用法 此属性主要用来设置元素如何显示. 语法: Object.style.display=value 可能的值 HTML DOM display属性实例 本例设置不显示元素: <html> <head&