2

我需要处理的代码如下所示:

    <p>
    <a href="http://foo.com/foo.html"></a>
    <a href="http://creativecommons.org/publicdomain/mark/1.0/" rel="license">
    <img alt="Public Domain Mark" src="http://i.creativecommons.org/p/mark/1.0/88x31.png" style=""></a>
    <br> This work is free of known copyright restrictions... 
    </p>

它显示图像,然后在图像之后显示一些文本。我既不需要显示。

这可以很好地摆脱图像:

a[rel="license"] {display:none;}

但是,我需要一种方法来摆脱之后的文本<br>(如果可能的话,还有它的未闭合标签)并且不能丢失结束</p>标签。

我正在从远程站点获取 HTML,并且无法控制那里的标记。

在此先感谢您的帮助!

4

2 回答 2

2

没有办法使用 CSS 隐藏此文本,除非在其上添加标签 - 根据您获取网站的方式,您最好的办法是尝试查找并用;"This work is free of known copyright restrictions..."包围的相同文本替换它。<span></span>或者干脆完全删除它。

于 2012-11-29T01:32:51.857 回答
0

我意识到这是一个老问题,但我发现它很有趣。我想知道是否不能摆弄<p>标签的盒子模型,以便隐藏你想要“摆脱”的东西,即使它仍然存在?

例如,假设我想显示图像,而不是下面的非元素文本。(我意识到您也想消除图像,但出于演示目的,在其中包含一些可见内容<p>是有帮助的。)由于我知道图像高 31 像素,因此我可能会使用以下内容:

p {
    height: 31px;
    overflow: hidden;
}

等等瞧。无论这是否适合您的特定需求,我觉得我们没有足够的背景来确定。你要求的是留下一个包含不可见链接的空段落,没有更大的上下文没有明显的目的。

不过想一想……如果我还想隐藏图像,我只需对上面的样式稍作修改,然后附加:

a[rel="license"] { visibility: hidden; }

(您不想使用display: none,因为这会影响<p>CSS 框的尺寸。)

这肯定对屏幕阅读器等产生了不幸的影响,但对于某些快速而肮脏的显示需求,它可能就足够了。

于 2014-03-22T15:05:56.990 回答