zoukankan      html  css  js  c++  java
  • inline-block间距解决方案

    当我们将元素设为inline-block时,总是会莫名其妙出现一些间距

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                ul {
                    padding-left: 0;
                }
                ul li {
                    width: 20px;
                    height: 20px;
                    background: red;
                    display: inline-block;
                }
            </style>
        </head>
        <body>
            <ul>
                <li></li>
                <li></li>
                <li></li>
                <li></li>
            </ul>
        </body>
    </html>

    效果如下:

    原因在于空白符的存在!</li>与下一行的<li>之间存在空白换行符

    解决方法一般是在不破坏dom结构的前提下改变写法以清除换行符

    1.结束标签与开始标签拼接

    <ul>
        <li>
            
        </li><li>
            
        </li><li>
            
        </li><li>
            
        </li>
    </ul>

    2.拆分开始标签

    <ul>
        <li>
        </li><li
        ></li><li
        ></li><li
        ></li>
    </ul>

    3.拆分结束标签

    <ul>
        <li></li
        ><li></li
        ><li></li
        ><li></li>
    </ul>

    4.将换行符注释掉

    <ul>
        <li></li><!--
        --><li></li><!--
        --><li></li><!--
        --><li></li>
    </ul>

    5.使用margin负值

    即将margin-left设为负值,让其向左偏移,但偏移距离与浏览器、上下文字体及字体大小有关,一说为-0.25em,亲测并不适用,故此方法适用性不佳

    6.清除闭合标签(看起来怪怪的。。)

    <ul>
        <li>
        <li>
        <li>
        <li>
    </ul>

    注意: 父元素的闭合标签不可省去,否则在低版本浏览器(主要指IE)上会有问题

    7.父元素font-size设为0

    原理很简单,父元素font-size设为0后空白字符字体大小也为0,自然看不出来,但是在有些浏览器上,最小字体有限制,主要指的是chrome,

    这时,可加上-webkit-text-size-adjust: none (-webkit-text-size-adjust 是否根据设备大小调整字体,仅仅在移动设备上有效),但最新的chrome已解决此问题

    8.letter-spacing设为负值

    将leter-spacing设为负值可减少设置消除间距,不同浏览器数值不一样,一般不会发生叠加,但opera上会有过小还原的现象。

    9.word-spacing设为负值

    类似于letter-spacing的效果,但过小时会发生叠加,私认为此方法也不算可取。

    因此现阶段最好的方法为: 改变dom结构、清除闭合标签及font-size设为0

  • 相关阅读:
    ext与xfs文件系统比较与总结
    MySQL prepare 原理
    MySQL 性能监控 4 大指标
    MySQL数据库设计规范
    What To Do When MySQL Runs Out of Memory: Troubleshooting Guide
    MySQL 8.0 —— CATS事务调度算法的性能提升
    MySQL5.7中的sql_mode默认值
    MySQL8.0——Resource Group(资源组)
    MySQL 8.0 —— 数据字典
    mysqlreport工具
  • 原文地址:https://www.cnblogs.com/yanze/p/7619703.html
Copyright © 2011-2022 走看看