zoukankan      html  css  js  c++  java
  • css设置span和img垂直居中(设置line-height失效)

    我要实现下图的样子,币种和旗子都是垂直居中,方法很简单,给img设置vertical-align:middle.在父容器上设置上line-height,效果如下

    要实现span垂直居中,代码如下:

    <style>
         .flag{
              position: absolute;
              bottom: 0;
               23rem;
              height: 2.5rem;
              line-height: 2.5rem;
          }
          .flag img{
               1.58rem;
              height: 2.1rem;
              vertical-align: middle;
          }
    </style>
    
    
    <div class="flag">
           <img src="./img/flag.png">              
           <span>币种:...</span>
    </div>
    
    

    解释一下这么写的原因:

    img是行内元素,会带有默认样式vertical-align:baseline

    vertical-align是指定行内元素(inline)垂直对齐方式的(目前只有图片支持vertical-align属性,默认属性值是baseline,所以会导致图片产生一个3px左右的下边距,解决方法就是给vertical-align设置非baseline的内容)

    官网解释vertical-align:baseline,使元素的基线与父元素的基线对齐;

    父元素的基线,实际上解释的比较模糊,我的理解是父元素基线在父容器底部附近,但是还没有完全到底;

    我理解的:设置baseline的元素会影响周边行内元素,让baseline元素和周边元素都处于容器底部偏上一点点的基线位置

    所以会出现这种情况,币种位于底部,即使设置了line-height也无法是币种垂直居中

    解决方法:给旗子设置vertical-align:middle让旗子垂直居中,然后给父容器设置line-height让币种垂直居中

    以上理解,如有错误,欢迎指正

  • 相关阅读:
    C#开源框架
    8 种 NoSQL 数据库系统对比
    安装补丁“此更新不适用于你的计算机”解决办法
    .net开源资料
    winform程序退出
    jquery.chained与jquery.chained.remote使用以及区别
    存储过程使用回滚
    C# Panel中绘图如何出现滚动条
    C#结构体的特点浅析
    如何用堆栈和循环结构代替递归调用--递归转换为非递归的10条军规
  • 原文地址:https://www.cnblogs.com/liuXiaoDi/p/12868620.html
Copyright © 2011-2022 走看看