У меня есть проблема с JQuery (1.4.2) и хром 6JQuery Маржа проблема с хромом 6
margin-left:auto
margin-right:auto
$(id).css('margin-left');
$(id).css('margin-right');
и возвращает значение пикселей (например: 327px)
У меня есть проблема с JQuery (1.4.2) и хром 6JQuery Маржа проблема с хромом 6
margin-left:auto
margin-right:auto
$(id).css('margin-left');
$(id).css('margin-right');
и возвращает значение пикселей (например: 327px)
Это происходит потому, что, когда указав маржу: auto, Chrome (а также Safari, поскольку оба они используют WebKit) устанавливает вычисленное значение margin-left и margin-right равным использованным значениям.
Хотя Firefox и IE устанавливают вычисленное значение margin-left и margin-right на 0px. Поэтому, если у вас есть страница шириной 1000 пикселей, а ваш элемент занимает 50% ширины (т. Е. 500 пикселей) и имеет margin: auto, то Chrome будет устанавливать вычисленное значение элемента margin-left и margin-right до 250 пикселей (так что он заполняет все пустое пространство между краем границы элемента и краем содержимого его родительского элемента с полями и таким образом горизонтально центрирует элемент).
Тем не менее, Firefox и IE устанавливают вычисленное значение margin-left и margin-right на 0px, поэтому между краем границы элемента и краем содержимого его родительского элемента нет полей, но он по-прежнему центрирован. Вы можете увидеть, как это происходит с помощью Firebug в Firefox и инструментах разработчика в Chrome. В глубине объяснение можно найти здесь:
из smnh ответ под jQuery position page
помните, что вы можете иметь больше контроля с размерами используя .position()
и .offset()
$(id).position().left
или вы действительно хотите MarginLeft
?
Мне нужно получить значение маржи, чтобы нарисовать поле-маркер вокруг элемента. Есть ли другой способ его расчета? – StoneHeart
У вас есть размеры элемента (размер) и смещение (от границ), это очень легко сделать! – balexandre
и проблема есть? – balexandre
Другие браузеры возвращают «авто» (FF, IE, Opera) – StoneHeart
в следующий раз, сделайте что-нибудь еще, например http://jsbin.com/uhuta3, чтобы мы могли помочь вам лучше, не хотим, чтобы мы все делали, дайте нам все, что можно, чтобы получить быстрый и резкий ответ – balexandre