Zepto.js предоставляет легкий и удобный API для работы с DOM, упрощая
многие задачи, включая получение вычисленных стилей
элементов на странице. В отличие от доступа через
element.style, который возвращает только
inline-стили, методы Zepto позволяют получить
актуальные значения свойств, применяемых через CSS, включая наследуемые
и каскадные значения.
.css()Метод .css() является основным инструментом для
получения и установки стилей элементов. Он поддерживает как
чтение, так и изменение
CSS-свойств.
Синтаксис для получения стиля:
var value = $('selector').css('property');
'property' — имя CSS-свойства в камере
написания JavaScript (camelCase), например
backgroundColor, fontSize.Пример:
var width = $('#box').css('width');
console.log(width); // "200px"
Если элемент имеет несколько стилей, примененных через классы CSS и
inline, .css() возвращает фактическое
значение, которое браузер применил в текущий момент.
Можно передать массив свойств для получения нескольких значений одновременно:
var styles = $('#box').css(['width', 'height', 'color']);
console.log(styles.width); // "200px"
console.log(styles.height); // "100px"
console.log(styles.color); // "rgb(0, 0, 0)"
Возвращается объект, где ключи — имена свойств, а значения — их вычисленные значения.
Некоторые свойства, например width, height,
margin, padding, возвращаются с
указанием единиц измерения (px). Для работы с
числами можно использовать парсинг:
var height = parseFloat($('#box').css('height'));
console.log(height); // 100
Это полезно при выполнении математических операций с размерами элементов.
Метод .css() возвращает вычисленные значения, но если
требуется доступ только к inline-стилям, можно
использовать стандартное свойство DOM:
var inlineWidth = document.getElementById('box').style.width;
Разница в том, что style.width вернет только то, что
задано через атрибут style, а .css('width') —
актуальное значение после применения всех CSS-правил.
Zepto позволяет получать стили, которые унаследованы
или применяются через внешние CSS-файлы. Для этого достаточно
использовать .css() на нужном элементе.
Пример с наследованием:
var fontSize = $('#child').css('fontSize');
console.log(fontSize); // "16px", если родитель определяет размер шрифта
Даже если элемент сам не имеет установленного font-size,
возвращается значение, которое браузер применил в текущем контексте.
Часто необходимо получать размеры элементов для позиционирования, анимаций или адаптивной верстки:
var box = $('#box');
var width = parseFloat(box.css('width'));
var padding = parseFloat(box.css('padding-left')) + parseFloat(box.css('padding-right'));
var contentWidth = width - padding;
console.log(contentWidth);
Здесь комбинируются значения разных свойств для получения реальной ширины содержимого.
"auto" или "0px".rgb(255, 0, 0)), даже
если в CSS указано название цвета или HEX.transform и transition
возвращаются в том виде, в котором их вычисляет браузер, что может
отличаться от записи в CSS..css()
позволяет получить актуальные значения, чтобы корректно
рассчитывать шаги анимации.parseFloat, чтобы избежать ошибок при сложении строк с
px.Zepto.js делает работу с вычисленными стилями простой и лаконичной, сохраняя совместимость с синтаксисом jQuery, но с минимальным весом библиотеки. Это особенно удобно при разработке легковесных мобильных интерфейсов, где требуется оперативное получение и корректировка стилей элементов.