2013-12-19 2 views
1

У меня вопрос о получении стиля DOM с помощью javascript.Получить свойства стиля

#quicklink { 
    position: absolute; 
    top: 500px; 
    left: 500px; 
} 

<div id="quicklink" class="draggable"> 
    <img class="menu_icon" src="4a.png" src="" />     
</div> 

Когда я пытаюсь получить верх элемента с помощью этого кода. Почему у него всегда есть пустое строковое значение?

var quicklink = document.getElementById('quicklink'); 
console.log(quicklink.style.top); // string value ??? 

Спасибо!

+0

возможно дубликат (HTTP [Как получить значение стиль, в в JavaScript?]: // StackOverflow .com/questions/2664045/how-to-retrieve-a-styles-value-in-javascript) –

ответ

5

Это потому, что стиль не находится в DOM в качестве атрибута этого элемента ID. Вы можете попробовать getComputeStyle() для доступа к стилям, применяемым через отдельный CSS.

var elem1 = document.getElementById("elemId"); 
var style = window.getComputedStyle(elem1, null); 

MDN: https://developer.mozilla.org/en-US/docs/Web/API/Window.getComputedStyle

W3C: http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-OverrideAndComputed-h3

+0

Можете ли вы объяснить мне, почему он всегда регистрируется с пустым значением строки? – PhuongTT

+0

Приложил объяснение спецификаций к моему ответу. –

+1

Документ объясняет, что 'getComputedStyle()' дает значения всех свойств CSS элемента после применения активных таблиц стилей и разрешения любого базового вычисления, которое могут содержать эти значения. Вероятно, это может привести к тому, что пустая строка не применяет активную таблицу стилей до тех пор. – KunJ

2

Попробуйте

function getCssProperty(elmId, property){ 
    var elem = document.getElementById(elmId); 
    return window.getComputedStyle(elem,null).getPropertyValue(property); 
} 
// You could now get your value like 
var top = getCssProperty("quicklink", "top"); 
console.log(top) 

DEMO

+0

Можете ли вы объяснить мне, почему он всегда регистрируется с пустым строковым значением? – PhuongTT

1

Попробуйте это:

var element = document.getElementById('quicklink'), 
    style = window.getComputedStyle(element), 
    top = style.getPropertyValue('top'); 
Смежные вопросы