Spec-Zone.ru › jQuery

.css()

Получение значения свойства вычисленного стиля для первого элемента в наборе сопоставленных элементов или установка одного или нескольких свойств CSS для каждого сопоставленного элемента.

Содержание:

  • .css( propertyName )
    • .css( propertyName )
    • .css( propertyNames )
  • .css( propertyName, value )
    • .css( propertyName, value )
    • .css( propertyName, function )
    • .css( properties )

.css( propertyName )Возвращает: Строка

Описание: Получение вычисленных свойств стиля для первого элемента в наборе сопоставленных элементов.

  • версия добавлена: 1.0.css( propertyName )

    • propertyName
      Тип: Строка
      Свойство CSS.
  • версия добавлена: 1.9.css( propertyNames )

    • propertyNames
      Тип: Массив
      Массив из одного или нескольких свойств CSS.

Метод .css() является удобным способом получения свойства вычисленного стиля из первого сопоставленного элемента, особенно с учётом различных способов доступа браузеров к большинству этих свойств (метод getComputedStyle() в браузерах, основанных на стандартах, по сравнению со свойствами currentStyle и runtimeStyle в Internet Explorer до версии 9) и различных терминов, используемых браузерами для определённых свойств. Например, реализация DOM в Internet Explorer ссылается на свойство float как styleFloat, в то время как браузеры, совместимые со стандартами W3C, ссылаются на него как cssFloat. Для обеспечения согласованности вы можете просто использовать "float", и jQuery переведёт его к правильному значению для каждого браузера.

Также jQuery может одинаково интерпретировать форматирование CSS и DOM для свойств из нескольких слов. Например, jQuery понимает и возвращает правильное значение как для .css( "background-color" ) , так и для .css( "backgroundColor" ). Это означает, что смешанный регистр имеет особое значение, .css( "WiDtH" ) не будет делать то же самое, что и .css( "width" ), например.

Обратите внимание, что вычисленный стиль элемента может отличаться от значения, указанного для этого элемента в таблице стилей. Например, вычисленные размеры почти всегда задаются в пикселях, но они могут быть заданы в em, ex, px или % в таблице стилей. Разные браузеры могут возвращать значения цветов CSS, которые логически, но не текстово равны, например #FFF, #ffffff и rgb(255,255,255).

Получение сокращённых свойств CSS (например, margin, background, border ), хотя и функционально в некоторых браузерах, не гарантируется. Например, если вам нужно получить отрисованное значение border-width, используйте: $( elem ).css( "borderTopWidth" ), $( elem ).css( "borderBottomWidth" ) и так далее.

Элемент должен быть подключён к DOM при вызове .css() на нём. Если этого не сделать, jQuery может выдать ошибку.

Начиная с jQuery 1.9, передача массива свойств стиля в .css() приведет к объекту пар свойство-значение. Например, чтобы получить все четыре отрисованных значения border-width, можно использовать $( elem ).css([ "borderTopWidth", "borderRightWidth", "borderBottomWidth", "borderLeftWidth" ]).

Начиная с jQuery 3.2, поддерживаются пользовательские свойства CSS (также называемые переменными CSS): $( "p" ).css( "--custom-property" ). Обратите внимание, что вам нужно указать имя свойства как есть, преобразование в верблюжий регистр не сработает, как это работает для обычных свойств CSS.

Примеры:

Получить цвет фона нажатого div.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>css demo</title>
  <style>
  div {
    width: 60px;
    height: 60px;
    margin: 5px;
    float: left;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<span id="result">&nbsp;</span>
<div style="background-color:blue;"></div>
<div style="background-color:rgb(15,99,30);"></div>
<div style="background-color:#123456;"></div>
<div style="background-color:#f11;"></div>
 
<script>
$( "div" ).on( "click", function() {
  var color = $( this ).css( "background-color" );
  $( "#result" ).html( "That div is <span style='color:" +
    color + ";'>" + color + "</span>." );
});
</script>
 
</body>
</html>

Демо:

Получить ширину, высоту, цвет текста и цвет фона нажатого div.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>css demo</title>
  <style>
  div {
    height: 50px;
    margin: 5px;
    padding: 5px;
    float: left;
  }
  #box1 {
    width: 50px;
    color: yellow;
    background-color: blue;
  }
  #box2 {
    width: 80px;
    color: rgb(255, 255, 255);
    background-color: rgb(15, 99, 30);
  }
  #box3 {
    width: 40px;
    color: #fcc;
    background-color: #123456;
  }
  #box4 {
    width: 70px;
    background-color: #f11;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<p id="result">&nbsp;</p>
