在display:none中设置一个元素可见

时间:2013-02-08 13:29:50

标签: html css

我想在display:none块中获取一个元素,是否可能?

例如:

<div style="display:none" >
    <h2>hi all</h2>
    <p>abc</p>
</div>

我想在h2中显示保留父div的{​​{1}}。

有解决方案吗?

3 个答案:

答案 0 :(得分:3)

不,你不能。根据定义,不显示具有display: none的元素的所有后代元素。引用the CSS spec

  

9.2.4'display'属性

     

     

此值导致元素不出现在格式化结构中(即,在可视媒体中元素不生成框并且对布局没有影响)。 后代元素不会生成任何框;元素及其内容完全从格式化结构中删除。 通过在后代设置'display'属性,无法覆盖此行为。

答案 1 :(得分:1)

使用您当前的HTML,这是不可能的。最好的办法是类似于以下内容

<div>
    <h2>hi all</h2>
    <div style="display: none;">
        <p>abc</p>
    </div>
</div>

答案 2 :(得分:0)

如果您需要检索一些隐藏的值,您可以使用JavaScript。只需在元素中添加一个唯一的id并检索它的值即可。这是一个jQuery方式(没有任何document.ready()东西):

<div style="display:none" >
  <h2 id="show_me">hi all</h2>
  <p>abc</p>
</div>

<script>
  element = $('#show_me').html();
  alert(element)

  //Plain JS way would be something like this.
  element_js = document.getElementById('show_me').innerHTML;
  alert(element_js)
</script>

你本身并没有显示检索到的元素,但至少你能够显示它的内容,并用它做任何你喜欢的事情。实际上,我认为这将是获取隐藏元素中最接近的东西。