CSS Expressionsは非推奨であり、使用すべきではないことをどこかで読みました。私は彼らのことを聞いたことがなかったので、見てみることにしました。スクロールしても、画面上の同じ場所にフローティング要素を保持するコード例を見つけました。
<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>
これにより、ページの下部に「共有バー」などがあるサイトを思い出しました。
そう...
CSS表現は以前のIEで機能していましたが、 IE8では完全に放棄されました:
動的プロパティ(「CSS式」とも呼ばれる)は、Internet Explorer 8以降、IE8標準モード以上ではサポートされなくなりました。この決定は、IE Ending Expressionsというタイトルのブログエントリに詳細が記載されている標準準拠、ブラウザパフォーマンス、およびセキュリティ上の理由から行われました。動的プロパティは、IE7モードまたはIE5のInternet Explorer 8モード。
ですから、間違いなくそれらを学ぶ価値はほとんどありません。
そうでない場合、何を使用すればよいですか?
ユースケースに応じて、JavaScriptまたは メディアクエリ 。
@Yet Another Geekが指摘しているように、上記の例はposition: fixed
。 IE6はそれをサポートしていません-CSS式はおそらくそれを回避するために作成されました。
スクロール中に要素を同じ場所に保持するには、 position:fixed プロパティを使用してから、top、bottom、leftおよびrightプロパティを使用して、配置する場所を指定する必要があります。
編集:ここであなたの例のためにどうあるべきか:
<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>
position:fixed
またはJavaScriptを使用する方が簡単ですposition:fixed; bottom:x; top:y; left: a; right:b;
を使用します。x、y、a、およびbはオフセットです。または、Javascriptを使用します*正式には、とにかく。どうやらそれが働いていたChrome @DalexL