Білий пробіл відображається на правій частині сторінки, коли фонове зображення повинно подовжувати повну довжину сторінки [закрито]


110

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

Фонові зображення прекрасно поширюються на інші веб-переглядачі, але у нас виникають труднощі не розширювати повну довжину веб-переглядача в цих браузерах.

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


Якщо ви використовуєте такий кадр, як завантажувальний засіб чи фундамент, перевірте, чи стовпець зараз є першим дочірнім тілом, але вкладений в інший дів, який має якусь підкладку (малий-12 фе).
— Lightningoul

Ви вирішили це @Dave?
— gumuruh

Божевільний, чи не так. Через 6 років, і iOS Safari все ще проявляє цю проблему. Я спробував численні рішення CSS, але зрештою довелося вдатися до використання jQuery. stackoverflow.com/a/45009357/391605
— Майк Гледхілл

Відповіді:


266

Я додав:

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

у ваш CSS в самому верху над іншими класами, і, здавалося, виправити свою проблему.

Ваш оновлений .css файл доступний тут


4
дивовижно, що якраз виправила помилку для мене, яка мене турбує якийсь час!
— переглянуто

22
У мене була проблема з прокруткою на ifari safari з цим кодом, це стало дуже повільно. Зрештою, я виявив, що це поєднання висоти: 100% та переливу-х: приховано, тому я прибрав висоту: 100%, і це працює набагато краще.
— Пол Мейсон

Завдяки цьому спрацювало як шарм. Я завжди цікавився, як позбутися майже нескінченної смуги прокрутки. Не впевнений, чому це не було позначено як відповідь.
— isurf тому, що

5
Я виявив, що клас "рядок" bootstrap дає {margin-right: -15px}, що спричиняє це на моїй сторінці.
— JosephK

2
До точки зору @ JosephK, ця проблема часто виникає при неправильному використанні контейнерів, рядків та стовпців Bootstrap, які використовують набивання та негативні поля для ідеального компенсації один одного, але ТІЛЬКИ, КОЛИ ВИКОРИСТОВАНІ належним чином в унісон. Інакше він ламається! На мій досвід, це одна з найпоширеніших причин появи білого простору праворуч. Для BRILLIANT візуальне пояснення контейнера, рядка, стовпця для Bootstrap, включаючи обговорення цієї та інших проблем, читайте це (ні, я цього не писав): helloerik.com/…
— james

133

Налагоджуйте свій CSS для елементів Ghost CSS.

Використовуйте цю закладку для налагодження CSS: https://blog.wernull.com/2013/04/debug-ghost-css-elements-causing-unwanted-scrolling/

Або додайте CSS безпосередньо самостійно:

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

У моєму випадку проблема «Facebook Like Button» викликала проблему.


1
це дійсно було в нагоді
— Джосан Ірачета

6
Блискуче рішення! Це допоможе вам знайти корінь проблеми та правильно її виправити, і все, що потрібно, - це кілька рядків css.
— опдб

3
Це має бути прийнятою відповіддю ІМО. Моя обставина, що більшість людей використовували 100 Вт як ширину чогось, і отримали цю помилку в результаті. Просто приховування переливу є недостатньо оптимальним рішенням.
— Лука

Це вражаюче, витратили 2 години на той проклятий білий простір, це вирішило це.
— Карлос Росо

Нічого собі, витратили багато годин і знайшли винуватця з лише кількома рядками коду. Спасибі товариш :)
— Khpalwalk

55

Дослідивши деякі корисні стратегії, що тут представлені, я виявив, що мені потрібно лише додати специфічний CSS для iOS (я помістив його в нижній частині мого основного css аркуша.) Схоже, приховування переповнення-x було відповіддю для мене. Я припускаю, що визначення ширини на 100% допомагає в тому випадку, якщо мій вміст виходить ширшим. Слід зазначити, що у мене виникло це питання лише в iOS. Якщо він також є у Firefox, просто html та body 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;
  }

}

Будь ласка, хіп мені, якщо це комусь здається неправильним :)


5
Це єдине, що вирішило мою проблему
— JasonDavis

