Chrome абсолютное позиционирование - PullRequest
0 голосов
/ 26 февраля 2012

У меня проблема с абсолютным позиционированием в Chrome. Я прочитал все подобные вопросы в SO и не смог найти правильного решения.

Я создаю сайт, используя Headway Theme для Wordpress. На этом сайте у нас есть макет по центру сетки плюс фон полной ширины . Тема предоставила мне выбор фиксированной сетки, поэтому я должен использовать jQuery для полноэкранного фона.

Сайт, о котором идет речь: http://www.mochilao.syncmobile.com.br/

Что я сделал: Я использую jQuery для добавления элементов div на полную ширину и смещаю их так, чтобы оставалось = 0. Это хорошо работает с верхним и нижним колонтитулом.

Проблема: Кажется, в браузерах Webkit есть проблемы с абсолютным позиционированием. Таким образом, я должен был дать смещение для средних полей, чтобы оно могло работать правильно. Но я наткнулся на ошибку. Всякий раз, когда вы щелкаете по логотипу заголовка , чтобы вернуться домой или перезагрузить страницу, полноразмерный фоновый блок разрывается. Кажется, в этих случаях условное смещение не требуется. Но как я могу решить эту проблему?

Сценарий jQuery: http://www.mochilao.syncmobile.com.br//wp-content/themes/headway/custom.js

1 Ответ

1 голос
/ 26 февраля 2012

Первая мысль:

Разве вы не должны использовать ".each" для вызова функции:

$(".game").load(compose(".game", "yellow"));

, поскольку в классе "game" есть несколько элементов?Просто мысль.Кроме того, присоединение вашей функции к загрузке элемента кажется потенциальной проблемой, потому что вам нужна ширина окна , а не ширина элемента.Элемент будет загружен до загрузки всего окна.Попробуйте вместо этого использовать window.onload.(Вы получите флеш-контент без стилей, но это отдельная проблема.)

Но есть и другие проблемы с подключением: загрузите страницу шириной 1300 пикселей, затем растяните ее шире до 1500, и выВы увидите похожую ошибку в правой части как в Webkit, так и в FF10.Внизу есть и другие странные ошибки, в том числе в разделе "noticias".Возможно, проблема связана с событием onresize, которое jquery (в основном) нормализовало, но никто не идеален.

Хомбр, это МНОГО работы, чтобы обойти ограничение шаблона.Я думаю, что вы, возможно, ошибаетесь в первую очередь, и даже если вы можете заставить его работать, это очевидно зависит от js, что не нужно.Это действительно проблема CSS, а не проблема js.И даже тогда вы создаете сайт таким образом, чтобы он никогда не реагировал на узкие области просмотра, что, возможно, является плохой идеей.

Почему бы просто не использовать метод чистого CSS?Установите обертки на 100% ширины, без заполнения.Затем установите отступы на 100% ширины, с некоторым внутренним контейнером, который имеет максимальную ширину.Оставьте петли WP одинаковыми, просто оберните их в новые div, которые установлены в центр.Затем установите

background-size:cover

на фоновые изображения для каждого в стороне.Это не будет работать в древних браузерах, но сделает вас намного ближе.

ИЛИ ... просто установите сумасшедшие широкие фоновые изображения (достаточно большие, чтобы покрыть любую реалистическую ситуацию) на теле или #whitewrap?Или, если это слишком много для размышления, просто добавьте фиктивные дочерние элементы div в различные разделы, которые будут выталкиваться абсолютно за пределы каждой области, чтобы покрыть поля.А затем установите контейнер на переполнение: скрытый, чтобы вещи не торчали.Это некрасиво семантически, но более просто.Есть гораздо более простые способы решения этой проблемы с помощью CSS, которые не создают проблем с перекомпоновкой документа.Вы действительно никогда не будете писать js, которые соответствуют каждому отдельному браузеру css идиосинкразии!

...