图片文字水平居中

上次想照着moe.hao123.com自己写一个看看,折腾了一下午这个问题,结果刚写到logo就放弃了,原因就是这个,这次又画一下午去弄清楚这个。
大多数网站的Logo,图标和名称是在一起的。

    menu{
        display: block;
        border-bottom: 1px solid rgba(0,0,0,.1);
        height: 4rem;
        padding: 0;
        margin: 0;
    }
    .warp{
        max-width: 100%;
        height: 4rem;
    }

    .warp a{
        color: #7F7F7F;
        display: inline-block;
        height: 100%;
    }

    .logo{

    }

    .subtitle{
        font-size: 2.5rem;
    }
    .btn{
        margin: 0.688rem;
        font-size: 1rem;
        display: inline-block;
        padding: .5rem 1rem;
        border-radius:  .125rem;
        border: .1rem solid coral;
    }

    .login{
        float: right;
    }
<menu>
    <div class="warp">
        <a href="javascript:console.log(‘click‘);">
            <img class="logo" src="{{root}}assets/img/xxr.ico" alt="WebSite" width="60" height="60" />
            <span class="subtitle">WebSite</span>
        </a>

        <span class="btn login">登陆</span>
    </div>
</menu>

显示效果

b67b4b4e94_999x231.png

img上面有一点空隙,基本是与WebSite的baseline对齐的

cde4fc1477b4d00f.png

8c85afc040b28c25.png

我是如何知道是baseline对齐?当把Website隐藏的时候,我把font-size设为0

a155b093a75674cc.png

解决办法,我能想到的只有3种黑科技

第一种,相对定位

.logo{
      position: relative;
      top: -7px;
 }

4cf99cf8e51ef296.png

第二种,绝对定位

    .warp a{
        color: #7F7F7F;
        display: inline-block;
        height: 100%;
        margin-left: 50px;
        padding-left: 70px;
    }

    .logo{
        position: absolute;
        top: 3px;
        left: 50px;
    }

bd81de201c149128.png

margin-left的作用是撑开左边不需要点击的

c48a54f6dff96db4.png

第三种,使用float,把基线干掉。

    .warp a{
        color: #7F7F7F;
        display: inline-block;
        height: 4rem;
        overflow: hidden;
        zoom: 1;
    }

    .logo{
        display: block;
        margin-top: 3px;
        float: left;
    }

    .subtitle{
        font-size: 2.5rem;
        line-height: 4rem;
        height: 4rem;
    }

手机上的效果

1cf488d5ed35d041.PNG

后来我又写了一个demo,这尼玛到底是Bug还是什么鬼?为什么会出现这么诡异的行为,

最后发现是 foundation的问题

<div class="container">
    <div class="img"></div>
    <span class="t-title">some</span>
</div>

<style>
    .container{
        height: 60px;
        margin-top: 20px;
        background: rgba(0,0,0,.5);
        border: none;
    }
    .img{
        width: 60px;
        height: 60px;
        display: inline-block;
        background: red;
    }
    .t-title{
        display: inline-block;
        font-size: 3.5rem;
    }
</style>

369ba7924b_1000x659.png

我把代码复制到其他地方用浏览器打开又没问题,那就说明是foundation库的问题。日了??~

b9d1e6ea0d_1000x659.png

最后做一个总结

这个就是为了解决以下问题
inline-box 与 inline-box之间因为有 inline所以有基线,全是这个基线在作怪。
改变其中一个的padding、margin,基线就变了,其他也会跟着移动。

<div class="container">
    <div class="img"></div>
    <div class="t-title">some</div>
</div>

<style>
    .container{
        height: 62px;
        margin-top: 20px;
        background: rgba(0,0,0,.5);
        border: none;
    }
    .img{
        width: 60px;
        height: 60px;
        /*padding-top: 20px;*/
        margin-top: 20px;
        display: inline-block;
        background: red;
    }
    .t-title{
        display: inline-block;
        /*margin-top: 20px;*/
        font-size: 62px;
        height: 62px;
        line-height: 62px;
    }
</style>

fbc63941ad_1000x321.png

关于Line-Height的应用 这里也提供,2个 图片 文本的垂直居中的例子

<style>
    body{
        padding: 20px;

    }
</style>

<style>
    .box {
        background: rgba(0,0,0,0.3);
        line-height: 200px;
        text-align: center;
    }

    .box > img{
        vertical-align: middle;
    }
</style>

<div class="box">
    <img src="{{root}}assets/img/xxr.ico" alt="">
</div>

<style>
    .box-2{
        margin-top: 20px;
        line-height: 40px;
        text-align: center;
        background: rgba(0,0,0,0.3);
    }

    .box > .text{
        display: inline-block;
        line-height: normal;
        text-align: left;
        vertical-align: middle;
        max-width: 100%;
    }
</style>

