css图标跟文字对齐的两种方式
css图标跟文字对齐的两种方式:
第一种方式参考张鑫旭的css世界这本书中的讲解方式:
效果:
方式1:
.box { line-height: 20px; } .box .icon { display: inline-block; width: 20px; height: 20px; white-space: nowrap; letter-spacing: -1em; text-indent: -999em; } .box .icon:before { content: '\3000'; } .icon-delete { background: url(img/delete.png) no-repeat center; } .large { font-size: 20px; }
<div class="box"> <h4>1. 空标签后面跟随文本</h4> <p><i class="icon icon-delete"></i>删除</p> <h4>2. 标签里面有“删除”文本</h4> <p><i class="icon icon-delete">删除</i>随便什么文字</p> <h4>3. 字号变大</h4> <p class="large"><i class="icon icon-delete"></i>删除 随便什么文字</p> </div>
分析:
(1)图标高度和当前行高都是 20px。很多小图标背景合并工具都是图标宽高多大生成的CSS 宽高就是多大,这其实并不利于形成可以整站通用的 CSS 策略,我的建议是图标原图先扩展成统一规格,比方说这里的 20px×20px,然后再进行合并,可以节约大量 CSS 以及对每个图标对齐进行不同处理的开发成本。
(2)图标标签里面永远有字符。这个可以借助:before 或:after 伪元素生成一个空格字符轻松搞定。
(3)图标 CSS 不使用 overflow:hidden 保证基线为里面字符的基线,但是要让里面潜在的字符不可见。
方式2
.box2 i { width: 20px; height: 20px; } .box2 i { vertical-align: middle; display: inline-block; } .box2 span { vertical-align: middle; display: inline-block; }
<div class="box2"> <h4>-----------------------------------</h4> <h4>1. 空标签后面跟随文本,文本加span标签</h4> <p><i class="icon icon-delete"></i><span>删除</span></p> <h4>2. 字号变大</h4> <p class="large"><i class="icon icon-delete"></i><span>删除</span></p> </div>
分析:这个主要用vertical-align和inline-block两种对齐,也要给图标文字加标签才行。
本文作者: Jasmine
本文链接: https://www.jianbaizhan.com/article/687
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!