Необходимо спрятать часть HTML кода от IE6.5 и ниже. Какие будут предложения?
Необходимо спрятать часть HTML кода от IE6.5 и ниже. Какие будут предложения?
<!--[if gt IE 6.5]>
Код для браузера больше версии 6.5
<![endif]-->
[/quote]
Выше версии, такой же версии - удобный вариант, пользую и приветствую. Правда в основном прописываю не "Код для браузера больше версии 6.5" а ссылку на отдельный CSS файл
можно и не использовать кондишнл комментс, т.к. это не стандарт.
а задать отображение необходимого блов в css через дочерний селектор, например, body>div.hide, т.о. ИЕ не поймет этого правила и проигнорирует его, нормальные браузеры выполнят инструкции CSS.
Zigzag
Приведи пример.
XHTML
CSSКод:<div id="hide"></div>
Т.к. IE не понимает правила дочерних селекторо, то он просто проигнорирует этот блок и не отобразит его, остальные браузеры отобразаят в соответствии с правилами, которые ты задашь в CSS :ninja:Код:body>div#hide { твои правила }
Saint_Matrix, Zigzag
Спасибо, за предложенные варианты. Но мне необходимо чтобы HTML код работал во всех браузерах и в IE7.0. Первый предложенный вариант распространяется только на IE, а вариант с CSS распространяется на все версии IE (если я не ошибаюсь, и на 7.0Beta тоже).
IE7+ понимает дочерние селекторы, так что он отобразит этот блок
Тогда так
<!--[if lte IE 6.5]>
Код для браузера больше версии 6.5
<![endif]-->
Zigzag, а давай ты не будешь мутить, и тоже будешь пользоваться самым рациональным способом, который предложил Saint_Matrix.
<!--[if gt IE 6.5]> и так далее...
Этого нет в стандартах, но, этот способ даёт 100% гарантию. В отличие от Временных хаках со звёздочками, селекторами и так далее...
я не говорю о хаках, а о вполне валидных правилах для правильных браузерах, которые ИЕ просто проигнорирует и они окажутся от него скрытыми.
С учетом того, что в большинстве случаев именно IE криво поддерживает стандарты и имеет баги, логично не писать селкторы html > body которые IE не понимает, а наоборот как раз использовать селекторы, которые понимает только IE, например:
* html #block {}
[/quote]Originally posted by nickspring@Oct 24 2006, 13:57
С учетом того, что в большинстве случаев именно IE криво поддерживает стандарты и имеет баги, логично не писать селкторы html > body которые IE не понимает, а наоборот как раз использовать селекторы, которые понимает только IE, например:
* html #block {}
<div align='right'>[Только зарегистрированные пользователи могут видеть ссылки. ]
ИЕ просто игнорирует то, что не понимает и слава богу, так где же препятствия для использования подобного метода вместо хаков?
[/quote]
IE7 уже научился понимать многие вещи, ждем пока найдутся новые глюки =)
А в будущем IE научится понимать селекторы и что? Переписывать все хаки для всех своих сайтов будете?
Эх, твоими бы устами......А в будущем IE научится понимать селекторы![]()
препятствие в том, что он может начать их понимать, но выполнять правила, скрытые ими будет так же криво
представте только, коллеги, сколько сайтов слетит при этом. сколько работы...![]()
чушь! если он начнет понимать, то и выполнять правила будет!
твоими устам бы мед пить...
это же Microsoft...
кондишнл комментс считаю глупостью, т.к. преспокойно можно обходится без него и оставлять при этом валидным код xhtml и css
Господа, вы не вникли во всю суть вопроса.
Необходимо было спрятать XHTML код от IE6.5 и ниже.
Под этим, не хитрым текстом, подразумевалось следующее: XHTML код должны видеть все браузеры, кроме IE6.5 и ниже. Т.е. нет отдельного кода для IE6.5 и ниже, просто он не должен видеть общий код. Более того, вариант с кондишн будет игнорирован всеми другими браузерами, т.к. является обычным комментом.
Вариант с child selector считаю самым рациональным (спасибо ZigZag'у). Но вот внедрить его достаточно сложно.
Т.к. мне надо "поделить на браузеры" только одну страницу, я остановился на самом простом варианте: JavaScript - определение браузера и соответствующая переадресация.
IE7.0 действительно сделал большой шаг вперёд, и сейчас вполне прилично понимает CSS2.k: