【问题标题】:How can I make the background behind a <legend> transparent?如何使 <legend> 背后的背景透明?
【发布时间】:2012-08-18 02:33:16
【问题描述】:

我似乎无法让 元素的背景透明。查看这个 jsFiddle:http://jsfiddle.net/hWZa6/(在 Chrome 和 Firefox 中测试)

我试图实现的效果实际上是将 元素移动到包含 元素的顶部边框下方,但我没有做任何事情来完成顶部边框。无论我尝试使用透明度还是位置,它总是缺少图例所在的那一行: http://cl.ly/image/1W043h0I3f0A/Edit%20this%20Fiddle%20-%20jsFiddle.jpg

如何使图例所在的边界区域完整?

【问题讨论】:

  • 如果你真的需要图例 div,可以设置 display: none;

标签: html css


【解决方案1】:

您可以将position:absolute 添加到legend。 (可选)将 position:relative 添加到 fieldset 以便您可以移动内容。

【讨论】:

    【解决方案2】:

    你可以把它放在屏幕外,

    position:absolute; left:-999em;
    

    或者您最喜欢的与屏幕阅读器等兼容的偏移技术。 (也许研究样板的图像替换样式)

    【讨论】:

      【解决方案3】:

      试试这个,只需隐藏字段集边框并将元素包装在带边框的 div 中。 http://jsfiddle.net/hWZa6/15/

      <div id="wrapper">
        <fieldset>
          <legend>Test</legend>
          The top border is never fully visible, despite the legend being set <code>visibility: hidden</code>.
          <div id="A">
              <div id="B">Upon applying <code>visibility: hidden</code> this div becomes transparent, and the red div behind it is fully visible.</div>
          </div>        
        </fieldset>
      </div>
      ​
      fieldset { border: none; }
      #wrapper { border: 1px solid black; }
      legend { display: block }
      #A { background-color: red; width: 300px; height: 150px; padding: 10px;}
      #B { background-color: blue; width: 400px; height: 100px;}​
      

      【讨论】:

      • 虽然这可行,但它需要更改 HTML。如果 HTML 可以更改,为什么不去掉 &lt;legend&gt; 元素本身,并将其替换为另一个元素,如

        之类的?

      • 没错,有很多方式可以随心所欲地展示。如果他想要显示图例并拥有坚实的顶部边框,这就是如何做到的。或将图例更改为不同的标签。但仅仅隐藏传说只能完成他所要求的两件事之一。所以实际上它要么更改 html,接受未显示的图例,要么使用 javascript 更改 dom。
      【解决方案4】:

      将此 CSS 用于 legend 元素。

      legend { margin-left: -9999px; }
      

      【讨论】:

      • 为什么不直接关闭显示器?
      • @RajeshJAdvani:关闭显示会弄乱fieldset 元素的上边框。具体来说,就是顶部边框上方的半高空间。
      • 您始终可以使用边距或填充来解决此问题。将元素定位在左侧很远的地方是一种技巧。虽然它有效,但我不会推荐它。
      【解决方案5】:

      如果您不想或无法更改 HTML,并且不需要使图例文本可见,则可以关闭显示。

      legend { display: none; }
      

      如果您确实可以控制 HTML,那么@user1289347 的解决方案将起作用,尽管它需要添加包装器元素。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-06
        • 2011-09-17
        • 2011-02-18
        • 2016-10-24
        • 2016-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多