zoukankan      html  css  js  c++  java
  • inline-block元素因基线对齐而造成上浮的问题

      假设我需要实现将三个块级元素并排对齐的如下效果:

      代码如下:

     1 <!DOCTYPE html>
     2 <html lang="en-US">
     3 <head>
     4 <style>
     5 .container {
     6     display: inline-block;
     7     margin: 15px;
     8     padding: 5px;
     9     width: 200px;
    10     height: 200px;
    11     border: 1px solid black;
    12 }
    13 </style>
    14 </head>
    15 
    16 <body>
    17 
    18 <div style="margin: 200px;">
    19     <div class="container">
    20     <h2>Title</h2>
    21     <p>One One One One</p>
    22     </div>
    23 
    24     <div class="container">
    25         <h2>Title</h2>
    26         <p>Two Two Two Two</p>
    27     </div>
    28 
    29     <div class="container">
    30     <h2>Title</h2>
    31     <p>Three Three Three Three</p>
    32     </div>
    33 </div>
    34 
    35 </body>
    36 </html>

      然而,如果当某个div块中没有内容时,就会发生该div块上浮无法对齐的情况:

      造成这种现象的原因在于:行内元素和替换元素(如img、input、textarea等)会有个称做 基线 的东西;基线位于文字的最底部。如果块状行内元素(inline-block)中无文本内容的时候,其基线就会自动移至元素的最底部。另外,图片以及非替换元素的基线也是为元素最底部的。

           上述元素都是以这个基线作为垂直对齐的默认参照的,那么 块状行内元素无法对齐的原因就很容易理解了;看下面几个例子:

      既然这种情况是由元素以基线对齐才导致的,那么 只要设置元素的垂直对齐方式为别的就可以了;即使用vertical-align属性,该属性的参数如图:

      比如为块状行内元素引入样式 1 vertical-align: top; 后,便可以了:

  • 相关阅读:
    CSP-S 2019游记
    南校五天集训游记
    web.xml模板
    JDBC Template的基本使用
    Spring AOP(3)使用AspectJ xml配置
    Spring AOP(2)使用AspectJ注解
    Spring Aop(面向切面编程)
    Spring Bean管理3(xml与注解混合使用)
    Python核心技术与实战——十二|Python的比较与拷贝
    test
  • 原文地址:https://www.cnblogs.com/geek1116/p/10036650.html
Copyright © 2011-2022 走看看