如何隐藏父div,保持内部div可见?

时间:2009-08-05 09:31:27

标签: css html

以下是我的问题的简化版本。考虑以下HTML:

<div id="div1" style="display:none">  
  text i do not want  
  <div id="div2" style="display:block">  
    text i want to keep  
  </div>  
</div>  

但当然,“我要保留的文字”将不会显示,因为 父div不可见。

问题:你如何只显示内部div的内容?

由于小部件博主使用,我无法访问代码,需要使用一些CSS清除外部div。阅读this后,我已经排除了font-size: 0;。由于元素的位置,也排除了带有负边距的混乱。

5 个答案:

答案 0 :(得分:3)

试试这个:

color: transparent;
background: transparent;

当然,这实际上不会使文本不可选,只是不可见。

你真正要做的就是反对盒子模型的概念,如果你能够将你不想看到的文本放在一个单独的等级div中,那就更好了。你想要看到的那个,然后隐藏其他div,即

<div id="div1">  
  <div id="div3" style="display:none">text i do not want</div>
  <div id="div2" style="display:block">  
    text i want to keep  
  </div>  
</div>

答案 1 :(得分:2)

由于HTML的层次性,这是一个难以破解的难题。常见的解决方案是将一个元素移出另一个元素并对其进行样式化,使它们看起来是嵌套的,但我认为在这种情况下你不能这样做。

我能想到的唯一解决方案是使父元素无效,同时保持子元素是绝对定位,但如果元素上有动态高度/宽度,这将很难。

但试试这个:

#div1 {
    /* You might want to set a height here appropriate for #div2 */
    position: relative;
    text-indent: -10000px;
}

#div2 {
    left: 0;
    position: absolute;
    text-indent: 0;
    top: 0;
}

答案 2 :(得分:1)

您是希望文本消失还是文本占用的空间也会崩溃?

如果您只想让文字消失,请使用

<div id="div1" style="text-indent:-9999px;">
   text i do not want
   <div id="div2" style="text-indent:0">
     text i want to keep
   </div>
</div>

答案 3 :(得分:1)

试试这帮助我

Draft.js

答案 4 :(得分:0)

将'我不想要的文字'包含在另一个DIV或SPAN中,并显示:none style。