【问题标题】:issues when using pseudo-classes使用伪类时的问题
【发布时间】:2014-08-19 15:24:55
【问题描述】:

我在阅读 时遇到了一些问题。 在第 55 页,“动态样式的现实问题”部分,作者举了一个例子:

a:link, a:visited {font-size: 13px;}
a:hover {font-size: 20px;}

然后说:

但是,CSS 规范规定,一旦文档被渲染以进行初始显示,用户代理不需要重新绘制文档,因此您不能完全依赖预期的效果。我强烈建议您避免使用依赖于此类行为的设计

我以为作者没有解释清楚。而通过使用javascript来实现这种行为更加复杂。为什么我不应该使用这样的伪类?

有没有人可以告诉我在什么情况下这种行为会造成不良后果

【问题讨论】:

  • 速度追踪器是一个 chrome 扩展,它会在重绘等发生时向您显示。 Firefox 也有类似的工具。对于 IE,每个人实际上都是在黑暗中工作。当浏览器实际上并不清楚它们何时重绘等时,任何人都很难清楚。改变字体大小的问题相当清楚,如果字体变大,它旁边的所有东西都需要移动,那就是页面重绘。
  • @Wayne,重绘成伪类是什么意思?
  • 重绘是前端工程师发现自己面临的巨大痛苦和痛苦的来源之一。浏览器停止它正在做的事情,并重新绘制屏幕,​​并使屏幕上的所有内容都有一点跳跃。 Douglas Crockford 在“An Inconvenient API - The Theory of the DOM”中谈到了现实世界的问题...youtube.com/watch?v=Y2Y0U-2qJMs
  • @Wayne,感谢您的解释和您分享的视频!

标签: css hover pseudo-class


【解决方案1】:

当您的浏览器不支持伪类时,这些样式将被忽略。你仍然可以使用 js/jsquery。但是大多数现代浏览器现在都支持伪类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多