<div id="box1">1</div>
<div id="box2">2</div>
<div id="box3">3</div>
<div id="box4">4</div>
 
<script>
$( "div" ).on( "click", function() {
  var html = [ "The clicked div has the following styles:" ];
 
  var styleProps = $( this ).css([
    "width", "height", "color", "background-color"
  ]);
  $.each( styleProps, function( prop, value ) {
    html.push( prop + ": " + value );
  });
 
  $( "#result" ).html( html.join( "<br>" ) );
});
</script>
 
</body>
</html>

Демо:

.css( propertyName, value )Возвращает: jQuery

Описание: Установить одну или несколько свойств CSS для набора совпавших элементов.

  • версия добавлена: 1.0.css( propertyName, value )

    • propertyName
      Тип: Строка
      Имя свойства CSS.
    • value
      Тип: Строка или Число
      Значение для установки свойства.
  • версия добавлена: 1.4.css( propertyName, function )

    • propertyName
      Тип: Строка
      Имя свойства CSS.
    • function
      Тип: Функция( Целое число индекс, Строка значение ) => Строка или Число
      Функция, возвращающая значение для установки. this — текущий элемент. Получает позицию индекса элемента в наборе и старое значение в качестве аргументов.
  • версия добавлена: 1.0.css( properties )

    • properties
      Тип: Объект
      Объект пар имя-значение свойств для установки.

Как и в методе .prop(), метод .css() позволяет быстро и легко устанавливать свойства элементов. Этот метод может принимать имя свойства и значение в качестве отдельных параметров или один объект пар ключ-значение.

Кроме того, jQuery может одинаково интерпретировать форматирование CSS и DOM для свойств из нескольких слов. Например, jQuery понимает и возвращает правильное значение для .css({ "background-color": "#ffe", "border-left": "5px solid #ccc" }) и .css({backgroundColor: "#ffe", borderLeft: "5px solid #ccc" }). Обратите внимание, что при использовании DOM-нотации кавычки вокруг имён свойств необязательны, но при использовании CSS-нотации они необходимы из-за дефиса в имени.

Когда в качестве значения передаётся число, jQuery преобразует его в строку и добавляет px к концу этой строки. Если свойству требуются единицы измерения, отличные от px, преобразуйте значение в строку и добавьте соответствующие единицы измерения перед вызовом метода.

При использовании .css() в качестве установщика, jQuery изменяет свойство style элемента. Например, $( "#mydiv" ).css( "color", "green" ) эквивалентно document.getElementById( "mydiv" ).style.color = "green". Установка значения свойства стиля в пустую строку — например, $( "#mydiv" ).css( "color", "" ) — удаляет это свойство из элемента, если оно уже было применено напрямую, как в атрибуте стиля HTML, через метод .css() jQuery или через прямую обработку DOM свойства style. В результате, стиль элемента для этого свойства восстанавливается до того значения, которое было применено. Таким образом, этот метод можно использовать для отмены ранее выполненных изменений стиля. Однако он не удаляет стили, которые были применены правилом CSS в таблице стилей или элементе <style>. Предупреждение: одно важное исключение заключается в том, что для IE 8 и ниже удаление краткого свойства, такого как border или background, полностью удаляет этот стиль из элемента, независимо от того, что установлено в таблице стилей или элементе <style>.

Примечание: .css() не поддерживает объявления !important. Таким образом, утверждение $( "p" ).css( "color", "red !important" ) не изменяет цвет всех абзацев на странице в красный цвет, начиная с jQuery 3.6.0. Однако не полагайтесь на то, что это не работает, так как в будущей версии jQuery может быть добавлена поддержка таких объявлений. Вместо этого настоятельно рекомендуется использовать классы; в противном случае используйте плагин jQuery.

