Я пытаюсь получить реальный стиль встроенного элемента, но он всегда получает к нему css. Я не хочу изменять свой CSS, от него зависит слишком много страниц.jQuery: получить встроенный стиль, а не CSS тела
<body class="processed" style="padding-top: 157px ;margin-top: 0px;">
Мой CSS
.processed{padding-top: 56px !important;}
JS:
$(function(){
var pad = $('body').css('padding-top');
$('body').attr('style','padding-top:'+ pad +' !important; margin-top: 0px;');
console.log('pad' + pad);
});
Результат: body
с встроенным стилем 56px
, а 157px
...
! Встроенный стиль - это CSS, это просто встроенный CSS. Что ты спрашиваешь? –
Javascript, изменяющий CSS, всегда получает то, что представляют собой текущие расчетные стили на элементах. Если у вас есть 100 правил класса, он не покажет css для всех классов, а только одно правило css, которое элемент выполняет в настоящее время в соответствии с правилами [css specificity] (https://developer.mozilla.org/en -US/docs/Web/CSS/Specificity) –
, добавив '! Important' в ваш css, вы переопределяете встроенный стиль, поэтому он будет 56 пикселей. – Banana