2015-10-16 2 views
3

Как устранить пробелы при изменении размера браузера, если я использую background-size:contain;?background-size: содержать слишком много пробелов при изменении размера браузера

Пробелы между изображением и текстом слишком велики при меньших размерах браузера. сайт: http://16debut.com/test.html

CSS является:

body { 
    margin:0px 0px; 
} 

#hero { 
    background-clip: content-box; 
    background-image: url("imgtop.png"); 
    background-size: contain; 
    background-repeat: no-repeat; 
    position: relative; 
    height: 235vh; 
} 

#content { 
    padding: 100px 50px; 
    text-align: center; 
    width: 80%; 
    margin: 0px auto; 
} 

#content h2 { 
    margin: 0px 0px 30px 0px; 
} 

#footer { 
    padding: 30px 0px; 
    text-align: center; 
    background: #ddd; 
} 
+0

Я думаю, что крышка реагирует, но есть способ еще облако без обрезания? По этой причине я попытался скомпоновать, но обложка устраняет проблему с пробелами. Может быть, что-то еще, что работает помимо обложки или содержать? – AmyCarter

+0

или есть что-то, что я могу сделать, чтобы содержать, чтобы остановить проблему с пробелами, например, как обложка останавливает ее? – AmyCarter

ответ

2

jsbin demo

Вы хотите пойти полностью отзывчивым, но сохранить белые облака на дне?

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

enter image description here

  • Вырежьте белые нижние облака сохранить как отдельный .png изображение. Используйте в качестве первого фонового изображения.
  • (опционально) Сохраните снова ваше изображение большего размера, просто без белых облаков. Используйте это изображение в качестве второго значения фонового изображения.

Сейчас в CSS:

  • установить облака background-position: bottom и 100% размера ("ширины")
  • Установите большее изображение в центре (50%) положение и cover

CSS

html, body{height:100%; margin:0;} 

#hero{ 
    position:relative; 
    height:130vh; /* USE THE RIGHT RATIO since the image Logo is a bit up*/ 
    background: no-repeat 
    url(http://i.stack.imgur.com/eWFn6.png) bottom/100%, /* BOTTOM CLOUDS OVERLAY */ 
    url(http://i.stack.imgur.com/IVgpV.png) 50%/cover; /* BIG IMAGE */ 
} 

HTML

<div id="hero"></div> 

<div class="other"> 
    <h1>Other Divs</h1> 
    <p>bla bla</p> 
</div> 

Кажется, что Safari является довольно глупы браузер (они даже убрали поддержку для окон с 2012 года ... Amazing). Вот jsBin example и CSS:

#hero{ 
    position:relative; 
    height: 900px; 
    height: 100vh; 
    background: url(http://i.stack.imgur.com/eWFn6.png) no-repeat bottom, url(http://i.stack.imgur.com/IVgpV.png) 50%; 
    background-size: 100%, cover; 
} 
+0

'cover' не реагирует. Когда вы меняете размер фона браузера, тот же размер – Chris

+0

@ Крис вы * думаете * 'cover' не реагирует, или вы ** знаете ** он не реагирует –

+0

' cover' будет стараться как можно больше разместить пространство, contains' будет пытаться разместить как можно больше места как по ширине, так и по высоте. http://www.w3schools.com/cssref/css3_pr_background-size.asp Попробуйте по ссылке OP и убедитесь, что обложка не решила проблему. – Chris