慎用text-indent的负值

为了语义化,我们可能会利用图片替换文字的方式来给我们的站点增色,举个栗子:

        <p>文字文字</p>

        p {
            text-indent: -2500px;        // 小,在高分辨率宽屏下文字隐藏失败
            //text-indent: -99999px;     // 大,但可能存在性能问题,甚至被搜索引擎屏蔽
            background: url(logo.png);
        }

这段代码中我们希望隐藏文字,提升 SEO,所以使用 logo.png 这个图片进行替换,这时会对文字设置一个负缩进值。

这里的 -2500px 在以前基本可以解决隐藏文字的问题,但目前发现高分辨率浏览器下这个值已经在浏览器可视范围内了,造成文字隐藏失败的问题。

而如果将这个值设置为更大,如 -99999px 时,又会造成浏览器的性能问题:浏览器需要生成一个宽度为 99999px 的盒模型,所以也要限制这个值的大小。

还有人指出,不少人滥用这个属性为了提升 SEO ,而搜索引擎可能会反过来屏蔽这里的文字。

除此之外,在从右到左读的语言环境中,这个负值可能会造成很长的横向滚动条,所以可以添加 direction 规则来避免:

         p {
            text-indent: -9999px; // 万一日后用户屏幕宽度达到1万肿么办?(这好像不可能。。。)
            background: url(logo.png);
            direction: ltr; // 设置为从左到右读的方向,避免 rtl 语言环境下出现横向滚动条
        }

一个比较好的可选方案:

        p { 
            text-indent: 100%; 
            white-space: nowrap; 
            overflow: hidden; 
            background: url(logo.png);
        }

参考链接:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,863评论 1 92
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,275评论 0 1
  • 前端开发面试知识点大纲: HTML&CSS: 对Web标准的理解、浏览器内核差异、兼容性、hack、CSS基本功:...
    秀才JaneBook阅读 2,622评论 0 25
  • 如果我问你:“你吃过橘子吗?“ 你会怎么回答? 你大概会因为这样一个显而易见的问题感觉匪夷所思, 你大概也会因为这...
    Lee大人阅读 732评论 0 1
  • 每个人的性格皆不同,每个人喜欢的歌曲便不同,那么,我在我失眠的短暂时刻,记录几曲我爱的歌,my style…… 随...
    2018奔跑阅读 176评论 0 0