• 清除行内元素之间HTML空白的几种解决方案


    行内块(inline-block)是非常有用的,特别是想要不用'block'和'float'来控制这些行内元素的margin,padding之时。 
    问题来了,HTML源码中行内元素之间的空白有时候显示在屏幕上那是相当的讨厌。 
    当然,有一些技巧(方法)可以用来清除他们:比如粗暴地完全删除空白,或者其他的方法: 


    解决方案1: font-size:0; 
    最好的方法是在外层元素上设置font-size:0;同时在内层元素上指定字体具体的大小。 

    复制代码
    代码如下:

    ul.inline-block-list { /* 比如 ul 或者 ol元素 */ 
    font-size: 0; 

    ul.inline-block-list li { 
    font-size: 14px; /* 设置具体的字体大小 */ 


    为了抵消外层元素的字体属性,在内层元素必须指定 font-size 属性,当然这很简单。 
    假若代码是一种复杂的嵌套关系,那么你可能不好去计算或指定这些字体属性,但在大多数情况下,这就是你想要的效果! 

    解决方案2: HTML 注释 
    这种方法比较渣,但是效果也不错。使用HTML的注释标记顶替元素之间的空白: 

    复制代码
    代码如下:

    <ul> 
    <li>Item content</li><!-- 
    --><li>Item content</li><!-- 
    --><li>Item content</li> 
    </ul> 


    一个字来形容: 渣.如果用2个字来形容,那就是"渣渣",用3个字来形容,"解决了"。 

    解决方案3: 指定margin属性值为负数 
    和方案2类似,这个也比较渣。可以使用行内元素的margin属性来抵消空白: 

    复制代码
    代码如下:

    ul.inline-block-list li { 
    margin-left: -4px; 


    这是最糟糕的解决方案了,因为你必须根据具体情况去计算,有时候还不对。你应该尽量避免这样做。 

    虽然这些方案都不是很理想,但是如果不这样处理,那你的HTML代码结构可能就非常混乱,成为标准的垃圾代码。 
    因为行内元素非常好用,所以这并不是一个小心避免的雷区,作为开发人员,学会处理这种空白问题也是很重要的。

  • 相关阅读:
    ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL
    MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction
    二叉树的建立&&前中后遍历(递归实现)&&层次遍历
    实现一个简单的散列表(HashMap)
    单向链表的删除及插入操作(以头插入法建立单向链表)
    单向链表的建立(头插入法)
    单向链表的建立(尾部插入法)
    链式队列(单向列表实现)
    顺序队列(数组实现)
    链式栈(单向链表实现)
  • 原文地址:https://www.cnblogs.com/zengsiyu/p/4893477.html
Copyright © 2020-2023  润新知