Мне нужны некоторые из этих крутых закругленных углов для веб-проекта, над которым я сейчас работаю.Лучший способ проверки поддержки -moz-border-radius
Я думал, что попытаюсь выполнить его, используя javascript, а не CSS, чтобы свести к минимуму запросы на файлы изображений (да, я знаю, что можно объединить все необходимые округлые угловые фигуры в одно изображение) и я также хотел иметь возможность менять цвет фона в значительной степени на лету.
Я уже использую jQuery, поэтому я посмотрел на отличный rounded corners plugin, и он работал как шарм в каждом браузере, который я пробовал. Однако, будучи разработчиком, я заметил возможность сделать его более эффективным. Скрипт уже содержит код для определения того, поддерживает ли текущий браузер сторонние углы webkit (браузеры, основанные на сафари). Если это так, он использует raw CSS вместо создания слоев div.
Я думал, что было бы замечательно, если бы такая же проверка могла быть выполнена, чтобы увидеть, поддерживает ли браузер свойства Gecko, специфичные для -moz-border-radius-*
, и если они их используют.
Проверка поддержки WebKit выглядит следующим образом:
var webkitAvailable = false;
try {
webkitAvailable = (document.defaultView.getComputedStyle(this[0], null)['-webkit-border-radius'] != undefined);
}
catch(err) {}
Это, однако, не работал -moz-border-radius
, так что я начал проверять альтернативы.
Моим резервным решением является, конечно же, использование браузера, но это далеко не рекомендуется.
Мое лучшее решение пока следующее.
var mozborderAvailable = false;
try {
var o = jQuery('<div>').css('-moz-border-radius', '1px');
mozborderAvailable = $(o).css('-moz-border-radius-topleft') == '1px';
o = null;
} catch(err) {}
Он основан на теории, что Gecko "расширяющейся" составное -moz-границы радиуса к четырем подсвойств
-moz-border-radius-topleft
-moz-border-radius-topright
-moz-border-radius-bottomleft
-moz-border-radius-bottomright
Есть ли там javascript/CSS-гуру, которые имеют лучшее решение?
(запрос Функции для этой страницы на http://plugins.jquery.com/node/3619)
Выполняется ли javascript, если вы пытаетесь применить неопределенные атрибуты CSS к элементам? – 2010-01-03 21:30:35
Как использовать функцию обнаружения, чтобы узнать, поддерживает ли браузер радиус границы? http://stackoverflow.com/questions/5277288/how-to-use-feature-detection-to-know-if-browser-supports-border-radius-includin – Tom 2011-09-14 15:20:46