两千人站长交流群:462137404 / VIP用户交流群:462197261 收藏本站哈站网 zhan.ha.cn 精品建站资源第一站,让建站变得更加容易!
业务咨询:78895949 联系电话:13402647354
  • 当前位置:
  • css解决display:inline-block;产生的缝隙(间隙)的方法

    DIV+CSS教程2018年05月30日关键词:

    今天在做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><div class="box"> <span>111</span> <span>111</span> <span>111</span> <span>111</span></div></body></html>

    效果如下:

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

     方法一:元素之间不换行,代码如下:

    <div class="box"> <span>111</span><span>111</span><span>111</span><span>111</span></div>

    效果如下:

    方法二:给其父元素设置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:

    <div class="box"> <span>111</span> <span>111</span> <span>111</span> <span>111</span></div>

    效果如下:

    方法三:负margin方法,需要注意的是这个间隙跟字号大小有关系的,所以间隙不是个确定值。

    以上三种方法,前两种是比较好的解决办法,第三种方法不推荐使用。网上还有其他的解决办法,但我认为还是前两种比较好。

    PS:

    结合广大前端大神的评论建议来看,也可以给其父元素设置display:flex来消除缝隙,且代码量少了,但是用在我的水平滑动卡片的效果中导致所有的元素都处在了可视窗口中,就不能实现水平左右滑动了。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    其他网友正在看:
    IE8的css hack \9 使用说明

    首先感谢“丸子”提供的这个IE8的css hack; 关注过IE8的css hack的人相信大家都在使用这个hack,就是“\9”的css hack: .test{ color:#000000; /* FF,OP支持 */ color:#0000FF\9; /* 所有IE浏览器(ie6+)支持 ;但是IE8不能识别“*”和&l···

    2018-05-30关键词:

    css让容器水平垂直居中的7种方式

    这种css布局平时用的比较多,也是面试题常出的一个题,网上一搜一大丢,不过还是想自己总结一下。这种方法比较多,本文只总结其中的几种,以便加深印象。效果图都为这个:方法一:position加marginXML/HTML Code复制内容到剪贴板<div class="wrap">···

    2018-05-30关键词:

    CSS实现鼠标滑过鼠标点击代码写法

    鼠标滑过元素,使得元素的样式发生改变我们定义一个按钮标签复制代码代码如下:<button class=”px-button”>BUTTON</button>我们首先设置按钮的背景颜色为灰色:复制代码代码如下:.px-button{background-color: grey;}我们要使得鼠标滑过···

    2018-05-30关键词:

    CSS中的指定值、初始值和计算值学习教程

    CSS 中的声明,由 CSS 的特性和值,中间以 ":" 隔开组成。我们可以使用 CSS 选择器,为选中的元素设置需要的样式。在介绍 CSS 的特性和值的时候,特地的提到了浏览器应该怎样处理错误的值 — 应该将包含错误值,不符合句法的值的声明直接忽略。然而有些浏览器却···

    2018-05-30关键词:

    CSS性能优化提高css性能的方法

    不规范的css会导致很多性能问题,这些问题可能在一些小的项目中不够明显,但是在大型项目中就会显现出来。css匹配原理在优化css之前我们需要了解下css是怎么进行工作的,我们都知道css是由选择器,属性和属性值构成的。我们可能会这样写上一行代码CSS Code复制内容到剪贴···

    2018-05-30关键词:

    CSS实现页面两列布局与三列布局的方法示例

    1. 使用BFC的原理实现BFC的规则之一,就是BFC区域,不会与float box重叠,因此我们可以利用这一点来实现3列布局。html代码如下XML/HTML Code复制内容到剪贴板<div class="left"></div>  <div class="right">&···

    2018-05-30关键词: