Пустое пространство появляется на правой стороне страницы, когда фоновое изображение должно расширяться на всю длину страницы

На наших фоновых изображениях веб-страницы возникают проблемы в FireFox, а также в Safari для iOS на iPad /iPhone. В правой части страницы отображается пробел.

Фоновые изображения хорошо распространяются в других браузерах, но у нас возникают трудности с расширением всей длины браузера в этих браузерах.

Взгляните на наш сайт на FireFox, чтобы понять, что я имею в виду.

12 ответов

Я добавил:

html,body
{
    width: 100%;
    height: 100%;
    margin: 0px;
    padding: 0px;
    overflow-x: hidden; 
}

в ваш CSS в самом верху над другими классами, и это, казалось, решило вашу проблему.

Ваш обновленный файл.css доступен здесь

Отладка вашего CSS для Ghost CSS Elements.

Используйте эту закладку для отладки вашего CSS: http://wernull.com/2013/04/debug-ghost-css-elements-causing-unwanted-scrolling/

Или добавьте CSS непосредственно:

* {
  background: #000 !important;
  color: #0f0 !important;
  outline: solid #f00 1px !important;
}

В моем случае проблема с кнопкой "Мне нравится" на Facebook.

Изучив некоторые полезные стратегии, представленные здесь, я обнаружил, что мне нужно только добавить специфичный для iOS CSS (я поместил его внизу моего основного листа CSS). Похоже, что для меня ответом было скрытие overflow-x. Я предполагаю, что указание ширины в 100% помогает в том случае, если мой контент расширяется. Следует отметить, что у меня была эта проблема только в iOS. Если он также есть в Firefox, то, вероятно, следует использовать только html и body, так как @media специально нацелен на мобильные устройства.

@media
only screen and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (-o-min-device-pixel-ratio: 3/2),
only screen and (min--moz-device-pixel-ratio: 1.5),
only screen and (min-device-pixel-ratio: 1.5){

  html,
  body{
    width:100%;
    overflow-x:hidden;
  }

}

Пожалуйста, помогите мне, если это кому-то кажется неправильным:)

Это довольно старый вопрос, но я решил добавить свои 2 цента. Я пробовал вышеуказанные решения, в том числе ghost css, который я обязательно сохраню для будущего использования. Но ничего из этого не сработало в моей ситуации. Вот как я исправил свою проблему. Надеюсь, это поможет кому-то еще.

Откройте инспектор (или по вашему желанию) и, начиная с первого div в теге body, добавьте display: none; только к этому элементу. Если полоса прокрутки исчезает, вы знаете, что этот элемент содержит элемент, который вызывает проблему. Затем удалите первое правило CSS и спуститесь на один уровень вниз в содержащий элемент. Добавьте CSS к этому элементу div, и если полоса прокрутки исчезнет, ​​вы знаете, что этот элемент либо вызывает, либо содержит нарушающий элемент. Если добавление CSS ничего не делает, вы знаете, что это не тот div, который вызвал проблему, и либо другой div в контейнере вызывает его, либо сам контейнер вызывает его.

Это может быть слишком много времени для некоторых. К счастью для меня, моя проблема была в заголовке, но я могу представить, что это займет немного времени, если ваша проблема, скажем, в нижнем колонтитуле или что-то в этом роде.

overflow-x: hidden; работает идеально для меня.

Проблема в файле:

style.css - строка 721

#sub_footer {
    background: url("../images/exterior/sub_footer.png") repeat-x;
    background: -moz-linear-gradient(0% 100% 90deg,#102c40, #091925);
    background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#091925), to(#102c40));
    -moz-box-shadow: 3px 3px 4px #999999;
    -webkit-box-shadow: 3px 3px 4px #999999;
    box-shadow: 3px 3px 4px #999999;
    padding-top:10px;
    font-size:9px;
    min-height:40px;
}

удалить строки:

-moz-box-shadow: 3px 3px 4px #999999;
-webkit-box-shadow: 3px 3px 4px #999999;
box-shadow: 3px 3px 4px #999999; 

Это в основном дает теневой градиент только для нижнего колонтитула. В Firefox это первая строка, которая вызывает проблему.

Этот вопрос некоторое время болтался, но ни одно из исправлений, которые я смог найти, не сработало для меня (с той же проблемой с ipad), но мне удалось найти собственное решение, которое должно работать для большинства людей, которых я представляю.

Вот мой код:

html {
   background: url("../images/blahblah.jpg") repeat-y;
   min-width: 100%;
   background-size: contain;
}

Наслаждайтесь!

Видимо (-o-min-device-pixel-ratio: 3/2) вызывает проблемы. На моем испытательном участке это вызывало обрезание правой стороны. Я нашел обходной путь на github, который работает на данный момент. Использование (-o-min-device-pixel-ratio: ~"3/2"), кажется, работает нормально.

Я вижу, что на вопрос был дан ответ по общему стандарту, но когда я посмотрел на ваш сайт, то заметил, что все еще есть горизонтальная полоса прокрутки. Я также заметил причину этого: вы использовали код:

.homepageconference .container {
padding-left: 12%;
}

который используется вместе с кодом, утверждающим, что элемент имеет ширину 100%, в результате чего элемент имеет общую ширину 112% размера экрана. Чтобы это исправить, либо удалите отступы, замените отступы с полем 12% для того же эффекта или измените ширину (или максимальную ширину) элемента на 88%. Это происходит в main.css в строке 343. Надеюсь, это поможет!

У меня также была та же проблема ( фон тела веб-сайта отображает правый белый край в iPhone Safari) и обнаружил, что добавление фонового изображения в <html> тег исправил проблему.

До

body {background:url('images/back.jpg');}

После

html, body {background:url('images/back.jpg');}

У меня была такая же проблема, поэтому попробовал несколько вещей. Один из них, похоже, сработал - убрав ширину и добавив float к тегу body.

Может не работать для всех экземпляров, но в сценарии, который у меня недавно был, скрытие переполнения элементов содержимого было бесполезным...

Я чувствовал белую линию справа на iPad и только в горизонтальном положении. Я использовал div с фиксированной позицией с фоном шириной 960 пикселей и z-индексом -999. Этот конкретный div отображается только на iPad из-за медиа-запроса. Затем содержимое помещалось в конверт div шириной 960 пикселей. Ответы, представленные на этой странице, не помогли в моем случае. Чтобы исправить проблему с белой полосой, я изменил ширину оболочки содержимого на 958 пикселей. Вуаля. Нет больше белой правой белой полосы на iPad в горизонтальном положении.

Другие вопросы по тегам