效果图:

1.使用小图标作为背景图实现

html:

     <div class="test">
<ul>
<li class="method1"><a href="#">背景图实现对齐</a></li>
<li class="method2"><i class="icon"></i><a href="#">使用display实现对齐</a></li>
<li class="method3"><i class="icon2"></i><a href="#">使用float浮动对齐</a></li>
</ul>
</div>

css代码:

/* 背景图实现图标与文字对齐 */
ul{
list-style: none;
/* background-color: aqua; */
}
a{
text-decoration: none;
color: black;
}
.method1{
background-image: url(./photoNewsLeft2.gif);
background-repeat: no-repeat;
/* 使用padding-left解决背景图标与文字重合问题 */
padding-left: 14px;
/* 调整背景图位置使文字与背景图保持水平 */
background-position: 0 6px;
}
.method1 a{
margin-left: 5px;
}

2.使用display:inline-block实现

css代码:

/* 使用display:inline-block属性实现图标文字水平对齐 */
.icon{
background-image: url(./photoNewsLeft2.gif);
background-repeat: no-repeat;
background-position: 0 0;
padding-left: 5px;
/* 设置为inline-block,块级元素设置宽高 */
display: inline-block;
width: 14px;
height: 14px;
/* vertical-align:设置行内元素的基线相对于该元素所在行的基线对齐,使图标与文字水平对齐 */
vertical-align: middle;
}

该方法需要注意的是,当元素设置为display:inline-block时,该元素为块级元素,在只有背景图的情况下,需要给该元素设置宽高,使其有效显示;背景图无法撑起元素使其具有宽高

3.使用float实现

css代码:

/* 使用float实现图标与文字保持水平对齐 */
.icon2{
background-image: url(./photoNewsLeft2.gif);
background-repeat: no-repeat;
background-position: 0 0;
/* 当元素使用float的时候会自动转化为块级元素 需要设置宽高*/
float: left;
width: 14px;
height: 14px;
/* 使用margin-top调整图标位置,使其与文字保持水平 */
margin-top: 6px;
}
.method3 a{
float: left;
margin-left: 5px;
}

此处该注意的是,当元素设置float属性后会自动转化为块级元素,需要给元素设置宽高,使icon背景图有效显示

注意:第一种方法之所以不用设置宽高,是因为第一种方法的背景图设置在了li元素上,而li元素有文字内容可以自动撑开,使背景图有效显示;后两种方法使用背景图的i元素无内容可撑开元素

总结:就个人而言,感觉第二种方法好用一些,宽高+vertical-align 可以很方便的调整图标与文字的垂直定位,使两者保持水平

如有不妥之处请指正

day3-3种实现小图标与文字水平对齐的方式的更多相关文章

  1. android Editview中加小图标或者文字实现

    关于这个问题,如果只是加小图标的话,已经提供了很好的支持,drawableLeft属性就可以设置左边的小图标,类推,右边也可以 不过如果你要加的是文字,我找了下,没有相应的属性,我们只能通过转换思路去 ...

  2. iOS开发之--使用storyboard下,tabbar小图标和文字颜色的设置

    在开发项目的时候,如果是使用故事版设计的架构,那么在设置tabbar小图标的时候,可能会出现一点小问题, 成功的设置方法如下: 1.设置seleectedImage和image,其实就是非选中状态的图 ...

  3. 在input内添加小图标或文字(元/月)等

    文字: <td class="formValue"> <div class="input-group"> <input id=&q ...

  4. EasyUI portal自定义小图标,不是用js方式加载

    <script src="~/Scripts/jquery.portal.js"></script> <script> $(function ( ...

  5. Android 自己定义 TextView drawableTop 图标与文字左对齐(效果图)

    public class DrawableTopLeftTextView extends TextView { private Paint mPaint; private float fFontHei ...

  6. html 图标和文字一行对齐

    原图: 效果图: 备注:vertical-align:middle <div> <p class="time tl-size12" style="pad ...

  7. css:图标与文字对齐的两种方法

    (好久没写博客了,这几个月的积累比较零碎,记在本子上,现在开始整理归类) 在平时写页面的过程中,常遇到要把小图标与文字对齐的情况.比如: 总结了两种方法,代码量都比较少. 第一种 对img设置竖直方向 ...

  8. CSS图标与文字对齐的两种方法

    在平时写页面的过程中,常遇到要把小图标与文字对齐的情况.比如: 总结了两种方法,代码量都比较少. 第一种 对img设置竖直方向对齐为middle, <div> <img src=&q ...

  9. win10 系统右键菜单不显示文字(只有小图标)修复方法

    如下图,win10点击鼠标右键调出菜单时,看不到菜单的文字,只显示了小图标. 解决方法: Cortana 搜索 cmd ,看到 命令提示符,右键,选择 以管理员身份运行. 在命令提示符里输入以下命令, ...

随机推荐

  1. **高效的MySql 随机读取数据

    一直以为mysql随机查询几条数据,就用 SELECT * FROM `table` ORDER BYRAND() LIMIT 5 就可以了. 但是真正测试一下才发现这样效率非常低.一个15万余条的库 ...

  2. JPEG格式 介绍

    JPEG格式 jpeg是有损压缩格式, 将像素信息用jpeg保存成文件再读取出来,其中某些像素值会有少许变化.在保存时有个质量参数可在[0,100]之间选择,参数越大图片就越保真,但图片的体积也就越大 ...

  3. 用js脚本实现链接

    使用json实现分页的时候,扩展了一下如何使用JS现实链接,其实很简单,但是之前我没用过... 就以分页的上一页,下一页来举例: <script type="text/javascri ...

  4. VMware安装CentOS后无法无法识别网卡的解决方法

    请找到安装CentOS虚拟机的安装目录,找到.vmx后缀名的文件,点击鼠标右键选择用记事本打开,在文件的最后一行添加内容:ethernet0.virtualDev = "e1000" ...

  5. router 配置按需加载对应的组件,配置active

    const routes = [ { path: '/', component: App, children: [ {path: '/index/:type', name: 'index', comp ...

  6. 多线程分配线程的实现方案:CountDownLatch类

    需求:假如我们本地有4个文件需要解析,每个文件的内容为20万行.为了提高效率我们要创建4个线程进行处理.等4个线程处理完,要在文件日志表中记录处理状态. 一般的的解决方法是使用join,join用于让 ...

  7. 搭建与破解wiki (confluence)

    搭建环境: 操作系统:contos7 数据库:5.5.60-MariaDB java版本: jdk-11.0.2 confluence版本:confluence6.7.1 一. 准备工作 下载conf ...

  8. HashMap 的实现原理解析(转载)

    HashMap 概述 HashMap 是基于哈希表的 Map 接口的非同步实现.此实现提供所有可选的映射操作,并允许使用 null 值和 null 键.此类不保证映射的顺序,特别是它不保证该顺序恒久不 ...

  9. MySQLdb._exceptions.OperationalError: (2059, <NULL>)

    这是将 将数据迁移至mysql8.0时遇到的问题, 在网上找到了解决方案(亲测有用), 这是因为mysql8.0密码加密的问题,mysql8.0对用户密码的加密方式为caching_sha2_pass ...

  10. Mybatis是什么?mybatis中的对一和对多关系怎么配置

    Mybatis是什么? 1.mybatis出来之前,由java的jdbc连接数据库,mybatis出来之后,将jdbc进行封装,实现更有效的连接:   2.mybatis的对象SqlSession,s ...