以下是我的问题的简化版本。考虑以下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;
。由于元素的位置,也排除了带有负边距的混乱。
答案 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。