Я знаю, что могу установить значение CSS через JavaScript, например:
document.getElementById('image_1').style.top = '100px';
Но можно ли получить текущее конкретное значение стиля? Я прочитал, где я могу получить весь стиль для элемента, но я не хочу анализировать всю строку, если мне не нужно.
javascript
css
Майкл Пол
источник
источник
var top = document.getElementById('image_1').style.top;
Возможно, захотите перефразировать это, если это не то, что вы хотитеОтветы:
Вы можете использовать
getComputedStyle()
.jsFiddle .
источник
Свойство element.style позволяет вам знать только те свойства CSS, которые были определены как встроенные в этом элементе (программно или определены в атрибуте style элемента), вы должны получить вычисляемый стиль.
Это не так просто сделать кросс-браузерным способом, IE имеет свой собственный путь через свойство element.currentStyle, а стандартный способ DOM Level 2, реализованный другими браузерами, - через метод document.defaultView.getComputedStyle.
Два способа имеют различия, например, свойство IE element.currentStyle предполагает, что вы обращаетесь к именам свойств CSS, состоящим из двух или более слов в camelCase (например, maxHeight, fontSize, backgroundColor и т. Д.), Стандартный способ ожидает свойства с слова, разделенные тире (например, максимальная высота, размер шрифта, цвет фона и т. д.). ......
Основной эталонный стек
источник
Используйте следующее. Это помогло мне.
Смотрите также Получить стили .
источник
Кросс-браузерное решение для проверки значений CSS без манипуляций с DOM:
Использование:
Обеззараженная версия (переводит селекторный ввод в нижний регистр и позволяет использовать регистр без начального ".")
источник
Если вы установите его программно, вы можете просто назвать его как переменную (т.е.
document.getElementById('image_1').style.top
). В противном случае вы всегда можете использовать jQuery:источник
В 2020 году
Вы можете использовать computedStyleMap ()
Ответ верен, но иногда вам нужно проверить, какую единицу он возвращает, вы можете получить его без каких-либо
slice()
илиsubstring()
строки.источник
Если вы в библиотеках, почему бы не MyLibrary и getStyle .
Метод jQuery css назван неправильно, CSS является лишь одним из способов установки стилей и не обязательно представляет фактические значения свойств стиля элемента.
источник
В целях безопасности вы можете проверить, существует ли элемент, прежде чем пытаться читать с него. Если он не существует, ваш код выдаст исключение, которое остановит выполнение остальной части вашего JavaScript и потенциально отобразит сообщение об ошибке пользователю - не хорошо. Вы хотите быть в состоянии изящно потерпеть неудачу.
источник
Кросс-браузерное решение без DOM-манипуляции, приведенное выше, не работает, потому что оно дает первое правило соответствия, а не последнее. Последнее правило соответствия является тем, которое применяется. Вот рабочая версия:
Однако этот простой поиск не будет работать в случае сложных селекторов.
источник