2014-01-22 4 views
0

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

jsFiddle DEMO

<div id="wrapper"> 
<div id="header"> 
    <div id="logo"> 
     <img src="images/logo.png"> 
    </div> 
    <!--end div logo--> 
    <div id="rectangle"><a id="show" href="#"><img src="images/rectangle.png"></a> 
    </div> 
</div> 
<!--end div header--> 
<div class="nav">Hello!</div> 
+0

Почему у вас есть логотип и прямоугольник в абсолютном положении? Заголовок имеет ширину: 100%, и она имеет отступы, поэтому ее ширина составляет 100% + 10 пикселей. Уменьшите его ширину или добавьте размер коробки: border-box – Naele

+0

где изображение, чтобы щелкнуть в вашей скрипке ........... !!!!!! ???? – NoobEditor

ответ

-1

Удалить набивка из #header

#header { 
/*padding:5px;*/ 
background:#2B3990; 
height:40px; 
width:100%; 
position:relative; 
border-bottom:1px solid #ec8123 
} 

fiddle

+0

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

+0

видели мою скрипку и решили проблему. – Asif

+0

Нет, эта проблема все еще существует на вашей скрипке. –

0

Fixed. Проблема, с которой вы столкнулись, заключается в том, что заполнение не только помещает пространство между элементом и его дочерними элементами, но и в большинстве браузеров оно также увеличивает размер элемента на каждой стороне. В результате элемент #header имеет ширину 100% и 5px отступов с каждой стороны, что делает его 100% + 10px широким, как сказал один из комментариев.

Чтобы устранить эту проблему, сохранив при этом 5px пространства между границей #header и любыми дочерними элементами, вы можете разместить оболочку отображения блока (div) непосредственно внутри #header, охватывая все его потомки и применяя 5px отступов.

JSFiddle: http://jsfiddle.net/v7SZq/3/

HTML:

<div id="wrapper"> 
    <div id="header"> 
     <div style="padding:5px;"> 
      <div id="logo"> 
       <img src="images/logo.png"> 
      </div> 
      <!--end div logo--> 
      <div id="rectangle"><a id="show" href="#"><img src="images/rectangle.png"></a> 
      </div> 
     </div> 
    </div> 
    <!--end div header--> 
<div class="nav">Hello!</div> 

CSS:

html, body { 
    margin: 0; 
    padding: 0; 
    border: 0; 
} 
#header { 
    background:#2B3990; 
    height:40px; 
    width:100%; 
    position:relative; 
    border-bottom:1px solid #ec8123 
} 
#logo { 
    float:left; 
    vertical-align:middle; 
    position:absolute; 
    top:6px; 
} 
#rectangle { 
    vertical-align:middle; 
    height:; 
    position:absolute; 
    left:85%; 
    top:13px; 
} 
.nav { 
    width:85%; 
    float:right; 
    text-align:right; 
    background:#000; 
} 

Javascript:

$(document).ready(function() { 

    $(".nav").hide(); 
    $("#show").show(); 

    $('#show').click(function() { 
     $(".nav").slideToggle(); 
    }); 

}); 

Наконец, быстрое обновление на том, как работают отступы в большинстве браузеров:

Пространства вы видите в «Padding» зоне в этом изображении ДОБАВЛЕНИЯ к размеру div, а не только смещение дочерних элементов.

Смежные вопросы