在JTextPane
中使用以下HTML代码时:
Just an image: <img src="image.png" /><br/>
<a href="https://example.net">A link</a><br/>Image inside link:
<a href="https://example.net"><img src="image.png"></a>
您将得到以下结果:
我添加了一条CSS规则,以使链接颜色变为红色:
StyleSheet css = htmlEditorKit.getStyleSheet();
css.addRule("a { color: red; }");
如您在屏幕快照中所见,这也使图像框也变成了红色,由此我得出结论,正是<a>
标签引起了边框的出现。
如何摆脱<a>
标签内图片周围的边框?
我尝试使用另一条规则覆盖边界,但这没有用:
css.addRule("img { border: 0; }");
答案 0 :(得分:2)
看看HTMLEditorKit
的代码,您可以看到<img>
标签是使用类ImageView
呈现的,该类包含以下代码:
borderSize = (short)getIntAttr(HTML.Attribute.BORDER, isLink() ?
DEFAULT_BORDER : 0);
和DEFAULT_BORDER
被硬编码为2
。
请注意,它会检查 HTML 属性。如果未指定HTML属性border
,则在链接内时图像的边框为2
,否则为零。
一种解决方案是直接在border
标签内指定<img>
:
Image inside link:
<a href="https://example.net"><img src="image.png" border="0"></a>