Я использую свойство background-size
для полного изображения по ширине и высоте, но у меня проблемы с его полным покрытием в Chrome на планшете Nexus7 в портретном режиме. Он охватывает только ширину, а не высоту, то есть ниже 200px
белого пространства ниже нее. Однако, когда я просматриваю сайт на рабочем столе Chrome (или что-то еще) и на вертикальном мониторе, чтобы имитировать портретные размеры, он не вызывает проблем.
У кого-нибудь есть решение?
CSS:
html { background: url(/images/post_bg.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; -ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/post_bg.jpg', sizingMethod='scale')"; }
Портретный снимок экрана:
Я считаю, что вы можете исправить это, указав высоту тегов html и body в CSS, например:
html{ height:100%; min-height:100%; } body{ min-height:100%; }
надеюсь это поможет
Я знаю, что прошло много времени с тех пор, как был задан вопрос, но я только что нашел ответ, который я думаю. Для меня фоновый размер: обложка работает в Android Browser и Android Chrome, если вы опускаете «фиксированный» в справочной инструкции CSS. После некоторых тестов он работает для меня, делая изображение фон DIV:
#yourDivSelectorHere { width: 100%; height: 100%; position: fixed; top: 0; left: 0; z-index: 0; background-image: url(/img/backgrounds/1.jpg) ; background-repeat:no-repeat; background-position: center center; /* background-attachment: fixed; removed for Android */ -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover;
}
DIV сам по себе фиксирован в позиции (в отличие от фонового изображения), составляет 100% ширины и высоты и размещается в задней части всего. Это немного лишнее усилие, а не просто добавление фонового изображения в HTML или BODY, но для меня это работает во всех браузерах, которые я тестировал до сих пор (FF, Chrome, IE8, IE9, Safari), на iPad2 и Android Chrome и Android-браузер.
Я предоставлю решение, которое я нашел, если кто-то столкнется с этим в будущем. Вместо использования фонового изображения я использовал <img>
:
HTML:
<img id="full_bg" src="/images/post_bg.jpg" alt="Post your project on CustomMade">
CSS:
#full_bg { height: auto; left: 0; min-height: 100%; min-width: 1024px; position: fixed; top: 0; width: 100%; } @media screen and (max-width: 1024px) { #full_bg { left: 50%; margin-left: -512px; } }
Это работало кросс-браузер и на мобильных устройствах. Я нашел решение здесь .
Ну, я могу придумать другое решение: я добавил его к телу, и все, что вам нужно позаботиться, это то, что привязка background: fixed – последнее правило:
работает:
body { height:100%; width:100%; background-size:cover; background-repeat:no-repeat; background-position: center center; background-attachment:fixed; }
Не работает:
body { height:100%; width:100%; background-size:cover; background-attachment:fixed; background-repeat:no-repeat; background-position: center center; }
Это действительно трогательно, что телефонные аппараты, в общем, немного багги …
Используйте HTML-фон вместо тела и дайте высоту: 100%
html { height:100%; background: url(bg.jpg) no-repeat center center fixed; -webkit-background-size: cover; -moz-background-size: cover; -o-background-size: cover; background-size: cover; }
Я обнаружил еще одно решение, использующее бит jquery stuff. Исправление основано на предположении, что мы используем изображение в ландшафтном измерении / пропорции для фона.
Step1: сравните «высоту окна» и «высоту содержимого страницы»,
Step2: если «высота окна» меньше, чем «высота содержимого страницы»,
Step3: применить это к тегу body
HTML {
<body style="background-size: auto 'page content height'; background-attachment: scroll;">
}
скрипт
var wHeight = $(window).height(); var bodyHeight = $('page-content-element').height(); if(wHeight < bodyHeight){ $('body').attr('style', 'background-size: auto '+ (bodyHeight*1.1) +'px;background-attachment: scroll;'); } else{ $('body').removeAttr('style'); }
Назовите это на загрузку страницы и измените размер окна
Это решение работало и для меня, и для Android
html{ height:100%; min-height:100%; } body{ min-height:100%; }