一尘不染

是否可以创建内联伪样式?

css

是否可以创建内联伪样式?

例如,我可以做以下事情吗?

<a href="#" style="background-color:green;{hover:background-color:red;}">Coding Horror</a>

这背后的原因是我正在开发一个创建UI元素的.NET库。我想生成无需设置外部样式表即可设置其悬停状态的HTML元素。


阅读 250

收藏
2020-05-16

共1个答案

一尘不染

不幸的是,不能,您不能使用内联CSS来实现悬停效果。

此问题的(较差)解决方法是让控件在呈现时呈现样式块。例如,您的控件可以呈现为:

<style type="text/css">
    .custom-class { background-color:green; }
    .custom-class:hover { background-color:Red; }
</style>
<a href="#" class="custom-class">Coding Horror</a>

如果您可以强迫用户在页面顶部放置“样式控件”,则可以在其中渲染所有自定义类,而不是在每个控件旁边渲染它们,这将是一件非常非常糟糕的事情(浏览器将重新开始渲染)每次遇到样式块时,在页面上散布很多样式块都会导致渲染速度变慢。

不幸的是,没有完美的解决方案来解决这个问题。

2020-05-16