cssdisplay覆盖规律(css解决display:inline-block;产生的缝隙间隙的方法)
类别:Web前端 浏览量:1756
时间:2022-01-21 00:39:28 cssdisplay覆盖规律
css解决display:inline-block;产生的缝隙间隙的方法今天在做H5的水平滑动卡片时用到了display:inline-block;却发现处在同一水平线上的元素之间居然产生了缝隙,这很显然不是我想要的效果,所以我就换成了左浮动,这样缝隙的问题是解决了,但是需要设置父元素的宽度才能实现水平左右滚动,这样又增加了代码量,因为卡片的个数不固定,需要实时设置其父元素的宽度,就要用到js,所以代码量增加了,也不是最好的选择。看来最好的解决办法就是用到display:inline-block;了,于是缝隙的问题就出现了。代码如下:
<!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>document</title> <style> *{margin:0;padding:0;} .box{overflow-x:auto;background:#fff;white-space:nowrap;} .box span{display:inline-block;width:100px;height:30px;line-height:30px;text-align:center;background:#f00;color:#fff;} </style> </head> <body> <li class="box"> <span>111</span> <span>111</span> <span>111</span> <span>111</span> </li> </body> </html>
效果如下:
这个缝隙很明显存在,据说这种表现是符合规范的应该有的表现,是换行造成的空白符导致的。但这效果很显然不是我们想要的,我们想要的缝隙是我们根据自己的实际需求而设置的边距。那么该如何消除产生的这个缝隙呢?办法有三:
方法一:元素之间不换行,代码如下:
<li class="box"> <span>111</span><span>111</span><span>111</span><span>111</span> </li>
效果如下:
方法二:给其父元素设置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:
<li class="box"> <span>111</span> <span>111</span> <span>111</span> <span>111</span> </li>
效果如下:
方法三:负margin方法,需要注意的是这个间隙跟字号大小有关系的,所以间隙不是个确定值。
以上三种方法,前两种是比较好的解决办法,第三种方法不推荐使用。网上还有其他的解决办法,但我认为还是前两种比较好。
PS:
结合广大前端大神的评论建议来看,也可以给其父元素设置display:flex来消除缝隙,且代码量少了,但是用在我的水平滑动卡片的效果中导致所有的元素都处在了可视窗口中,就不能实现水平左右滑动了。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
您可能感兴趣
- css样式为什么要有空格(css几种解决inline-block间隙的方案整理)
- 去除inline-block元素间的间隙
- display:inline、block、inline-block 的区别
- cssdisplay覆盖规律(css解决display:inline-block;产生的缝隙间隙的方法)
- HTML5<q> 与 <blockquote> 的区别
- RegisterClientScriptBlock与RegisterStartupScript区别
- 大果肉搭配薄瓜皮, 绿宝 脆甜爽口,不愧是甜瓜中的 佼佼者(大果肉搭配薄瓜皮)
- 河南尉氏县因地制宜发展果蔬种植 水坡镇绿宝甜瓜变 金瓜(河南尉氏县因地制宜发展果蔬种植)
- 谢广坤,你这么欺负谢腾飞,良心不会痛吗(你这么欺负谢腾飞)
- 乡村爱情15 宋晓峰怀疑自己孩子,腾飞与姜奶奶亲子鉴定出结果(宋晓峰怀疑自己孩子)
- 《乡村爱情13》开播,新版刘能以假乱真,编剧思维进入瓶颈(新版刘能以假乱真)
- 当年的 白洋淀战神 练肌肉 嘎子哥也成为行走的荷尔蒙(当年的白洋淀战神)
热门推荐
- php各种绕过姿势(php面试实现反射注入的详细方法)
- js 全局变量与局部变量
- laravel5.5以下自定义日志(Laravel timestamps 设置为unix时间戳的方法)
- 在VS中按F12转到DLL文件定义的源代码
- mysql连接navicat报错1045(Navicat 连接MySQL8.0.11出现2059错误)
- 小鸟云服务器免流搭建(小鸟云服务器如何进行数据盘挂载?Windows)
- 云服务器推荐流程(云服务器入门须知的3个技巧)
- textarea设置行距(做一个能自适应高度的textarea的示例代码)
- jquery的直接设置下拉框的选中值(jquery实现户籍地选择下拉框)
- 护卫神建站服务器连不上(护卫神主机大师如何开启和关闭FTP功能?)