Получить значение границы с помощью getComputedStyle(). GetPropertyValue()? (Mozilla, FF)
В некоторых браузерах (а именно в Firefox) getComputedStyle().getPropertyValue()
ничего не сообщает о сокращенном CSS, как border
, Есть ли способ неконкретного кода для получения этих сокращенных значений CSS? Я рассмотрел создание белого списка сокращенных CSS и их соответствующих сокращенных значений CSS. Но я понимаю, что это было бы большой болью и несовместимым дизайном.
1 ответ
Мне интересно, что вы хотите сделать со строкой, как border: 1px solid #000
?
Скажем, вы хотите воспроизвести элементы border
для того, чтобы скопировать его copyStyle(el2, el, "border")
:
// Copies a set of styles from one element to another.
function copyStyle(dest, source, shorthand) {
var computed = window.getComputedStyle(source, null);
for (var i = computed.length; i--;) {
var property = camelize(computed[i]);
if (property.indexOf(shorthand) > -1) {
console.log(property)
dest.style[property] = computed[property];
}
}
}
// prototype.js
function camelize(text) {
return text.replace(/-+(.)?/g, function (match, chr) {
return chr ? chr.toUpperCase() : '';
});
}
Сравнение, если заданный набор стилей двух элементов соответствует, может быть сделано таким же образом. Кроме этого, я действительно не вижу использования строки, которая должна быть проанализирована, если вы хотите что-то с ней вычислить.