Браузер рендеринга правого поля iPhone / iPad / webkit - PullRequest
6 голосов
/ 01 марта 2011

У меня есть фрагмент HTML ниже, который прекрасно отображается во всех браузерах. Однако в webkit на iphone и ipad, когда я зажимаю страницу (чтобы она стала меньше), я вижу черную рамку, которая является цветом фона тела, просвечивающего только на правом краю. Это происходит только тогда, когда я указываю ширину .headerpic div. Так как это единственное место в документе, в котором я указываю ширину, мне было интересно, почему он не останавливается до полного рендеринга до правого края (поскольку это теоретически самая широкая часть документа?).

Я прикрепил фото того, как оно выглядит с моего ipad.

<!doctype html>
<html>

   <head>

    <style>
      body {background-color:#000;color:#231f20;margin:0;}
      #wrapper {background-color:#fff;min-height:1000px;}
      #header .headerpic {height:102px;padding-top:80px;margin:0 auto;width:986px;}
      #footer {color:#fff;}
    </style>
  </head>

  <body>

    <div id="wrapper">
      <div id="header">
        <div class="headerpic">
        </div>
      </div>
    </div>

    <div id="footer">
    </div>

  </body>
</html>

Photo Of problem

Ответы [ 5 ]

8 голосов
/ 22 февраля 2013

В моем случае используется:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

Вместо:

<meta name="viewport" content="width=device-width">

Сделал трюк!

2 голосов
/ 01 марта 2011

Это проиллюстрирует вашу проблему немного яснее: http://jsbin.com/ilenu5/5

Что я сделал:

  1. Я увеличил ширину #headerpic до 1286px
  2. Я добавил цвет фона #headerpic, который красный

Итак, ваша настоящая проблема: переполнение произошло

Почему? потому что вы не устанавливаете viewport (width=device-width) и минимальную физическую ширину (в пикселях, сантиметрах или см) равную body, поэтому ваша ширина body по умолчанию составляет 980px и наследуется #wrapper - так что ваш 986px #headerpic переполняет #wrapper и делает ваш черный фон. Поскольку ширина области переполнения мала (986-980 = 6 пикселей), вы видите черную линию.

1 голос
/ 01 марта 2011

Создание #wrapper position:absolute решает проблему.

0 голосов
/ 12 марта 2016

Применение

overflow-x:hidden;

чтобы один из моих дивов сделал это

Даем @starkadh за вдохновение.

0 голосов
/ 29 сентября 2014

В моем случае это:

<meta name="viewport" content="width=device-width, initial-scale=1.0">

И:

html, body {min-width:980px; overflow-x: hidden;}

Исправляет проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...