• inline-block 引发的间隙原因与解决方法


    这是一个常见的问题,但是一些新人没遇到过可能不会发现,现在我对这种现在进行了分析与总结

    设置一些元素为块级元素时一般这么写

    li{display:inline-block; *display:inline; *zoom:1;}
    display:inline-block在IE下仅仅是触发了layout,而它本是行布局,触发后,块元素依然还是行布局。所以需让块元素呈递为内联对象,display:inline则起到了这一作用(*号只被ie6、7所识别),然后再通过zoom:1触发layout。即可实现所谓的inline-block。
    display:inline-block布局的元素在chrome下会出现几像素的间隙,原因是因为我们在编辑器里写代码的时候,同级别的标签不写在同一行以保持代码的整齐可读性,即inline-block布局的元素在编辑器里不在同一行,即存在换行符,因此这就是著名的inline-block“换行符/空格间隙问题”。如果inline-block元素间有空格或是换行产生了间隙,那是正常的,应该的。如果没有空格与间隙才是不正常的(IE6/7 block水平元素)。
    常见的解决方法:
    1:去除标签段之间的空格,但是会导致HTML标签可读性差
    3:标签写成不闭合,省掉尾标签</a>
    2:使用margin、word-spacing、letter-spacing负值:负值的大小与上下文的字体和文字大小相关,外部环境的不确定性,以及最后一个元素多出的父值等问题,这个方法不适合大规模使用
    4:使用font-size:0,最好的方法父元素font-size:0; 他的作用便是让多余的空白符消失,当然这会造成所有子元素的文本都一同消失,因此你需要再在子元素加一个font-size:12px。
  • 相关阅读:
    深入研究Node.js的底层原理和高级使用
    Node.js实际案例分享
    Node.js的下载、安装、配置、Hello World、文档阅读
    Node.js初识
    sphinx初识
    Yii2中后台用前台的代码设置验证码显示不出来?
    彻底解决Yii2中网页刷新时验证码不刷新的问题
    yii2高级模板使用一个域名管理前后台
    Shot(三分)
    遮挡判断(模拟)
  • 原文地址:https://www.cnblogs.com/huangxiaowen/p/4313453.html
Copyright © 2020-2023  润新知