问题标签 [css-expressions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
3766 浏览

javascript - 使用 CSS 表达式的 IE6 性能

我们正在开发一个将出售给许多客户的网络应用程序。已经有一个客户(一家银行)决定一旦产品准备好就购买。不幸的是,由于一些沟通不畅,他们使用的唯一浏览器是 IE6。该应用程序在启动时已经考虑到它不需要支持 IE7 以下的任何其他内容。结果也相当不错——它在 IE7/FF/Opera/Safari 上完全可用。尚未在 Chrome 上进行测试,但预计会有小问题。不幸的是,毕竟现在有 IE6 的要求......

该应用程序还没有开发太远,设计也还不错,所以变化不是那么可怕。不过,这需要一些工作。

IE6 的一个优点是它支持两个非标准且非常有用的功能。首先是条件注释,它允许我包含一些仅适用于 IE6 的 CSS/JS 文件。其次是CSS表达式。也就是说,像这样的事情:

本质上,它将 CSS 值绑定到 JavaScript 表达式。这可以轻松模拟 IE6 本身不支持的许多 CSS 功能,并且可以大大减轻我的负担。

不幸的是,IE 因其 JavaScript 性能而臭名昭著。我担心使用太多这些表达式可能会减慢速度。我也不知道银行用的是什么电脑。由于这是一个相当大的一个,我希望他们所有的分支机构都有各种各样的。我不希望在那里使用任何东西——一些简单的数学、三元运算符和查看这个元素/父元素的属性。在 IE6_override.CSS 文件中仍然会有几十个。

这会是个问题吗?

补充:废话,这就是我害怕的。好的,看看我可以使用多少其他技巧来解决这些缺点。谢谢,人们!

0 投票
3 回答
512 浏览

css - 我们应该使用 IE 的 CSS 动态属性吗?

我们应该使用 IE 的 CSS 动态属性吗?

我读过 IE8+ 不支持这些。

处理这个问题的最佳策略是什么?

0 投票
6 回答
3859 浏览

javascript - !important 规则可以用在 IE 的 CSS 表达式中吗?

首先,我知道CSS 表达式在很多方面都已失效和错误,并且!important尽可能避免使用。这是针对特殊情况的样式表

简而言之

我的问题是......有没有办法让 CSS 表达式设置!important标志?

例如,这不起作用:

[编辑:感谢 MarmaladeToday 下面的评论]。这也不起作用:

这可以通过其他方式完成吗?


详细地

我实际上想要做的是模仿inheritIE6 和 7 中的值。这有效

但我也想设置!important标志,这不起作用

我知道,在 JavaScript 中,不可能!important通过元素的style对象进行设置。例如,这不起作用

但是,可以!important通过元素的style 属性进行设置:

那么...... CSS表达式是否仅限于与style对象交互,因此,我想要实现的目标是不可能的 - 或者表达式是否有任何方式影响元素的属性,或!important以其他方式传递?


开始赏金

到目前为止还没有可靠的答案,所以我开始赏金了。

理想情况下,我正在寻找一种基于 CSS 的解决方案,用于inherit !important在 IE6 和 IE7 中进行模仿,无论有无 CSS 表达式。(请在发布之前验证您的建议是否有效)。

至少,一个指向一些权威参考的链接告诉我这是不可能的,这意味着我可以放下这个思路——我没有看到任何提到在!important规则中使用 CSS 表达式的东西。

0 投票
3 回答
7074 浏览

css - 哪些浏览器仍然支持 CSS 表达式

来自博客:

CSS 表达式的基本思想是您将在 CSS 代码中为属性计算和动态值,人们发现这非常有用。一个简单的例子可以在 IE 6 中实现最大宽度行为:

这是我第一次读到它们。似乎 IE 曾经支持 CSS 表达式,但在 IE8 中删除了它们。还有哪些其他浏览器仍在使用它们,它们通常是好事还是坏事?

我从中得到的博客文章说替代方案是 Javascript,但我认为 CSS 更受支持,因此比 Javascript 更好。

0 投票
2 回答
1637 浏览

javascript - 用于 Internet Explorer 的 CSS 表达式与过滤器和 Javascript

CSS 表达式和 CSS 过滤器有什么区别?

两者都对页面速度不利吗?

如果可以在其他浏览器中用纯 CSS 实现某些东西,但对于 IE,只能通过 CSS 表达式或 CSS 过滤器或 Javascript 实现。如果我们关心页面速度,那么我们是否应该始终使用 Javascript。

Javascript 在渲染方面会比 CSSFilterExpression解决方案更快吗?


Pekka回答后更新

好的,所以应该避免使用 CSS 表达式,这很清楚。

现在我想了解过滤器

过滤器示例

要在 IE6 中获得 PNG 透明度并在 IE 6、7、8 中获得一些 CSS 3 效果,我们可以使用 CSS IEFilters

http://www.smashingmagazine.com/2010/04/28/css3-solutions-for-internet-explorer/

还有一些可用的 Javascript 替代方案。

Javascript 的渲染速度会比 CSS 过滤器快吗?

注意:filter属性不是有效的 CSS

0 投票
1 回答
404 浏览

css - 多个css表达式IE

仅当输入类型为复选框时,我才想应用投影过滤器。以下正在工作

但是我想在其中包含 this.type=='checkbox' 。像这样的东西

这不起作用。

0 投票
3 回答
84444 浏览

html - CSS 表达式

我在某处读到 CSS 表达式已被弃用,甚至不应该使用。我从来没有听说过他们,所以决定去看看。我找到了一个代码示例,它在屏幕上的同一位置保留了一个浮动元素,即使您滚动。

这让我想起了在页面底部有“分享栏”之类的网站。

所以...

  1. 这是他们的做法吗?
  2. 在这种情况下可以使用表达式吗?
  3. 如果没有,我应该使用什么?
  4. 还有其他有趣/有用的事情可以通过表达式来帮助吗?
0 投票
3 回答
438 浏览

javascript - CSS 表达式还是 javascript?

我想知道如果您只能使用 javascript,使用 CSS 表达式是否有意义。

哪个更好或更快?

CSS 表达式是否适用于禁用的 js?

0 投票
2 回答
631 浏览

javascript - CSS - 如何在 css 中执行“一次性 CSS 表达式”?(例如 IE 的最大高度/最大宽度)

我通常在幻想在 SO 中提出问题之前解决我的编程疑问,但这是我似乎第一次找不到答案……所以……这是我下班后向网站提出的第一个问题试图解决这个问题:

¿ 如何拥有一次性的 css 表达式?


为什么一次性表达?: 如果我们做一些测试(小心,因为 IE6 和 IE7 会一次又一次地显示警报......):

表达式被评估直到时间结束......这就是为什么我想了解一种让它发生一次的方法,就像 2° 文章试图解释的那样覆盖样式本身,但我真的无法理解它工作....


正如我们在这篇文章中所读到的:

http://developer.yahoo.com/blogs/ydn/posts/2007/07/high_performanc_6/

表达式重复自己,这可能是一个性能问题......

那么这篇文章:

http://vacskamati.blogspot.com/2008/10/one-time-execution-of-ie-css.html

这很好,因为它是我发现的唯一一个试图解决这个问题的人......但我似乎无法做到......

我正在尝试做的事情......是在 IE 中模拟“最大宽度”和“最大高度” ......我知道 FF 和其他任何东西都可以直接使用 CSS 来完成......我必须让它以某种方式工作在 IE6 和 IE7...

我知道我可以在外面使用 JS,但是正如您将在我的代码中看到的那样...我将尝试输入 php 值...所以我需要直接在表达式中进行一些控制,以便它自动执行一次然后我不必在其他地方编写 JS 函数......我认为这应该很简单......但我可以得到它......无论如何......我的代码是这样的......:

Sooo...嗯,这就是基本思想...我已经尝试过上述文章尝试解释的不同方式,我已经尝试向该人发送邮件,嗯,但是在等待可能的答案时,我暴露了这个问题对于 SO 社区,因为无法为我认为可能很简单的事情找到答案是很奇怪的……

所以现在......据我所知,EXPRESSION 会重复自己......如果原始内容大于 400px,我会得到 SCROLL......但我知道它会重复自己,因为......如果我发送“警报” ()" 它一直出现....所以....再次我如何才能实现一次表达...所以 IE 不会评估它 mousemove 或任何动作...。

在此先感谢=)(对不起我奇怪的缩进代码...= P)

0 投票
2 回答
20682 浏览

css - 设置 div 高度的 CSS 表达式

我想根据 CSS 表达式设置 div 的高度。

基本上它应该设置为视口宽度的百分之几(比如 90%) 我尝试了以下,但不起作用;

我正在寻找一种跨浏览器的方式(IE7+、FF4+、Safari)