小图标和文字的居中对齐-小总结

小图标和文字的居中对齐问题,相信大家在很多时候会遇到。今天楼主从其他大神那边扒了一些方法,现在做个小小的总结。

说明:本次用到的小图标来自阿里巴巴矢量图,大家可以去找一下(地址:http://www.iconfont.cn/plus/collections/detail?cid=3223)我的图标尺寸是20px*20px

第一种办法:vertical-align和line-height结合

特点:这种办法只适用于放置小图标和文字的标签的display属性都是inline的情况。

效果图:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            div {
                height: 20px;
                line-height: 20px;
                box-sizing: border-box;
            }
            img {
                vertical-align: middle;
                box-sizing: border-box;
            }
            span {
                vertical-align: middle;
                box-sizing: border-box;
            }
        </style>
    </head>
    <body>
        <div>
            <img src="../img/whale.png" />
            <span>鲸鱼宝宝</span>
        </div>
    </body>
</html>

第二种办法:使用背景图去做

特点:兼容性非常好

效果图:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            span {
                height: 40px;
                line-height: 40px;
                padding-left: 24px;
                box-sizing: border-box;
                background: url(../img/whale.png) left center no-repeat;
            }
        </style>
    </head>
    <body>
        <p>
            <span>鲸鱼宝宝</span>
        </p>
    </body>

</html>

上述代码的height和line-height可以去掉,这两个设置不是必须的。

看到的其他:

第三种办法:display:table+vertical-align

特点:不是所有的浏览器版本都支持display:table

效果图:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .box {
                background: lightcoral;
                color: #fff;
                height: 45px;
                width: 120px;
                border-radius: 5px;
                text-align: center;
                display: table;
                box-sizing: border-box;
            }
            .img_box {
                display: table-cell;
                vertical-align: middle;
            }

            img {
                vertical-align: text-top;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="img_box">
                <img src="../img/whale.png" />
                <span>鲸鱼宝宝</span>
            </div>
        </div>
    </body>

</html>

ps:配色可能有些奇怪,还请不要介意哈,哈哈哈哈!

第四种:position:absolute+transform: translate(0, -50%)

特点:没有办法的办法!

效果图:

代码如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style type="text/css">
            .box {
                background: lightcoral;
                color: #fff;
                height: 45px;
                width: 120px;
                border-radius: 5px;
                position: relative
            }
            img,
            span {
                position: absolute;
                top: 50%;
                transform: translate(0, -50%);
            }
            img {
                padding-left: 12px;
            }
            span {
                margin-left: 40px;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <img src="../img/whale.png">
            <span>鲸鱼宝宝</span>
        </div>
    </body>
</html>

ps:padding-left和margin-left是为了调试位置的,可能不够居中,不过没关系啦,这个不是重点。

好啦,这就是我今天一上午总结的成果,欢迎指正!马上就是五一啦,超级激动啊!!!

时间: 2024-10-18 13:08:55

小图标和文字的居中对齐-小总结的相关文章

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

关于这个问题,如果只是加小图标的话,已经提供了很好的支持,drawableLeft属性就可以设置左边的小图标,类推,右边也可以 不过如果你要加的是文字,我找了下,没有相应的属性,我们只能通过转换思路去实现,我的方法是用个layout去包括一个Textview和一个Editview就可以了. 1 <LinearLayout 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content

checkbox和后面文字无法居中对齐的解决方案

制作前端页面时,表单的页面中都存在表单元素与提示文字无法对齐的问题.下面是针对这一问题的解决方案: 先上结果图看效果,吼吼~ 最上面两个是经过css处理后的效果,已经居中对齐了哦~,最后一个是没有处理的效果,明显没有对齐.解决的关键是vertical- align:middle属性,一定要给input标签和文字的标签同时加上该属性.对于纯英文的内容而言,这样就可以了,但是对于包含中文内容的,如果 此时仍没有居中对齐,就需注意一下字体的设置了.经过测试,当把字体设置为Arial或Tahoma后,问

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

在开发项目的时候,如果是使用故事版设计的架构,那么在设置tabbar小图标的时候,可能会出现一点小问题, 成功的设置方法如下: 1.设置seleectedImage和image,其实就是非选中状态的图片,设置选中是的图片,也可以用代码设置,如下: self.tabBarController.tabBar.selectedItem.selectedImage = [UIImage imageNamed:@"home_selected"]; 2.这时候,会发现,不管你怎么弄,只会显示颜色不

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

文字: <td class="formValue"> <div class="input-group"> <input id="AccountBillPrice" type="number" class="form-control" /><span class="input-group-addon">元/月</span> <

div css 图片和文字上下居中对齐

想要图片和文字水平居中对齐很容易,可今天做这个树的时候,遇到了要将图片上下居中.这下就不知道怎么搞. 拿手册看也看不出所以然来,不同的浏览器对DIV的支持不一个,目前最好的浏览器是Firefox. 这里涉及到两个属性,一个是line-height,另一个是vertical-align.在IE里面,只需要line-height就可以实现这个效果,不过要想在firefox和opea里面也实现这样的效果,必须用到vertical-align,而且这是属性一定要定义在image上面,而不是定义在div上

PHP合成图片、生成文字、居中对齐、画线、矩形、三角形、多边形、图片抗锯齿、不失真 高性能源码示例

function generateImg($source, $text1, $text2, $text3, $font = './msyhbd.ttf') { $date = '' . date ( 'Ymd' ) . '/'; $img = $date . md5 ( $source . $text1 . $text2 . $text3 ) . '.jpg'; if (file_exists ( './' . $img )) { return $img; } $main = imagecrea

UIButton 图标与文字上下垂直对齐

botton.imageEdgeInsets = UIEdgeInsetsMake(- (botton.frame.size.height - botton.imageView.frame.size.height)/2, 0, (botton.frame.size.height - botton.imageView.frame.size.height)/2, 0); botton.titleEdgeInsets = UIEdgeInsetsMake(0, - (botton.imageView.

移动端实现 iphone android 小图标 文字排版

情景描述: 在手机浏览器中展示一些数据,这些数据前面都小图标,要求:小图标和文字水平对齐. 效果图 问题分析: 对于图文横排的问题,有很多的解决办法,但是究其根本还是将图片和文字放在同一行上进行展示. 实现方案: 方案一: 写法上很简单,但是这个的兼容性有很大问题. .m-icon{ display:inline-block;  vertical-align:middle; padding-right:1em; height:1em; background-image:url(icon.png)

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

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