Начиная с jQuery 1.8, установщик .css() автоматически позаботится о добавлении префикса к имени свойства. Например, .css( "user-select", "none" ) в Chrome/Safari будет задано как -webkit-user-select, Firefox будет использовать -moz-user-select, а IE10 будет использовать -ms-user-select.

Начиная с jQuery 1.6, .css() принимает относительные значения, аналогичные .animate(). Относительные значения — это строка, начинающаяся с += или -=, чтобы увеличить или уменьшить текущее значение. Например, если отступ слева элемента составлял 10px, то .css( "padding-left", "+=15" ) приведет к общему отступу слева 25px.

Начиная с jQuery 1.4, .css() позволяет нам передавать функцию в качестве значения свойства:

$( "div.example" ).css( "width", function( index ) {
  return index * 50;
});

В этом примере ширина совпавших элементов увеличивается инкрементально.

Примечание: Если в функции-установщике ничего не возвращается (т. е. function( index, style ){} ), или если возвращается undefined, текущее значение не изменяется. Это полезно для избирательной установки значений только при соблюдении определённых условий.

Начиная с jQuery 3.2, пользовательские свойства CSS (также называемые переменными CSS) поддерживаются: $( "p" ).css( "--custom-property", "value" ). Обратите внимание, что вам необходимо указать имя свойства в точности так, как оно есть; его приведение к верблюжьему регистру не сработает, как это работает для обычных свойств CSS.

Примеры:

Изменение цвета любого абзаца на красный при наведении курсора.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>css demo</title>
  <style>
  p {
    color: blue;
    width: 200px;
    font-size: 14px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
  <p>Just roll the mouse over me.</p>
 
  <p>Or me to see a color change.</p>
 
<script>
$( "p" ).on( "mouseover", function() {
  $( this ).css( "color", "red" );
});
</script>
 
</body>
</html>

Демо:

Увеличение ширины #box на 200 пикселей при первом клике.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>css demo</title>
  <style>
  #box {
    background: black;
    color: snow;
    width: 100px;
    padding: 10px;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<div id="box">Click me to grow</div>
 
<script>
$( "#box" ).one( "click", function() {
  $( this ).css( "width", "+=200" );
});
</script>
 
</body>
</html>

Демо:

Выделение нажатого слова в абзаце.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>css demo</title>
  <style>
  p {
    color: blue;
    font-weight: bold;
    cursor: pointer;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<p>
  Once upon a time there was a man
  who lived in a pizza parlor. This
  man just loved pizza and ate it all
  the time.  He went on to be the
  happiest man in the world.  The end.
</p>
 
<script>
var words = $( "p" ).first().text().split( /\s+/ );
var text = words.join( "</span> <span>" );
$( "p" ).first().html( "<span>" + text + "</span>" );
$( "span" ).on( "click", function() {
  $( this ).css( "background-color", "yellow" );
});
</script>
 
</body>
</html>

Демо:

Изменение начертания шрифта и цвета фона при наведении мыши и уходе.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>css demo</title>
  <style>
  p {
    color: green;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<p>Move the mouse over a paragraph.</p>
<p>Like this one or the one above.</p>
 
<script>
$( "p" )
  .on( "mouseenter", function() {
    $( this ).css({
      "background-color": "yellow",
      "font-weight": "bolder"
    });
  })
  .on( "mouseleave", function() {
    var styles = {
      backgroundColor : "#ddd",
      fontWeight: ""
    };
    $( this ).css( styles );
  });
</script>
 
</body>
</html>

Демо:

Увеличение размера div при нажатии на него.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>css demo</title>
  <style>
  div {
    width: 20px;
    height: 15px;
    background-color: #f33;
  }
  </style>
  <script src="https://code.jquery.com/jquery-3.7.0.js"></script>
</head>
<body>
 
<div>click</div>
<div>click</div>
 
<script>
$( "div" ).on( "click", function() {
  $( this ).css({
    width: function( index, value ) {
      return parseFloat( value ) * 1.2;
    },
    height: function( index, value ) {
      return parseFloat( value ) * 1.2;
    }
  });
});
</script>
 
</body>
</html>

Демо:

© The jQuery Foundation and other contributors
Licensed under the MIT License.
https://api.jquery.com/css

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API