2010-09-06 4 views
1

У меня есть проблема с JQuery (1.4.2) и хром 6JQuery Маржа проблема с хромом 6

margin-left:auto 
margin-right:auto 

$(id).css('margin-left'); 
$(id).css('margin-right'); 

и возвращает значение пикселей (например: 327px)

+0

и проблема есть? – balexandre

+0

Другие браузеры возвращают «авто» (FF, IE, Opera) – StoneHeart

+1

в следующий раз, сделайте что-нибудь еще, например http://jsbin.com/uhuta3, чтобы мы могли помочь вам лучше, не хотим, чтобы мы все делали, дайте нам все, что можно, чтобы получить быстрый и резкий ответ – balexandre

ответ

2

Это происходит потому, что, когда указав маржу: 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. В глубине объяснение можно найти здесь:

http://www.3d3r.com/simon/marginAutoComputedValue

из smnh ответ под jQuery position page


помните, что вы можете иметь больше контроля с размерами используя .position() и .offset()

$(id).position().left 

или вы действительно хотите MarginLeft?

+0

Мне нужно получить значение маржи, чтобы нарисовать поле-маркер вокруг элемента. Есть ли другой способ его расчета? – StoneHeart

+0

У вас есть размеры элемента (размер) и смещение (от границ), это очень легко сделать! – balexandre

Смежные вопросы