Вопрос по html, css, css-expressions – * Официально, в любом случае. Очевидно, это работало на Chrome для @DalexL

48

-то читал, что CSS-выражения устарели и даже не должны использоваться. Я никогда не слышал о них и решил посмотреть. Я нашел пример кода, который держал плавающий элемент в том же месте на экране, даже если вы прокручивали.

<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>

Это напомнило мне о сайтах, у которых были «общие панели» и прочее внизу их страниц.

Так...

Это как они это делают?Можно ли использовать выражения в этой ситуации?Если нет, что я должен использовать?Есть ли другие интересные / полезные вещи, с которыми выражения могут помочь?
Ну, во-первых, только IE понимает их. BoltClock♦
Каким должно было быть старое поведение? avgvstvs
JavaScript гораздо более гибкий и вездесущий, чем выражения CSS meagar♦
Мы можем использовать их для эмуляции поддержкиcalc в старых браузерах IE с CSSexpression синтаксис. user3459110
Google Chrome говорит иначе;) Фрагмент кода отлично работал в моем браузере Google Chrome. FreeSnow

Ваш Ответ

3   ответа
60

полностью заброшен в IE8:

Динамические свойства (также называемые «CSS-выражениями») больше не поддерживаются в Internet Explorer 8 и более поздних версиях, в режиме стандартов IE8 и более поздних. Это решение было принято из соображений соответствия стандартам, производительности браузера и безопасности, как подробно описано в записи в блоге IE под названием Ending Expressions. Динамические свойства все еще доступны в Internet Explorer 8 в режиме IE7 или IE5.

Так что, пожалуй, не стоит больше их изучать.

Если нет, что я должен использовать?

В зависимости от варианта использования, JavaScript илимедиа-запросы.

Как отмечает @Yet Another Geek, приведенный выше пример может быть реализован с помощьюposition: fixed, IE6 не поддерживает это - CSS-выражение, вероятно, было создано, чтобы обойти это.

15

льзоватьпозиция: фиксированная а затем используйте свойства 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>
11
Возможно нет. Проще в использованииposition:fixed или JavascriptНет, если вы поддерживаете только IE <8. IE8 + и другие браузеры не поддерживают его *;это не соответствует стандартам и не пройдет проверкуиспользованиеposition:fixed; bottom:x; top:y; left: a; right:b; где x, y, a и b - смещения. Или используйте JavascriptОпять же, нет, если вы используете только старые версии IE. На самом деле, просто брось это. тот же эффект может быть достигнут с помощью JS и обычного CSS.

* Официально, в любом случае.

Похожие вопросы