Bliss.js предоставляет лёгкий и лаконичный способ работы с DOM, включая доступ к вычисляемым стилям элементов. Вычисляемые стили позволяют получить точные значения CSS-свойств, применённых к элементу после применения всех каскадных правил, включая наследование, значения по умолчанию браузера и медиа-запросы.
Для доступа к вычисленным стилям используется метод
$.css():
let element = $('.my-element');
let width = element.css('width'); // возвращает ширину элемента в пикселях
Метод $.css() позволяет получить конкретное
значение свойства, которое браузер применил к элементу.
Например, если в CSS указано width: 50%,
element.css('width') вернёт результат в пикселях в
зависимости от ширины родительского контейнера.
Поддерживаются любые стандартные свойства CSS:
let color = element.css('color'); // цвет текста
let marginTop = element.css('margin-top'); // верхний отступ
let fontSize = element.css('font-size'); // размер шрифта
Bliss.js позволяет получать сразу несколько свойств, передав массив строк:
let styles = element.css(['width', 'height', 'background-color']);
console.log(styles.width, styles.height, styles['background-color']);
Возвращается объект, где ключами являются названия свойств, а значениями — вычисленные значения.
cssМетод $.css() работает не только на получение, но и на
установку стилей:
element.css('width', '200px');
element.css({
height: '150px',
'background-color': 'lightblue'
});
При передаче объекта все свойства применяются одновременно. Это особенно удобно для динамических интерфейсов, где нужно мгновенно обновлять несколько параметров.
Вычисленные значения возвращаются в виде строк, чаще всего с
единицами (px, %, em). Для
численных вычислений удобно преобразовывать их в число:
let width = parseFloat(element.css('width')); // возвращает число
let height = parseFloat(element.css('height'));
let area = width * height;
Это позволяет производить расчёты размеров элементов, вычислять пропорции и динамически изменять стили.
Вычисляемые стили включают унаследованные свойства.
Например, цвет текста (color) или шрифт
(font-family) будут возвращать фактическое значение,
применённое к элементу, даже если оно не задано напрямую:
let font = element.css('font-family'); // значение, унаследованное от родителя
Если свойство не применимо к элементу, метод вернёт пустую строку.
Bliss.js позволяет получать вычисленные стили для элементов с псевдоклассами через обычное обращение к элементу, но нужно учитывать, что псевдоклассы нельзя напрямую выбрать в JS:
let firstChildColor = $('.parent > :first-child').css('color');
Вычисленные стили можно использовать для адаптации интерфейса под размер окна или для изменения элементов в зависимости от их текущих размеров:
let width = parseFloat(element.css('width'));
if (width < 300) {
element.css('font-size', '12px');
} else {
element.css('font-size', '16px');
}
Такой подход позволяет создавать резиновый интерфейс, реагирующий на изменения размеров контейнера или окна браузера.
В сочетании с анимациями вычисляемые стили позволяют точно рассчитывать начальные и конечные точки переходов. Например:
let startHeight = parseFloat(element.css('height'));
element.css('height', startHeight + 50 + 'px');
Таким образом, можно плавно увеличивать элементы на основе их текущего состояния, а не фиксированных значений.
Вычисляемые стили в Bliss.js обеспечивают прямой и удобный доступ к фактическим свойствам элементов, что делает библиотеку мощным инструментом для динамической манипуляции DOM и адаптивного интерфейса.