Метод .css() предназначен для работы со стилями
элементов HTML. Он позволяет получать, задавать и изменять
CSS-свойства как для одного, так и для множества элементов
одновременно. Этот метод является одним из основных инструментов jQuery
для динамического управления внешним видом страницы.
Для получения текущего значения CSS-свойства элемента используется следующая форма:
$(селектор).css(свойство);
селектор — строка, указывающая на элемент или группу
элементов.свойство — название CSS-свойства в виде строки.Пример:
let backgroundColor = $('#box').css('background-color');
console.log(backgroundColor); // rgb(255, 255, 255)
Важно: при получении значения метода .css() возвращается
вычисленное значение, даже если свойство задано в
относительных единицах (em, %), оно будет
преобразовано в пиксели (px), если это применимо.
Для задания нового значения свойства используется форма:
$(селектор).css(свойство, значение);
Пример:
$('#box').css('color', 'red');
$('#box').css('width', '200px');
Метод автоматически применяет стиль ко всем выбранным элементам. Если элемент содержит уже существующее значение свойства, оно будет перезаписано.
Для удобства можно передавать объект с парами
"свойство: значение":
$(селектор).css({
'color': 'white',
'background-color': 'blue',
'font-size': '16px'
});
Преимущество этого подхода — чистый и компактный код при необходимости изменения множества стилей сразу.
Метод .css() поддерживает передачу функции вместо
значения. Функция вызывается для каждого элемента и может вычислять
новое значение на основе текущего:
$('#box').css('width', function(index, currentValue) {
return parseInt(currentValue) + 20 + 'px';
});
index — индекс элемента в выборке.currentValue — текущее значение CSS-свойства.Это позволяет создавать адаптивные эффекты, например, увеличивать ширину блоков по определённой формуле.
Для CSS-свойств, которые требуют единицы измерения (px,
%, em), jQuery автоматически добавляет
'px', если передан просто числовой тип:
$('#box').css('height', 100); // эквивалентно '100px'
Для свойств без единиц (opacity, z-index)
передача числа используется напрямую.
Метод .css() применим к группе
элементов, выбранных селектором. Применение изменения будет
массовым:
$('.item').css('border', '1px solid black');
При чтении значения метода .css() из выборки с
несколькими элементами возвращается значение первого
элемента:
let fontSize = $('.item').css('font-size'); // значение font-size первого элемента
!importantСтандартный метод .css() не может напрямую устанавливать
CSS-свойства с !important. Для таких случаев необходимо
использовать инлайновый стиль через DOM:
$('#box')[0].style.setProperty('color', 'red', 'important');
Метод .css() возвращает вычисленное
значение, учитывая все правила CSS и наследование. Например,
если цвет текста не задан явно, а наследуется от родителя,
.css('color') вернёт наследуемое значение.
Метод .css() поддерживает работу с CSS-переменными
(Custom Properties):
let primaryColor = $('#box').css('--primary-color');
$('#box').css('--primary-color', 'green');
styleРазница между jQuery .css() и доступом через
element.style:
.css() возвращает вычисленное
значение, даже если оно задано в классах CSS.element.style отражает только инлайновые
стили, заданные через атрибут style.Пример:
console.log(document.getElementById('box').style.width); // '' если width задан через CSS
console.log($('#box').css('width')); // '200px' вычисленное значение
Метод .css() часто используется совместно с анимациями
jQuery для установки начальных или промежуточных стилей:
$('#box').css('opacity', 0).animate({ opacity: 1 }, 1000);
Также поддерживаются свойства типа height,
width, margin, padding, что
делает метод универсальным для динамического управления стилями.
Метод .css() является фундаментальным инструментом для
гибкой и динамической работы со стилями элементов,
сочетая удобство, лаконичность и возможность тонкой настройки. Его
возможности охватывают как простое изменение цвета или размера, так и
сложные сценарии с вычисляемыми значениями и наследуемыми стилями.