【问题标题】:Javascript and CSS FOUC prevention interfering print stylesheetJavascript 和 CSS FOUC 预防干扰打印样式表
【发布时间】:2011-07-05 19:47:43
【问题描述】:

我正在使用一种简单的技术来防止我的页面出现 FOUC。我的页面上有一个“反馈”滑动按钮,最初在我的样式表中设置为 display:none。稍后,当加载 JS 并加载滑动代码时,我将 .css('display', 'block') 与 jQuery 一起应用。效果很好。

但是,当有人打印页面时,我的滑动按钮及其内容会显示在打印版本中,即使我为 print.css 中的 DIV 声明 display:none。我怎样才能解决这个问题?

【问题讨论】:

  • 你的 print.css 是否有 @print{} 行?或者link 标签有media="print" 属性?
  • 好吧,你能展示一下应该在打印样式表中使元素“显示:无”的 CSS 吗?这些东西确实有效,但在出现错误时无效:-)
  • @Pointy: user620240 将 css('display', 'block') 与 jQuery 一起应用,它覆盖了 CSS 中的 display: none。 !important 在打印样式中应该可以解决问题。
  • 好的,使用“!important”是一种黑客行为,所以如果它导致其他问题,我建议不要直接应用“display:block”。相反,将类名添加到 <body> 标记(或其他东西)并使用 CSS 使元素在类名存在时可见。然后你可以从打印 CSS 中省略那部分。

标签: javascript jquery css fouc


【解决方案1】:

可能使用:

display: none !important;

以您的印刷风格。

【讨论】:

  • 就是这样,不是跨浏览器友好:)
  • @Val ??我知道的每个浏览器都理解“!important”限定符。
  • !important 在 1996 年的 CSS1 spec 中定义
  • 我遇到了问题,在浏览器中无法记住哪个,可能是 ie6,无论哪种方式!important 都是愚蠢的,因为它甚至会覆盖 style="display:block;"更不用说任何 jquery、javascript 等...如果你希望它是 !important 那么使用 style 属性是我的建议
  • @Val:这就是重点——覆盖使用 jQuery 设置的样式。阅读问题。除了 !important 在 CSS 中覆盖 style="display:block;"但不是 style="display:block !important;"请参阅规范。
猜你喜欢
  • 2015-07-27
  • 2016-10-10
  • 2016-07-14
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-28
相关资源
最近更新 更多