GCVillager
本帖最后由 GCVillager 于 2020-3-27 15:38 编辑

举个例子:
现在这里有一个链接
看这个链接的颜色是绿色的,bbcode是:
  1. 现在[url=www.baidu.com][color=#008000]这里[/color][/url]有一个链接
复制代码
但是如果我突然想要把这句话变成“现在这里还有个链接,就在”这里“:
现在这里有一个链接
就会发现,“这里”两个字变成了蓝色(默认颜色),然而后面的“还”却变成了绿色。bbcode是:
  1. 现在[color=#008000][url=www.baidu.com]这里[/url]还[/color]有一个链接
复制代码
发现[url=XXX]与位置换掉了,所以导致链接变成了蓝色。就是说,如果在彩色链接后面加字,颜色会得非常奇怪。这样写官方博文的时候就很烦……(因为SPX的那个颜色)我解释可能不是很清楚,建议看看楼下两位大佬的回复

Zapic
这算什么bug?
如果这也能算bug,那泥潭就不用开了.

链接本来就有蓝色样式,你可以这样理解:
绿色字里嵌蓝色字,显示为蓝色.
蓝色字里嵌绿色字,显示为绿色.

这事情总要有个优先级的,不然全部乱套了.
颜色总是依赖于离文字最近,有改变颜色作用的bbcode所表现的颜色.

SPGoding
Zapic 发表于 2020-3-26 09:40
这算什么bug?
如果这也能算bug,那泥潭就不用开了.

错误不在于优先级


错误是,在可见即所得的编辑模式下,在有颜色的链接文字后面打字会导致链接自动变回蓝色


建议论坛删除可见即所得模式,一劳永逸

SHEEP_REALMS
这是HTML代码的特色,把文本样式套在<a>外面,<a>的颜色不受影响,把文本样式套在<a>里面,<a>的颜色受影响。
如果对<a>的外层标签添加颜色样式,<a>依然受全局CSS样式控制,但如果对<a>里面的内容添加颜色样式,其优先级将会高于<a>的样式。

Salt_lovely
解释一下:
现在我们有一个小白,想要做蓝色的链接文字。
假如说这是一个链接
纯文本模式下,上一行的代码如下:
  1. 假如说[url][b][color=Blue]这是一个链接[/color][/b][/url]。
复制代码

可以看到,粗体代码b颜色代码color是存在于url标签内的,一切正常。



此时,这位小白切换到了“所见即所得”模式,他想在位置插入内容
假如说这是一个链接#

比如说插入“哦~”。我们希望的结果是这样的:
假如说这是一个链接哦~。

但是小白的结果是这样的
假如说这是一个链接哦~

发生了什么????
切换到纯文本模式我们发现:
  1. 假如说[url][b][color=Blue]这是一个链接[/color][/b][/url]哦~。
  2. 假如说[b][color=Blue][url]这是一个链接[/url]哦~[/color][/b]。
复制代码

粗体代码b颜色代码color跑到url标签外面去了。
url标签下面的文字默认是这个颜色的,而color标签在url外面,所以这个链接就变成了普通链接的颜色而不是指定的颜色。
解决方法是把颜色代码color重新塞回url标签里面。这个小问题是所见即所得模式的特性。