如何解决inline block 间距-block元素的空白间距

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
HTML 如下:&p&
&span&hello&/span&
&span&world&/span&
&/p&CSS 代码:span {
display:inline-
background:#36c;
font-size:30
text-align:
}在页面上他们之间会有一个空格的间隔,我知道只要移除他们之间的空格就显示正常了:&p&
&span&hello&/span&&span&world&/span&
&/p&但我想知道如何在不修改 HTML、不使用 JS 的情况下,有没有通过修改 CSS 来解决的方法?
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这个原因跟字体类型和大小有关系。
雅虎 YUI 的解决方法是把letter-spacing和word-spacing改成某个负值能解决(不同的字体值不同),ytzong 给了个一劳永逸的解决方法,直接写成 -.5em 或者更大 .span {
letter-spacing: -.5 /* webkit: collapse white-space between units */
*letter-spacing: /* reset IE & 8 */
word-spacing: -.5 /* IE & 8 && gecko: collapse white-space between units */
}我个人更喜欢通过修改父元素的字体大小,将大小设置为font-size: 0来解决:p {
font-size: 0;
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
移除代码之间的空白、换行 这样不行吗?&p&&span&hello&/span&&span&world&/span&&/p&
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,解决技术问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
一线的工程师、著名开源项目的作者们,都在这里:
获取验证码
已有账号?使用display:inline-block的元素布局时,会因代码换行显示或空格而产生间隙,比如
display: inline-
padding: .5
background-color:
&p&超级&/p&
&p&弹珠&/p&
&p&坏蛋&/p&
解决方案一:除去代码标签之间的空格
&p&超级&/p&&p&弹珠&/p&&p&坏蛋&/p&
&/div&但这样不利于代码的可读性
所以一般这样写
&p&超级&/p&&p
&弹珠&/p&&p
或者借助html注释
&p&超级&/p&&!--
--&&p&弹珠&/p&&!--
--&&p&坏蛋&/p&
解决方案二:父级设置font-size:0,子级再重设font-size
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:287次
排名:千里之外
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'推荐这篇日记的豆列
&&&&&&&&&&&&解决css中display:inline-block中间的空白间隙
作者:用户
本文讲的是解决css中display:inline-block中间的空白间隙,
1、display:inline-block
让一个元素具有“区块元素”的属性(可以设置width和height),又具有“内联元素”的属性(不产生换行)。
2、IE中的inline-block
IE6不支持这个属性,但IE8开始
1、display:inline-block
让一个元素具有“区块元素”的属性(可以设置width和height),又具有“内联元素”的属性(不产生换行)。
2、IE中的inline-block
IE6不支持这个属性,但IE8开始支持这个属性。
让IE6内联元素具备inline-block特性
由于inline-block会触发IE的layout,所以IE6中只要设置{display:inline-}即可。
让IE6区块元素具备inline-block属性,有两种方法
A、可以先触发layout,再设置为inline,需要注意的是这两个display必须在两个CSS声明中才有效,代码如下:
div { width:400 height:200 display:inline-}div { display:}B、直接设置为inline,再利用zoom来触发layout来实现类似效果:
div { width:400 height:200 *display: *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-width: 200height: 100background: #f00;}
&div class="di"&这是第一个div&/div&
&div class="di"&这是第二个div&/div&
其实这个空白间隙虽然在代码中没有体现,但其实是我们忽略的空格,因为当我们把元素设置inline-block的时候,它已经具有了行内的性质,也就是说元素跟元素之间是可以打入空格的,而由于我们写代码的习惯,上述我们定义的两个元素之间通常会有换行,而不论多少空格都会变成一个空格,所以才会出现空隙现象。
当我们把代码改成如下:
&style type="text/css"&
*{margin: 0;padding: 0;}
.di{display: inline-width: 200height: 100background: #f00;}
&div class="di"&这是第一个div&/div&&div class="di"&这是第二个div&/div&
就没有了空隙:
出现这种问题的根本原因就在此,那么怎么解决呢,其实行内元素默认有间距是因为有font-size这个属性,我们把font-size设为0就可以解决这个问题。
&style type="text/css"&
*{margin: 0;padding: 0;}
body{font-size:0}
.di{display: inline-width: 200height: 100background: #f00;font-size:14px}
&div class="di"&这是第一个div&/div&
&div class="di"&这是第二个div&/div&
需要给相应的父元素加上font-size:0即可,注意的是要在子元素身上再重新设置font-size,不然会看不到里面的文字。
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索浏览器
,以便于您获取更多的相关知识。
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
开发者常用软件,超百款实用软件一站式提供
云栖社区()为您免费提供相关信息,包括
,所有相关内容均不代表云栖社区的意见!

我要回帖

更多关于 inline block默认间距 的文章

 

随机推荐