Использование css()
для чтения стилей, применяемых в таблицах стилей, делает разные вещи в разных браузерах.
В IE он считывает значения из специфического для IE объекта currentStyle
, который является единственным способом доступа к этой информации. currentStyle
дает вам то, что CSS называет "указанным стилем" , то есть то, что вы написали в таблице стилей. Если вы не изменили его, начальное значение border-width
будет «средним», так что вы получите именно это.
В других браузерах css()
использует стандартный метод DOM Level 2 CSS getComputedStyle()
. В отличие от IE currentStyle
, это возвращает «вычисленный стиль», который отличается от указанного стиля тем, что относительные единицы, такие как «средний», разрешаются до фактической длины.
Здесь «средний» обычно разрешается до длины около 3px
, но вы, вероятно, фактически не включали границу для этого элемента, поэтому по умолчанию он равен border-style: none
. Это делает border-width
разрешение нулевым.
Обычно «указанный стиль» и «вычисляемый стиль» достаточно близки друг к другу, чтобы вы могли справиться с ними одинаково, и именно на это опирается метод css()
в jQuery. Но на самом деле они не совсем одинаковые.