На практике это возможно, если вы используете элемент span
вместо font
:
$username
См. jsfiddle . Похоже, работает на Chrome, Safari, Firefox, IE, Opera (протестировано на Win 7 с новейшими версиями).
Код в вопросе тоже должен работать, но по некоторым причинам он не работает в браузерах WebKit (Chrome, Safari).
Согласно спецификации CSS : «Цвет (ы), требуемый для оформления текста, должен быть получен из значения свойства« color »элемента, для которого установлено« text-painting ». Цвет художественных оформлений должен оставаться неизменным, даже если у дочерних элементов разные значения «цвета» ».
Это то, что мы используем в ASP.NET:
// Stop Caching in IE
Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
// Stop Caching in Firefox
Response.Cache.SetNoStore();
Это останавливает кеширование в Firefox и IE, но у нас нет пробовал другие браузеры. Эти операторы добавляют следующие заголовки ответов:
Cache-Control: no-cache, no-store
Pragma: no-cache
Я знаю два подхода. Первый - указать браузеру не кэшировать страницу. Об этом позаботится установка ответа на отсутствие кеша, однако, как вы подозреваете, браузер часто игнорирует эту директиву. Другой подход - установить дату и время вашего ответа на точку в будущем. Я считаю, что все браузеры исправят это до текущего времени, когда добавят страницу в кеш, но при сравнении будет отображаться страница как более новая. Я считаю, что в некоторых случаях сравнение не проводится. Я не уверен в деталях, и они меняются с каждой новой версией браузера. Последнее замечание. Мне больше повезло со страницами, которые «обновляются» (еще одна директива ответа). Кажется, что обновление из кеша с меньшей вероятностью.
Надеюсь, что это поможет.