我很惊讶CSS中没有“text-decoration:reverse”,因为使用JavaScript实现起来似乎很尴尬。 I.E.将元素的前景色和背景色分别设置为父级的背景和前景。
我注意到here
的JavaScript技术当然不是那么复杂吗?
答案 0 :(得分:5)
你打电话给你的是什么? 你的意思是将背景设置为前景色,反之亦然? (也许这是一个愚蠢的评论,但如果是这样,它不是装饰吗?)
无论如何,你将在DRY和MVC之间展开斗争:
典型地:
.mydiv {
background-color: blue;
color: red;
font-family:...;
(...)
}
.mydiv:hover {
color: red;
background-color: blue;
}
另一种选择是通过javascript来做到这一点。 Proxify建议使用jQuery。
结果可能看起来像......(未经测试)
$(".invert").map(function (el) {
var color = el.css("color");
var bgcolor = el.css("background-color");
el.css("color", bgcolor).css("background-color",color);
})
答案 1 :(得分:2)
“反转”背景和文本的前景风格的概念并不容易实现到浏览器。如果在浏览器中允许“text-decoration:reverse”,那么背景图像是否也会反转到文本上?这不是今天的浏览器可以绘制的。
现在考虑透明度和那些alpha值。有许多方面使你的“逆向”概念在一般情况下不切实际。
答案 2 :(得分:0)
你可以尝试使用jQuery,这是一种比普通javascript更简单的方法。
答案 3 :(得分:0)
如下:
var bgColor = "#123456";
var textColor = bgColor.match(/^#([0-8][0-9a-fA-F])+$/g) == null ? "#000000" : "#ffffff";
因此,它使用白色文本作为深色背景颜色,使用黑色文本颜色作为较浅的背景颜色。
答案 4 :(得分:-1)
虽然没有可用于反转文本的CSS,但确实存在一个名为bdo(双向覆盖)的html元素和选择器dir =“rtl”,并且可以使用它来反转文本。
您可以撤消页面中的文字
如果您再给它一个类,那么您可以添加其他样式元素,例如,您需要查看此页面的源代码以“阅读”我所做的事情。 (p.s.你不需要包含元素,那就是将代码与其他模糊区分开来......)
You can reverse the text in your page
.reverso
{ color: #cc3300;
font-size: 200%; }
等等。
我希望有所帮助(O:
答案 5 :(得分:-1)