我正在寻找一种有效地在CSS中实现负填充的方法。

问题

我的网页上有一个h1元素,当前与以下代码关联:

h1 {
  background-color: #375E97;
  color: #FFFFFF;
  font-size: 50px;
  font-family: 'Righteous', cursive;
  text-transform: uppercase;
  text-align: center;
  padding: 0;
  margin: 0 auto;
  height: 49px;
}
<head>
  <link href="https://fonts.googleapis.com/css?family=Righteous|Roboto:400,700,400i" rel="stylesheet">
</head>

<body>
  <h1>Lorem Ipsun Al</h1>
</body>


您可以看到,因为我已经添加了:height: 49px;,因此文本看起来好像流入了页面的其余部分。我要实现这种外观,但也要在文本的顶部,而不仅仅是底部。

我尝试过的

我试过了:
  • padding元素的margin0都设置为h1
  • 播放vertical-align的各种值。
  • height设置为许多不同的值。
  • 将所有h1的父元素的paddingmargin设置为0

  • 我相信我所面临的问题是我正在使用的字体(和大多数字体)的顶部有一定的空间。这就是为什么我希望能够实现负填充,以便在不移动内容框的情况下在屏幕上向上移动文本的原因。

    最佳答案

    它完全取决于您使用的字体,但是在特定情况下,height: 34pxline-height: 34px;可以满足您的要求:

    h1 {
      background-color: #375E97;
      color: #FFFFFF;
    
      font-size: 50px;
      font-family: 'Righteous', cursive;
      text-transform: uppercase;
      text-align: center;
    
      padding: 0px;
      margin: 0 auto;
    
      height: 34px;
      line-height: 34px;
    }
    <!DOCTYPE html>
    <html>
    
    <head>
      <link href="https://fonts.googleapis.com/css?family=Righteous|Roboto:400,700,400i" rel="stylesheet">
    </head>
    
    <body>
      <h1>Lorem Ipsun Al</h1>
    </body>
    
    </html>

    10-08 08:07
    查看更多