<div class="box-2">
    <h1>雨霖铃</h1>
    <div class="text">
        寒蝉凄切,对长亭晚,骤雨初歇。都门帐饮无绪,留恋处,兰舟催发。执手相看泪眼,竟无语凝噎。念去去,千里烟波,暮霭沉沉楚天阔。
        多情自古伤离别,更那堪冷落清秋节!今宵酒醒何处?杨柳岸,晓风残月。此去经年,应是良辰好景虚设。便纵有千种风情,更与何人说?
    </div>
</div>

4dd6492610_999x681.png

一下午就没了。好忧伤。

时间: 2024-07-30 10:11:09

图片文字水平居中的相关文章

css 单行图片文字水平垂直居中汇总

(1) 水平居中 a. 行内元素水平居中 因为img是行内元素(行内块级元素也一样)父级元素设置text-align:center即可,例如: <div style="width: 600px; height: 300px; border:1px solid red;text-align: center;" >    <img src="static/images/banner.png" style="width: 200px; heig

Android自定义“图片+文字”控件四种实现方法之 二--------个人最推荐的一种

http://blog.csdn.net/yanzi1225627/article/details/8633872 第二种方法也要新建一个图片+文字的xml布局文件,然后写一个类继承自LinearLayout.在主程序里实例化并设置相应参数.这种方式也是我最推荐的一种. 第一部分:myimgbtn_layout.xml [html] view plaincopyprint? <?xml version="1.0" encoding="utf-8"?> &

自定义属性之LinearLayout ImageView TextView模拟图片文字按钮

一.资源文件: 1.文字选择器: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="#FF111111"/>

css如何实现未知宽高div中图片垂直水平居中效果

css如何实现未知宽高div中图片垂直水平居中效果:在有时候可能有这样的情况,那就是想让一个图片在div中实现垂直水平居中效果,但是有时候div的尺寸是位置的,下面通过代码实例介绍一下在这种情况下如何实现图片的垂直水平居中效果.代码如下:实例一: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=&q

iOS UIButton 设置图片文字垂直排列

在实际的iOS项目开发中,我们经常需要改变系统的控件的样式,自己定义一个,同样的当我们发现系统自带的某些方法不好使时,我们也会想到重写这个方法. 本文主要记录笔者设置UIButton图片文字垂直排列的方法,最终解决了在图片和文字垂直排列的情况下,如果文字长度变化会导致图片位置变动的问题,对 于此问题网上有比较多的做法,我就不多说了,在此记录这点细节仅为加深印象并方便以后查阅.如有纰漏还请见谅 方案一:通过调整按钮图片和文字的内边距 UIEdgeInsets typedef struct UIEd

图片文字转换成word--内附 复杂图片文字识别资料简介

ocr-超级免费版软件哦: 简体中文+英文混排的文档识别:纯英文的文档识别:可以自动版面分析,也可以手动版面分析:分析结果支持边界区域自动调整:支持横排文字识别.竖排文字识别.照片保留:识别后的内容可以保存为可全文检索的双层pdf.或者txt文档,后续会更新双层pdf的结果显示效果:识别率99.8% 第一步,安装. 直接下载,解压后,找到.exe的文件,然后安装. 第二步,在桌面上找到文通免费版的快捷图标,双击进入软件. 第三步,就是正式的软件操作了. 分三个步骤来完成OCR识别: 1)你可以选

Android APP 分享图片文字到微信刚开始正常,后面就不弹出分享框了

按照官方的流程走了一遍,一切顺利,分享成功了,本来以为可以大功告成了,结果睡了一觉,第二天要给客户演示了,才发现TMD坑爹了,不能分享了,第三方的分享栏弹不出来了,我一阵惊慌,还好很快找到了解决办法:原因是我进行了代码混淆,但是没有对新添加的这部分分享到微信的代码进行处理,所以...解决问题的办法很简单:需要在混淆配置文件proguard.cfg中,增加如下两行代码: -keep class com.tencent.mm.sdk.openapi.WXMediaMessage { *;} -kee

css图片居中(水平居中和垂直居中)

http://www.51xuediannao.com/html+css/htmlcssjq/css_img_center.html css图片居中分css图片水平居中和垂直居中两种情况,有时候还需要图片同时水平垂直居中,下面分几种居中情况分别介绍 css图片居中分css图片水平居中和垂直居中两种情况,有时候还需要图片同时水平垂直居中,下面分几种居中情况分别介绍. css图片水平居中 利用margin: 0 auto实现图片水平居中 利用margin: 0 auto实现图片居中就是在图片上加上c

jQuery练手:仿新浪微博图片文字列表淡进淡出上下滚动效果

1.效果及功能说明 仿新浪微博图片文字列表上下淡进淡出间歇上下滚动 2.实现原理 首先要设定div内只能显示4个图片那么多出来的图片会自动隐藏然后在给图片添加一个动画的事件让他们可以滚动的播放出来上下滚动效果播放就是li标签里面的内容图片和文字把每一个li看成一个整体在滚动播放的时候进入div内的显示出来在最后离开div的时候隐藏在给整个动画效果设定一个时间就可以完整的运行. 3.运行环境 IE6 IE7 IE8及以上 Firefox 和 Google Chrome游览器下都可实现 4.所有图片