代码之家  ›  专栏  ›  技术社区  ›  Zephyr

根据字体大小设置高度?

  •  1
  • Zephyr  · 技术社区  · 7 年前

    我有一个Java应用程序,它在WebVIEW中显示单个HTML文件。

    下面的css片段用于设置 <div> 在该网页中:

    .header {
        margin: auto;
        background-color: #0479ccff;
        font-weight: bold;
        color: #FFFFFF;
        padding: 5px;
        height: 20px;
    }
    

    但是,文本的字体大小 <分区> 可由应用程序用户调整,因此我需要有一种方法来缩放相对于字体大小的DIV高度。对于较大的字体, <分区> 高度保持不变,文本与下边框重叠。

    有没有办法使用纯CSS?

    3 回复  |  直到 7 年前
        1
  •  0
  •   Varlain Systems    7 年前

    高度:20px 正在阻止你的DIV增长。请尝试使用 最小高度 相反。

    .header {
        margin: auto;
        background-color: #0479cc;
        font-weight: bold;
        color: #FFFFFF;
        padding: 5px;
        min-height: 20px;
        overflow:hidden;
    }
    

    这将使高度至少保持20px,同时允许DIV增长以适应字体大小的增长。


    示例演示

    添加演示以增大/减小字体大小,使用javascript更改.header字体大小。看起来你可以点击运行片段来观看演示。

    var gFontSize = 16;
    $(document).ready(function() {
      $('#grow').click(function() {
        $(".header").css("font-size", ++gFontSize);
      });
    
      $('#shrink').click(function() {
        $(".header").css("font-size", --gFontSize);
      });
    });
    .header {
      margin: auto;
      background-color: #0479cc;
      font-weight: bold;
      color: #FFFFFF;
      padding: 5px;
      min-height: 20px;
      overflow: hidden;
    }
    <!DOCTYPE html>
    <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
      <meta charset="utf-8" />
      <title>test</title>
    </head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    <body>
      <div class="header">TEXT</div>
      <button id="grow">increase font</button>
      <button id="shrink">decrease font</button>
    </body>
    
    </html>
        2
  •  1
  •   Sundar R    7 年前

    指定高度 em 而不是像素。然后,随着字体大小的改变,高度将自动改变。

    .header {
        margin: auto;
        background-color: #0479ccff;
        font-weight: bold;
        color: #FFFFFF;
        padding: 5px;
        height: 1.8em;
    }
    
        3
  •  0
  •   Ben Spurrier    7 年前

    当然。如果去掉了高度,那么DIV的高度应该随着文本的变化而变化。

    执行此操作:

    .header {
    margin: auto;
    background-color: #0479ccff;
    font-weight: bold;
    color: #FFFFFF;
    padding: 5px;
    }