Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以吗;凌驾;使用CSS的HTML元素的宽度?_Html_Css - Fatal编程技术网

我可以吗;凌驾;使用CSS的HTML元素的宽度?

我可以吗;凌驾;使用CSS的HTML元素的宽度?,html,css,Html,Css,我正在用CSS做一些工作,我有一个元素,里面有一个元素。元素假定封闭的元素的宽度,但是中的文本内容比宽(因此会延伸到两行)。我想做的是使与其最长的文本元素的宽度相同,有人知道我如何做到这一点吗?谢谢 <ul style="display: inline-block; list-item-style: none"> <li id="foo" style="float: left; list-style-type: none; position: relative;">

我正在用CSS做一些工作,我有一个
  • 元素,里面有一个
    元素。
    元素假定封闭的
  • 元素的宽度,但是
    中的文本内容比
  • 宽(因此会延伸到两行)。我想做的是使
    与其最长的文本元素的宽度相同,有人知道我如何做到这一点吗?谢谢

    <ul style="display: inline-block; list-item-style: none">
      <li id="foo" style="float: left; list-style-type: none; position: relative;">
        <a href="...">brief text</a>
        <div id="bar" style="position: absolute; width=???">
          <ul>
            <li>a long chunk of text</li>
            <li>an even longer piece of text</li>
          </ul>
        </div>
      </li>
    </ul>
    
      • 一长段文字
      • 一段更长的文字

    现在,
    div#bar
    的宽度等于其封闭元素
    li#foo
    宽度的100%,而
    li#foo
    的宽度等于其
    标记中文本的宽度(加上填充和边框)。我想做的是使
    div#bar
    成为
  • 的宽度,一段更长的文本,但我不知道如何实现这一点,即使使用Javascript。。。。还是我将被迫使用绝对宽度测量?如有任何建议,将不胜感激。

    put
    !重要信息
    之前的样式值之后

    样本:
    !重要信息
    之前的样式值之后

    样本: 试一试

    width:500px
    而不是
    width=500px
    (用所需的宽度替换500)

    试试看

    width:500px
    而不是
    width=500px
    (用所需的宽度替换500)

      • 一长段文字
      • 一段更长的文字
      • 一长段文字
      • 一段更长的文字

    从#foo和#bar中去掉位置属性

    然后添加:

    <style type="text/css">
    #bar li { white-space:nowrap !important; }
    </style>
    
    
    #bar li{空白:nowrap!重要;}
    
    从#foo和#bar中去掉位置属性

    然后添加:

    <style type="text/css">
    #bar li { white-space:nowrap !important; }
    </style>
    
    
    #bar li{空白:nowrap!重要;}
    
    如果您可以从外部移除display:inline块,并从foo
  • 移除float:left,则列表将扩展到最长的元素。

    如果您可以从外部移除display:inline块,并从foo
  • 移除float:left,则列表将显示最长的元素将扩展到最长的元素。

    根据,您不能(请参见编辑)使用比元素样式更强的规则组合来覆盖它

    Element style (style="XXX") = 1000
    Id (#id)                    = 100
    Class (.class)              = 10
    element (ie: p)             = 1
    
    因此,如果您能够指定一个css规则,其值超过1000,我认为您可以这样做

    编辑: 经过一些测试,如果发现直接在元素中定义的样式不能被css用这个方法覆盖。抱歉。

    根据,您不能(请参见编辑)使用比元素样式更强大的规则组合来覆盖它

    Element style (style="XXX") = 1000
    Id (#id)                    = 100
    Class (.class)              = 10
    element (ie: p)             = 1
    
    因此,如果您能够指定一个css规则,其值超过1000,我认为您可以这样做

    编辑
    经过一些测试,如果发现直接在元素中定义的样式不能被css用这个方法覆盖。抱歉。

    一个解决方案是为
    #条使用固定宽度。第二种解决方案是删除
    位置:绝对
    #bar
    一种解决方案是为
    #bar
    使用固定宽度。第二种解决方案是删除
    位置:绝对
    来自
    #bar

    +1以获得干净的解决方案,并注意希望其随内容增长的OP。谢谢。我不太清楚那些职位属性一开始在做什么。清洁解决方案+1,注意OP希望它随着内容增长。谢谢。不太清楚那些位置属性一开始在那里做什么。你也可以使用
    !重要信息
    覆盖,它基本上重置了权重属性,现在只与其他“!important”样式竞争。您也可以使用
    !重要信息
    覆盖基本重置权重属性,现在仅与其他“!important”样式竞争。div#bar具有绝对定位的原因是什么?div#bar具有绝对定位的原因是什么?