Лучший способ проверить на поддержку-moz-border-radius

Вы можете решить это по символической ссылке.

unlink /usr/local/bin/python
ln -s /usr/local/bin/python3.3 /usr/local/bin/python
11
задан Alexander Elgin 8 February 2016 в 13:23
поделиться

7 ответов

Как насчет этого?

var mozborderAvailable = false;
try {
  if (typeof(document.body.style.MozBorderRadius) !== "undefined") {
    mozborderAvailable = true;
  }
} catch(err) {}

Я протестировал его в Firefox 3 (верном) и ложном в: Safari, IE7 и Opera.

(Редактирование: лучше неопределенный тест)

11
ответ дан 3 December 2019 в 04:54
поделиться

Почему бы не использовать -moz-border-radius и -webkit-border-radius в таблице стилей? Это - действительный CSS, и бросок в других отношениях неиспользованного атрибута повредил бы меньше, чем наличие JavaScript делает работу, требующую беготни выяснения, если это должно применить его или нет.

Затем в JavaScript Вы просто проверили бы, является ли браузером IE (или Opera?) - если это, это проигнорирует собственные теги, и Ваш JavaScript мог бы сделать, это - вещь.

Возможно, я пропускаю что-то здесь...

4
ответ дан 3 December 2019 в 04:54
поделиться

Примените CSS безусловно и проверку element.style.MozBorderRadius в сценарии?

1
ответ дан 3 December 2019 в 04:54
поделиться

Поскольку Вы уже используете jQuery, Вы могли использовать jQuery.browser утилиту, чтобы сделать некоторый сниффинг браузера и затем предназначаться для Вашего CSS / JavaScript соответственно.

1
ответ дан 3 December 2019 в 04:54
поделиться

Проблема с этим состоит в том, что Firefox 2 не использует сглаживание для границ. Сценарий должен был бы обнаружить для Firefox 3, прежде чем будут собственные скругленные углы использования, поскольку FF3 действительно использует сглаживание.

1
ответ дан 3 December 2019 в 04:54
поделиться

Я разработал следующий метод определения, поддерживает ли браузер закругленные границы или нет. Мне еще предстоит протестировать его на IE (на машине с Linux), но он корректно работает в браузерах Webkit и Gecko (т.е. Safari/Chrome и Firefox), а также в Opera:

function checkBorders() {
  var div = document.createElement('div');
  div.setAttribute('style', '-moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px;');
  for ( stylenr=0; stylenr<div.style.length; stylenr++ ) {
    if ( /border.*?-radius/i.test(div.style[stylenr]) ) {
      return true;
    };
  return false;
};

Если вы хотите протестировать его на Firefox 2 или 3, то проверьте движок рендеринга Gecko, а не реальный браузер. Я не могу найти точную дату релиза Gecko 1.9 (это версия, которая поддерживает сглаженные закругленные углы), но в Mozilla wiki сказано, что она была выпущена в первом квартале 2007 года, так что мы предположим, что это май, чтобы быть уверенными.

if ( /Gecko\/\d*/.test(navigator.userAgent) && parseInt(navigator.userAgent.match(/Gecko\/\d*/)[0].split('/')[1]) > 20070501 )

В общем, комбинированная функция такова:

function checkBorders() {
  if ( /Gecko\/\d*/.test(navigator.userAgent) && parseInt(navigator.userAgent.match(/Gecko\/\d*/)[0].split('/')[1]) > 20070501 ) {
    return true;
  } else {
    var div = document.createElement('div');
    div.setAttribute('style', '-moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px;');
    for ( stylenr=0; stylenr<div.style.length; stylenr++ ) {
      if ( /border.*?-radius/i.test(div.style[stylenr]) ) {
        return true;
      };
    return false;
  };
};
1
ответ дан 3 December 2019 в 04:54
поделиться

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

У Роба Глейзбрука есть небольшой фрагмент, который расширяет объект поддержки jQuery для быстрой проверки наличия поддержки border-radius (также moz и web-kit).

jQuery(function() {
jQuery.support.borderRadius = false;
jQuery.each(['BorderRadius','MozBorderRadius','WebkitBorderRadius','OBorderRadius','KhtmlBorderRadius'], function() {
    if(document.body.style[this] !== undefined) jQuery.support.borderRadius = true;
    return (!jQuery.support.borderRadius);
}); });

Атрибуция

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

4
ответ дан 3 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

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