Html 宽度<;h*>;元素始终100%流动

Html 宽度<;h*>;元素始终100%流动,html,css,Html,Css,设置标记(或任何标记)的背景色时,元素跨越HTML页面主体元素的长度 <H1>A</H1> H1 { background: #ddd; } 问题是,如果标记中的文本大于10px,则会溢出背景。无需设置宽度。如果需要,只需将显示类型从block更新为inline或inline block 大概是这样的: h1.ib { display: inline-block; } Fiddle:h1元素使用display:block,这是正确的默认行为。它防止后续内

设置
标记(或任何
标记)的背景色时,元素跨越HTML页面主体元素的长度

<H1>A</H1>

H1
{
  background: #ddd;
}

问题是,如果
标记中的文本大于10px,则会溢出背景。

无需设置宽度。如果需要,只需将显示类型从
block
更新为
inline
inline block

大概是这样的:

h1.ib {
    display: inline-block;
}

Fiddle:

h1
元素使用
display:block
,这是正确的默认行为。它防止后续内容出现在同一行上,并允许边框和背景为内容区域的(适当)全宽

如果需要元素仅采用文本的宽度,请使用以下方法之一:

  • 一个内部元素,例如
    h1
    ,以便您可以选择内部元素来提供背景

    span{
    背景色:#CCC;
    }

    h1
    编辑:杰克·帕蒂沙尔和Zzzbov击败了我。

    实际上,您不必设置宽度。有一个CSS属性可用于解决您的问题<代码>显示:内联

    内联元素只占用所需的宽度

    把你的航向设成这个

    h1 {
    display: inline;
    }
    

    可以使用属性控制图元的布局模式

    但是,存在一个问题:大多数使框收缩到其内容而不是增长到覆盖容器块的值是内联级别的,例如
    内联块
    内联表
    内联弹性体
    。这意味着,如果标题周围有其他内联内容,它们将显示在同一行中(如果它们合适的话)

    也许你不想那样。然后,您可以使用
    display:table

    h1{
    显示:表格;
    背景色:#CCC;
    }
    之前
    h1
    中间的
    又是h1
    
    之后,这里有一种保存字节的方法:

    H1 {
    display: inline;
    background-color: #CCCCCC;
    }
    
    <h1>Your Text Here</h1><br>
    
    H1{
    显示:内联;
    背景色:#中交;
    }
    您的文本在此
    H1 {
    display: inline;
    background-color: #CCCCCC;
    }
    
    <h1>Your Text Here</h1><br>