您现在的位置是:网站首页> 编程资料编程资料
css解决display:inline-block;产生的缝隙(间隙)的方法_CSS教程_CSS_网页制作_
2021-09-10
943人已围观
简介 本篇文章主要介绍了css解决display:inline-block;产生的缝隙(间隙)的方法,具有一定的参考价值,有需要的可以了解一下。
今天在做H5的水平滑动卡片时用到了display:inline-block;却发现处在同一水平线上的元素之间居然产生了缝隙,这很显然不是我想要的效果,所以我就换成了左浮动,这样缝隙的问题是解决了,但是需要设置父元素的宽度才能实现水平左右滚动,这样又增加了代码量,因为卡片的个数不固定,需要实时设置其父元素的宽度,就要用到js,所以代码量增加了,也不是最好的选择。看来最好的解决办法就是用到display:inline-block;了,于是缝隙的问题就出现了。代码如下:
document 111111111111
效果如下:

这个缝隙很明显存在,据说这种表现是符合规范的应该有的表现,是换行造成的空白符导致的。但这效果很显然不是我们想要的,我们想要的缝隙是我们根据自己的实际需求而设置的边距。那么该如何消除产生的这个缝隙呢?办法有三:
方法一:元素之间不换行,代码如下:
111111111111
效果如下:

方法二:给其父元素设置font-size:0;给其自身设置实际需要的字号大小。不好的地方就是有些浏览器有设置最小字体,像chrome和opera,但是现在的chrome好像没有这个设置了,代码如下:
css:
.box{overflow-x:auto;background:#fff;white-space:nowrap;font-size:0;} .box span{display:inline-block;width:100px;height:30px;line-height:30px;text-align:center;background:#f00;color:#fff;font-size:14px;}html:
111111111111
效果如下:

方法三:负margin方法,需要注意的是这个间隙跟字号大小有关系的,所以间隙不是个确定值。
以上三种方法,前两种是比较好的解决办法,第三种方法不推荐使用。网上还有其他的解决办法,但我认为还是前两种比较好。
PS:
结合广大前端大神的评论建议来看,也可以给其父元素设置display:flex来消除缝隙,且代码量少了,但是用在我的水平滑动卡片的效果中导致所有的元素都处在了可视窗口中,就不能实现水平左右滑动了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
相关内容
- 前端制作动画的几种方式(css3,js)_css3_CSS_网页制作_
- CSS3 3D立方体效果示例-transform也不过如此_css3_CSS_网页制作_
- CSS3中的元素过渡属性transition示例详解_css3_CSS_网页制作_
- 利用纯CSS自定义Checkbox和Radio的样式示例代码_CSS教程_CSS_网页制作_
- 利用CSS实现酷炫的下拉框特效_CSS教程_CSS_网页制作_
- CSS3实现精美横向滚动菜单按钮_css3_CSS_网页制作_
- div+css实现带箭头的面包屑导航栏_Div+CSS教程_CSS_网页制作_
- 不定宽高的文字在div中垂直居中实现方法_Div+CSS教程_CSS_网页制作_
- CSS中px em rem区别与使用_CSS教程_CSS_网页制作_
- 纯CSS3实现Material Design效果_css3_CSS_网页制作_
