首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CSS表达式

CSS表达式
EN

Stack Overflow用户
提问于 2011-06-01 02:11:46
回答 3查看 83.6K关注 0票数 53

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

代码语言:javascript
复制
<html>
<style>
#fixed {
position:absolute;
left:10px;
top:expression(body.scrollTop + 50 + "px");
background:white;
border:1px solid red;}
</style>
<body>
<p id="fixed">Here is some text, which is fixed.</p>
<p>
[many times: "stuff <br/>"]
</p>
</body>
</html>

这让我想起了那些在页面底部有“分享条”之类的东西的网站。

所以..。

  1. 他们是这样做的吗?
  2. 在这种情况下可以使用表达式吗?
  3. 如果不可以,我应该使用什么?
  4. 表达式是否还有其他有趣/有帮助的功能?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-01 02:13:22

CSS表达式过去可以在旧的IE中使用,但它们已经被completely abandoned in IE8:

在IE8标准模式和更高版本中,Internet Explorer8和更高版本不再支持

动态属性(也称为"CSS表达式“)。此决定是出于符合标准、浏览器性能和安全原因而做出的,如标题为Ending Expression的IE博客条目中所述。在Internet Explorer8中,动态属性在IE7模式或IE5模式下仍然可用。

因此,可以说不值得再学习它们了。

如果没有,我应该使用什么?

根据使用情形,可以选择JavaScript或media queries

正如@Yet Another Geek所说,上面的例子可以使用position: fixed实现。IE6不支持这一点-- CSS表达式可能就是为了解决这个问题而创建的。

票数 65
EN

Stack Overflow用户

发布于 2011-06-01 02:15:59

为了使元素在滚动时保持在同一位置,您应该使用position:fixed属性,然后使用top、bottom、left和right属性来确定它应该放置的位置。

编辑:下面是你的例子应该是什么样子:

代码语言:javascript
复制
<html>
<style>
#fixed {
position:fixed;
left:10px;
top: 50px;
background:white;
border:1px solid red;}
</style>
<body>
<p id="fixed">Here is some text, which is fixed.</p>
<p>
[many times: "stuff <br/>"]
</p>
</body>
</html>
票数 15
EN

Stack Overflow用户

发布于 2011-06-01 02:17:14

  1. 可能不会。使用position:fixed或Javascript
  2. 会更容易,除非你只支持IE < 8。IE8+和其他浏览器不支持它*;它不符合标准,不会通过验证和使用
  3. position:fixed; bottom:x; top:y; left: a; right:b;,其中x,y,a和b是偏移量。或者,除非你只使用旧版本的IE,否则不要使用Javascript
  4. Again,。真的,倒了就好了。JS和普通CSS也可以达到同样的效果。

*无论如何,都是正式的。显然,它在@DalexL的Chrome上工作正常

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6191679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档