1
Спасибі - найкраще виправлення для мене. Досить
— ненав'язливий

Це вирішує проблему і має сенс для мобільного білого простору
— Роб Глісон

Після застосування, прокрутка на Safari iphone6s стає млявою. Чи не вистачає я додаткової властивості для мобільного Safari, щоб він працював безперебійно?
— Ерік Рибалкін

найкраща відповідь для мене !!
— Юсеф Будая

28

Це досить старе питання, але я подумав, що я додам свої 2 копійки. Я спробував вищевказані рішення, включаючи css ghost, які я, безумовно, заощаджую для подальшого використання. Але жодне з них не працювало в моїй ситуації. Ось як я вирішив свою проблему. Сподіваємось, це допоможе комусь іншому.

Відкрийте інспектор (або все, що завгодно) та, починаючи з першого діла в тезі тіла, додайте display: none;до цього елемента. Якщо смуга прокрутки зникає, ви знаєте, що елемент містить елемент, який викликає проблему. Потім видаліть перше правило css і опустіться на один рівень в елемент, що містить. Додайте css до цього div, і якщо смуга прокрутки відійде, ви знаєте, що елемент або викликає, або містить елемент, що порушує. Якщо додавання CSS нічого не робить, ви знаєте, що причину проблеми викликав не той div, а інший div в контейнері викликає його, або сам контейнер його викликає.

Для деяких це може бути занадто багато часу. Пощастило, моє питання було в заголовку, але я можу уявити, що це займе трохи часу, якщо ваше питання було сказано, у нижньому колонтитулі чи щось.


Цей метод допоміг мені знайти помилку
— Білл

Так, або ви можете спуститися до дому, приховуючи один за одним
— діви

Це дійсно єдиний спосіб успішно виправити кореневу проблему, коли у вас є такі дивні елементи, як, наприклад, з height: 0або height: 1. У моєму випадку, я виявив , що причина була «невидимий» клас мандрівного в Drupal 7 ядра: drupal.org/node/2664214
— geerlingguy


5

Проблема полягає у файлі:

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 це проблема, яка викликає перший рядок.



2

Мабуть, (-o-min-співвідношення пристрою-пікселів: 3/2) викликає проблеми. На моєму тестовому сайті це спричинило відсікання правої сторони. Я знайшов вирішення проблеми на Github, яка працює зараз. Використання (-o-min-device-pixel ratio: ~ "3/2"), здається, працює нормально.


2

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

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

який використовується поряд із кодом, який стверджує, що елемент має ширину 100%, викликаючи елемент загальною шириною 112% розміру екрана. Щоб виправити це, або видаліть прокладку, замініть прокладку з запасом 12% для того ж ефекту або змініть ширину (або максимальну ширину) елемента на 88%. Це відбувається у main.css у рядку 343. Сподіваюся, це допомагає!


Або встановіть box-sizingвластивість на border-box.
— Бенпай

2

У мене було те саме питання, тому спробував кілька речей. Одне з яких, здавалося, працює для мене - видалення ширини та додавання поплавця до тегу body.

Може працювати не для всіх примірників, але в сценарії, який я нещодавно мав, приховування переповнення елементів вмісту було бездоганним ...


Мені довелося встановити html, тіло на ширину: 0, щоб позбутися від привидного елемента вгорі на Firefox.
— Гаравани

1

Я відчував білу лінію праворуч на своєму iPad, а також у горизонтальному положенні. Я використовував div з фіксованою позицією з фоном, встановленим у ширину 960px та z-індексом -999. Цей конкретний div відображається лише на iPad через медіа-запит. Потім вміст помістили в обгортку з розширенням 960 пікселів. Відповіді на цій сторінці не допомогли в моєму випадку. Щоб виправити проблему з білою смугою, я змінив ширину обгортки вмісту на 958 пікс. Войла. Більше не біла права біла смуга на iPad у горизонтальному положенні.


1

Це питання довгий час зависало, але жоден з виправлень, які я міг знайти, не працював на мене (маючи ту ж проблему, що і в ipad), але мені вдалося вирішити власне рішення, яке повинно працювати для більшості людей, які я собі уявляю.

Ось мій код:

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.