zoukankan      html  css  js  c++  java
  • vertical-align作用的前提++图片不上下居中

    很多人,尤其CSS新手,会问这么一个问题:“为什么我设置了vertical-align却没任何作用?”

    因为vertical-align起作用是有前提条件的,这个前提条件就是:只能应用于内联元素以及display值为table-cell的元素。

    换句话说,vertical-align属性只能作用在display计算值为inlineinline- blockinline-tabletable-cell的元素上。因此,默认情况下,<span>< strong><em>等内联元素,<img><button><input>等替换元素,非HTML规范的自定义标签元素,以及<td>单元格,都是支持vertical-align属性的,其他块级元素则不支持。

     

    当然,现实世界是没有这么简单的。CSS世界中,有一些CSS属性值会在背后默默地改变元素display属性的计算值,从而导致vertical-align不起作用。比方说,浮动和绝对定位会让元素块状化,因此,下面的代码组合vertical-align是没有理由出现的:

    .example {
      float: left;
      vertical-align: middle; /* 没有作用 */
    }
    .example {
      position: absolute;
      vertical-align: middle; /* 没有作用 */
    }



    .box {
      height: 128px;
    }
    .box > img {
      height: 96px;
      vertical-align: middle;
    }
    <div class="box">
      <img src="1.jpg">
    </div>

    此时图片顶着.box元素的上边缘显示,根本没垂直居中,完全没起作用!

    这种情况看上去是vertical-align:middle没起作用,实际上,vertical-align是在努力地渲染的,只是行框盒子前面的“幽灵空白节点”高度太小,如果我们通过设置一个足够大的行高让“幽灵空白节点”高度足够,就会看到vertical-align:middle起作用了, CSS代码如下:

    .box {
      height: 128px;
      line-height: 128px;  /* 关键CSS属性 */
    }
    .box > img {
      height: 96px;
      vertical-align: middle;
    }
     
  • 相关阅读:
    Linux的内存分页管理
    python3将汉字转换为大写拼音首字母
    linux下安装微信小程序开发工具
    有效使用Django的QuerySets
    VsCode快捷键
    js 里面的键盘事件对应的键码
    ubuntu下wps的安装
    mac 安装 python mysqlclient 遇到的问题及解决方法
    微服务初步理解
    有return的情况下try catch finally的执行顺序(最有说服力的总结)
  • 原文地址:https://www.cnblogs.com/chengfengchi/p/10662283.html
Copyright © 2011-2022 走看看