很久之前写过一个星星评级的样式,当时开发人员在嵌套代码的时候出现很多问题,同样的一个样式有的页面正常有的页面就出现星星错位的问题,仔细研究了一下代码,发现问题原来出在了inline-block上。

目标样式:评级星星

实现手段:<span class="star"><span class='star1'></span></span>

相应样式:.star给一个灰色星星背景,display:inline-block使其支持宽高;
.star1给一个黄色星星背景,用width百分比来控制星星的个数,给一个display:inline-block使其支持宽高;

出现的问题:内部黄色的星星有向下错位现象,和外部span顶部大约有5px的上边距;

解决方案:最初是使用相对定位将内部黄色的星星相上top:-5px;这个问题时好时坏,有的时候没事,有的时候有事,初步分析和浏览器有关。

无意中将display:inline-block改成了display:block;发现问题解决了,两种颜色的星星完全重合,也不需要将黄色星星进行定位了。

总结:inline-block在使用的过程中会有间隙,不在特殊情况下尽量不用,需要inline就直接inline,需要block就直接block。

如果确实需要使用inline-block,那么去除间隙的方式有以下几种:
一:去除标签之间的空格和回车;
二:使用负边距;
三:给父级元素设置font-size:0,子集根据实际情况使用font-size。

本人比较常使用的方法是第三个,有的时候空格和回车是难免的,而且完全没有空格和回车的代码也比较难于看懂,至于第二个方法,只是不喜欢用。

另外,对于inline-block的间隙问题,有的时候其实是可以加以利用的,比如说有的分页需要一些小空隙,那就刚好可以使用这个方式。

关于inline-block的间隙问题的更多相关文章

  1. inline,block,inline-block的区别

    display:block block元素会独占一行,多个block元素会各自新起一行.默认情况下,block元素宽度自动填满其父元素宽度. block元素可以设置width,height属性.块级元 ...

  2. 块状元素和内联元素 【inline block】

    // 9) { colorRandom += colorArray[randomV - 10]; } else { colorRandom += randomV; } } currentEle.css ...

  3. inline, block, and inline-block

    总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通 ...

  4. display:inline block inline-block 的区别

    原文地址:http://blog.csdn.net/jly036/article/details/5506182 display:block就是将元素显示为块级元素. block元素的特点是: 总是在 ...

  5. inline,block,inline-block解析

    display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div& ...

  6. inline-block,inline,block,table-cell,float

    float:left ---------------------------------------------------------------------------------------- ...

  7. CSS3如何去除 inline block 元素之间多出的空格

    display: inline-block 属性很好的避免了元素的浮动问题,但是会有点小问题,就是 inline-block 元素间的回车会被显示为一个空格.然而,我们写代码时,都是用回车来格式化的. ...

  8. CSS 概念 Block Inline Containing block

    Block 元素 包括 "block-level box," "block container box," and "block box" ...

  9. [CSS3] CSS Display Property: Block, Inline-Block, and Inline

    Understanding the most common CSS display types of block, inline-block, and inline will allow you to ...

  10. 大话css之display的Block未解之谜(一)

    用了几年的css了,css中inline | block |inline-block|table|flex从来没有做过系统的整理和分析,网上的分析文章也很多,零散. 今天有空,就在这做一下整理分析 b ...

随机推荐

  1. 快速排序 Quick Sort

    自己写的代码,记录一下.分别记录了两种partition的方法. public class QuickSort { public static void quickSort(int[] nums, i ...

  2. LINUX输入输出与文件——续

    1 目录操作 改变目录或文件的访问权限 #include <sys/stat.h> int chmod(const char *path, mode_t mode); //mode形如07 ...

  3. mq_send

    NAME mq_send - 将消息发送到消息队列 (REALTIME) SYNOPSIS #include <mqueue.h>int mq_send(mqd_t mqdes, cons ...

  4. vim不保存退出

    对于刚开始使用vi/vim文本编辑器的新手来说,如何在不保存更改而退出vi/vim 文本编辑器呢? 当你使用linux vi/vim 文本编辑器对linux下某个配置文件做编辑操作,当你更改完之后,可 ...

  5. VCL定义和使用CM_Message的原因(主要是内部控制,同时可简化参数传递,还可截住消息,统一走消息路线,还可省内存)

    内部控制是指,做了某些操作后产生某些效果,但是Windows系统本身不提供这样的消息,应此不得不自定义.比如父窗口改变了字体,那么所有子窗口也都应该改变字体,至少也得通知一下它们,让子控件自己决定是否 ...

  6. 让fdisk输出更准确合理

    注意:新版本的fdisk默认输出已经正确合理了,本文只适用于旧版本的fdisk. 1 无option选项参数的输出 [root@localhost ~]# fdisk -l Disk /dev/sda ...

  7. iOS:自动布局Autolayout

    自动布局:Autolayout 简介: 在以前的iOS程序中,是如何设置布局UI界面的? 经常编写大量的坐标计算代码 为了保证在3.5 inch和4.0 inch屏幕上都能有完美的UI界面效果,有时还 ...

  8. Android 使用全局变量传递数据

    使用全局变量传递数据,所谓的全局变量类似于jee开发中的application变量.申明后,全局调用.只有当内存被清理后,才被销毁.否则一直可以调用. 还是使用点击一个button,传递一个数据到另一 ...

  9. CactiEZ命令行添加主机监控参考

    1.添加主机 php -q add_device.php --description= --community="public" 查询主机模板: php -q add_device ...

  10. 机器人学 —— 机器人视觉(Bundle Adjustment)

    今天完成了机器人视觉的所有课程以及作业,确实是受益匪浅啊! 最后一个话题是Bundle Adjustment. 机器人视觉学中,最顶尖的方法. 1.基于非线性优化的相机位姿估计 之前已经在拟合一篇中, ...