JQuery - обнаружение поддержки CSS 'display: table-row-group' - PullRequest
3 голосов
/ 08 сентября 2010

Итак, Internet Explorer <= 8 не принимает стандартные значения <code>table-row и table-row-group для свойства CSS display (среди прочего).Я не использую функции обнаружения браузера JQuery , поскольку они устарели.Как я могу обнаружить поддержку table-row-group в JQuery без анализа строки браузера / агента пользователя?То есть как определить наличие функции, а не наличие определенного браузера?

Ответы [ 3 ]

1 голос
/ 08 сентября 2010

Я не верю, что с помощью Javascript вы можете непосредственно определить поддержку свойства CSS.У меня есть две рекомендации, если это правда:

  1. Вставьте в скрытый div два элемента, один с table-row и один без.Посмотрите, есть ли разница в высоте или ширине.Если это так, вычислите высоту или ширину, выяснив разницу между браузером, который его поддерживает, и браузером, который его не поддерживает.

  2. Даже если обнаружение браузера jQuery устарело, вы можете разместитьлокально следующий скрипт:

http://www.tvidesign.co.uk/blog/CSS-Browser-detection-using-jQuery-instead-of-hacks.aspx

Я использую его, и мне это нравится!Он добавляет два класса (например, ".browserIE7 и .browserIE") к тегу body, чтобы вы могли использовать Javascript (if $('body').hasClass('browserIE7')...) или CSS (.browserIE7.div {...)

Удачи!

Редактировать

Может быть, это возможно с Javascript ... 3-й вариант: http://perfectionkills.com/feature-testing-css-properties/, хотя я не читал статью или использовал его предложение.

0 голосов
/ 16 сентября 2010

Вам может пригодиться Модернизр. Он проверяет множество CSS-свойств и в соответствии с этими тестами добавляет классы к тегу <html>. Кроме того, он добавляет классы относительно пользовательского агента и тому подобного.

Вы можете узнать больше о Modernizr на его сайте: http://www.modernizr.com/

0 голосов
/ 16 сентября 2010

Если обнаружение свойств CSS не работает, я бы порекомендовал использовать условные выражения IE следующим образом:

<!--[if lte IE 7]>
        <script type="text/javascript">
            var ie7 = true;
        </script>
<![endif]--> 

<!--[if lte IE 6]>
         <script type="text/javascript">
            var ie6 = true;
        </script>
<![endif]-->

Или что-то в этом роде ... это если вы хотите, чтобы ваши сценарии определяли, какиеиспользуйте браузер и не хотите анализировать строку пользовательского агента.

Если вы просто хотите направить CSS в определенные браузеры, тогда, очевидно, просто поместите ссылку на таблицу стилей IE в условные выражения.Я бы никогда не рекомендовал отправлять разные CSS на основе определения браузера JS, поскольку не у всех пользователей будет включен JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...