2014-02-08 2 views
0

В my site, я в настоящее время с помощью overflow: hidden на #header, чтобы предотвратить переполнение фона, который принадлежит к одному из своих детей (#input с SVG displey ошибки взломан #backgroundfix).Предотвратить фон переполнения без переполнения: скрытый

Однако я обнаружил, что должен оставить значение переполнения до значения по умолчанию, поскольку оно мешает чему-то еще на моем сайте.

Как отключить или предотвратить переполнение фона #input без использования overflow? Надеемся, что это поддерживается широко.

HTML:

<header id="header" role="banner"> 
    <section id="logo"></section><section id="input"> 
     <form method="get"> 
      <input id="searchInput" type="text" name="search" autocomplete="off" autofocus x-webkit-speech value="Leonirdo" onfocus="this.value = this.value;" /> 
     </form> 
    </section> 
    <div id="backgroundFix"></div> 
</header> 
+0

Пожалуйста, не публикуйте ссылки на живые веб-сайты. Они будут утеряны или изменены в будущем. Опубликуйте соответствующий код здесь и разместите его на http://jsfiddle.net или http://jsbin.com –

+0

Можете ли вы обернуть дочерний элемент '# input' в новый div и установить вместо этого переполнение? Предполагая, что вы даете ему ту же ширину и высоту, что и '# header'. – badAdviceGuy

+0

@badAdviceGuy Это плохой совет? Я бы предпочел не менять html. Но я просто попробовал это, и нет, не могу. Это все еще мешает остальной части сайта. – gomangomango

ответ

2

Я думаю, вы должны избавиться от хака для плохих SVG отображать и исправлять SVG. Решение вопроса Background image tiles have gap between them when using SVG image. How to solve in Chrome? должно помочь вам в этом.

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

Избавиться от overflow, избавиться от #backgroundfix и использовать отремонтированный SVG. Тогда это должно сработать.

2

Избавьтесь от backgroundFix DIV и на другой с фоном добавить эти правила CSS

background-position: 2px; 
left: 20%; 
top: -200px; 
background-size: cover; 
+0

Я не могу удалить backgroundFix div. Он исправляет ошибку в фоне svg, когда он повторяется, когда область просмотра достаточно широка. – gomangomango

+3

@gomangomango Я думаю, что Дэйв это знает. Этот код также должен исправить. Исправление, которое вы использовали, действительно ... неуклюжие. Кстати, проблема, вероятно, должна быть исправлена ​​в самом SVG. http://stackoverflow.com/q/11201248/2157640 – Palec

+0

@Palec ах, ладно. Он работает, но я получаю эту странную белую вертикальную полосу слева. Вот изображение: http://i.imgur.com/x5OjtZn.png – gomangomango

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