inline-block元素的空隙与解决方法

多次遇到了使用inline-block后留下间隙的问题,所以记录一下,以提醒自己以后留意这点。



现象描述:

使用display:inlie-block后和一些行内元素都有此现象如:<a> <img><input>等标签元素

<div class="space">
    <p></p>
    <p></p>
    <p></p>
</div>
.space p{
    display: inline-block;
    width: 50px;
    height: 50px;
    background-color: green;
    margin:0;//无效
}



那没我们该如何解决呢?方法是很多的。可以参考大神的解决方法:http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/ 。以下方法是我对此博客的提炼。

方法一

  间隙产生的原因是HTML的换行空格,所以可以直接取消换行即可。但是这样是降低代码的可读性,另外可以用注释来占位

方法二

  设置margin为负值,margin负值的大小与上下文的字体和文字大小相关。貌似计算值有点麻烦,且未知外部环境,故不适合大规模使用。

方法三

  好奇怪的方法,不过真的可以。

<div class="space">
    <p>
    <p>
    <p></p>
</div>

方法四

  在父元素设置font-size:0, 新的Chrome也可以完美解决,容易造成字体大小混乱,谨慎使用。<img>元素下可以使用

方法五

  使用letter-spacing,字符间距,负值设置过大文字重叠或被遮挡。

方法六

  使用word-spacing, 单词间距,Chrome下负值设置过大会使宽高缩小。

更多方法可以查看:http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/。其中博主的方法八我没看懂,故不作记录。

时间: 2024-10-25 04:50:36

inline-block元素的空隙与解决方法的相关文章

inline-block元素的空白间距解决方法

方法1 <ul><li>item1</li><li>item2</li><li>item3</li><li>item4</li><li>item5</li></ul> 更新:全兼容的样式解决方法 经过高人指点,使用纯CSS还是找到了兼容的方法,就是在父元素中设置font-size:0,用来兼容chrome,而使用letter-space:-N px来兼容safar

在HTML中图片拼接时,出现空隙的解决方法

我们经常会在html文档中拼接图片,但每两个图片中间都会有一点点空隙. 产生原因:图片默认基线对齐解决方法: 1.img{vartical-align:bottom} 2.img{display:block} 3.盛放图片的父容器margin-top:-1px;

图片间有空隙的解决方法

定制页面时遇到图片间有空隙的问题,google: 在li中纯放图片img,出现的bug是图片之间有3px的间隙,给li加高度也无效,解决图片间有空隙方法如下: 直接加样式img{vertical-align:bottom; display:block} 当然在某些情况下无效,比如我要加三个图片,上中下,中间的图片是设为背景,发现用此方法无效,只是上和中的图片空隙没了,而下与中之间还存在,方法很简单,把vertical-align:bottom改成top,可根据自己遇到的不同情况来设vertica

关于 inline block 元素之间的空格

本篇文章由:http://xinpure.com/about-the-inline-block-element-between-spaces/ 说点什么 display: inline-block 属性很好的避免了元素的浮动问题,但是会有点小问题,就是 inline-block 元素间的回车会被显示为一个空格.然而,我们写代码时,都是用回车来格式化的... 最简单的方法就是把 inline-block 元素之间的回车删除,就是代码显示有点不美观,影响阅读. 方法总结 以下方法不保证浏览器兼容性问

elasticsearch报错expected &lt;block end&gt;, but found BlockMappingStart解决方法

我用的是elasticsearch2.4.0,在修改完配置文件就出现类似格式 expected <block end>, but found BlockMappingStart......的报错 经过网上搜索发现是格式问题,在配置文件中vim /etc/elasticsearch/elasticsearch.yml中. 每个配置行前需要有空格 每个':'两边需要有空格 数组中间加空格 还有注释掉的参数不能在#后边加空格不然报错

动态新增元素的js无效解决方法

通过监听父级容器下匹配子元素进行事件绑定 <div id="test1"><input type="button" class="btn" value="按钮1"/><input type="button" class="btn" value="按钮1"/><input type="button" clas

IE6常见的bug及解决方法

1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距) 解决方法:display:inline 3.以下三种其实是同一种bug,其实也不算是个bug,举个例子:父标签高度20,子标签11,垂直居中,20-11=9,9要分给文字的上面与下面,怎么分?IE6就会与其它的不同,所以,尽量避免. 1)字体大小为奇数之边框高度少1px

ie6,ie7,ie8 css bug兼容解决方法

IE浏览器以不支持大量的css 属性出名,同时也因其支持的css属性中存在大量bug. 这里收集了好多的bug以及其解决的办法,都在这个文章里面记录下来了!希望以后解决类似问题的时候能够快速解决,也希望大家能在留言里面跟进自己发现的ie6 7 8bug和解决办法! 普通IE css bug bug名称 影响版本 描述 Image Label Focus Bug IE8,IE7,IE6 <img>元素在<label>元素之内,单击时,焦点不会转移到相应的表单控件 按钮Margin-A

IE6 Bug解决方法HACK汇总

1.终极方法:条件注释<!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本. <![endif]--><!--[if gte IE 6]> 这段文字仅显示在 IE6及IE6以上版本. <![endif]--><!--[if gt IE 6]> 这段文字仅显示在 IE6以上版本(不包含IE6). <![endif]--><!--[if IE 5.5]> 这段文字仅显示在 IE5.5. <![e