2013-11-15 2 views
0

Есть ли способ, которым может отображаться другой раздел кода HTML, на основе браузера, на котором пользователь просматривает? Например:Возможна ли браузерная настройка HTML?

Показать этот ДИВ для IE7:

<div id="ie7styles"><p>This is my IE 7 text</p></div> 

Показать этот DIV для любого другого браузера:

<div id="mystyles"><p>This is every other browsers text</p><img src="#"></div> 

Причина, почему я хочу сделать это, потому что у меня есть простой CSS эффект параллакса, но поскольку inherit и background-size не поддерживаются в IE7, я бы хотел, чтобы изображение по умолчанию просто отображалось при просмотре с IE7, поэтому нет пробела.

+0

В частности, для IE есть * условные комментарии *. Google это. – deceze

+2

Вы получите гораздо лучший ответ, если вы объясните * почему * вы пытаетесь что-то сделать; есть хорошие шансы на то, что есть другие альтернативные решения вашей основной проблемы, которые могут быть лучше, чем наличие кода, зависящего от версии браузера, но мы не сможем предложить эти решения, если мы не знаем, что основная проблема заключается в том, что вы пытаетесь решить. Кроме того, чтобы избежать опроса на вопросы, вы должны включить то, что вы пробовали, и почему это не сработало. – Spudley

+0

Хорошо, поэтому проблема связана с отсутствием поддержки определенных функций браузера, поэтому, возможно, [обнаружение наличия этих функций] (http://html5doctor.com/using-modernizr-to-detect-html5-features-and-provide-fallbacks /) было бы подходящим решением вместо обнаружения версии браузера? Или, возможно, найти сценарий [polyfill] для отсутствующих функций] (https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills). – Spudley

ответ

1

вы можете использовать условные комментарии

<!--[if lte IE 7]> 
    <div>What ever you need tho show here</div> 
<![endif]--> 

везде на вашем HTML

См http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

для нескольких различных браузеров. Это НЕ только работает для таблиц стилей.

Другим способом является пользовательский javascript. но я предпочитаю это решение.

UPDATE

У меня нет IE не проверить, но теперь я думаю, что вы обновили вопрос и от того, что я вижу JQuery бы хорошее решение, чтобы изменить то, что вы хотели. Он должен искать элементы, которые вы хотите «изменить». Я привел пример, чтобы дать вам представление о том, как она могла бы работать

http://jsfiddle.net/3PcxV/2/

Подумайте, если вы используете это решение каждого ie7 пользователя должен иметь яваскрипт работает. Если он не хочет работать! Вот почему я предпочел бы решение выше. Другой способ - это вы можете изменить код только в одном месте и просто добавить класс к элементам, которые нужно изменить.

<div class="alwaysLikeThis">Lorem ipsum dolor sit amet.</div> 
<div class="changeOnIe7">Show something else on IE7</div> 
<div class="alwaysLikeThis changeOnIe7">Show something else on IE7</div> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     if($.browser.msie && parseInt($.browser.version, 10) == 7) { 
      alert("here"); 
      $(".changeOnIe7").replaceWith("<p class='newElement'>this is something else</p>"); 
     } 
    }); 
</script> 
0

Заканчивать conditional comments

+1

Возможно, вы захотите подробно остановиться на своем ответе - на данный момент это действительно похоже на что-то, что должно быть комментарием. Вы можете сделать это, объяснив его использование, предоставив примеры и их релевантность в вопросе. Ссылка только на ответы, как правило, неодобрительно, поскольку ссылки могут перестать работать позднее. –

Смежные вопросы