Я обнаружил, что эта ошибка также будет существовать в ситуациях, когда вы используете margin auto в CSS.
Например, в компоновке с фиксированной шириной и выравниванием по центру обычно используется «margin: 0px auto;» держать контент в центре внимания. Похоже, что это дает возможные (вероятные) десятичные поля слева / справа для содержимого. Это не проблема для Firefox ... он отлично справляется с десятичными смещениями пикселей.
Но Flash-виджеты, кажется, полностью теряют сознание, когда их контейнер объектов позиционируется с десятичными значениями пикселей. Как минимум, вы не можете взаимодействовать с кнопкой «Разрешить». Мне кажется, что это является основной причиной этой ошибки, о которой вы будете часто сообщать многие (поскольку это относится к FF по крайней мере).
Что касается того, почему это происходит только в FF, я не совсем уверен. На моей машине с OSX Safari и Chrome не демонстрируют такое поведение с флеш-объектами. Возможно, все элементы DOM в Webkit отображаются автоматически со значениями смещения в скругленных пикселях?
Для Firefox я реализовал этот обходной путь (полезно для выровненных по центру проектов):
$(document).ready( function() {
repositionContentContainer();
});
function repositionContentContainer() {
// this routine is a complete hack to work around the flash "Allow" button bug
if ( $("#content").length > 0 ) {
//Adjust the #content left-margin, since by default it likely isn't an int
setLeftMargin();
//If the User resizes the window, adjust the #content left-margin
$(window).bind("resize", function() { setLeftMargin(); });
}
}
function setLeftMargin() {
var newWindowWidth = $(window).width();
var mainWellWidth = $("#content").width();
// create an integer based left_offset number
var left_offset = parseInt((newWindowWidth - mainWellWidth)/2.0);
if (left_offset < 0) { left_offset = 0; }
$("#content").css("margin-left", left_offset);
}