Полноэкранный отзывчивый фоновый рисунок
Я очень новичок в Front-end development и Foundation.
Я пытаюсь получить <div class="main-header">
как полноэкранное изображение, которое быстро меняется.
Может ли кто-нибудь сказать мне, что я делаю неправильно? Он масштабируется правильно, но не показывает полное изображение. Я также хотел, чтобы <div class="large-6 large-offset-6 columns">
сидел над ним на мобильном устройстве - это возможно?
HTML:
<!-- MAIN HEADER -->
<div class="main-header">
<div class="row">
<div class="large-6 large-offset-6 columns">
<h1 class="logo">BleepBleeps</h1>
<h3>A family of little friends<br>that make parenting easier</h3>
</div> <!-- END large-6 large-offset-6 columns -->
</div><!-- END ROW -->
</div><!-- END MAIN-HEADER -->
CSS:
.main-header {
background-image: url(../img/bb-background2.png);
background-repeat: no-repeat;
background-position: center;
background-size: cover;
width: 100%;
height: 100%;
}
h1.logo {
text-indent: -9999px;
height:115px;
margin-top: 10%;
}
Ответы
Ответ 1
http://css-tricks.com/perfect-full-page-background-image/
//HTML
<img src="images/bg.jpg" id="bg" alt="">
//CSS
#bg {
position: fixed;
top: 0;
left: 0;
/* Preserve aspet ratio */
min-width: 100%;
min-height: 100%;
}
ИЛИ
img.bg {
/* Set rules to fill background */
min-height: 100%;
min-width: 1024px;
/* Set up proportionate scaling */
width: 100%;
height: auto;
/* Set up positioning */
position: fixed;
top: 0;
left: 0;
}
@media screen and (max-width: 1024px) { /* Specific to this particular image */
img.bg {
left: 50%;
margin-left: -512px; /* 50% */
}
}
ИЛИ
//HTML
<img src="images/bg.jpg" id="bg" alt="">
//CSS
#bg { position: fixed; top: 0; left: 0; }
.bgwidth { width: 100%; }
.bgheight { height: 100%; }
//jQuery
$(window).load(function() {
var theWindow = $(window),
$bg = $("#bg"),
aspectRatio = $bg.width() / $bg.height();
function resizeBg() {
if ( (theWindow.width() / theWindow.height()) < aspectRatio ) {
$bg
.removeClass()
.addClass('bgheight');
} else {
$bg
.removeClass()
.addClass('bgwidth');
}
}
theWindow.resize(resizeBg).trigger("resize");
});
Ответ 2
<style type="text/css">
html {
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
</style>
Ответ 3
Один намек на решение "background-size: cover", вы должны поместить его после определения "background", иначе это не сработает, например, это не сработает:
html, body {
height: 100%;
background-size: cover;
background:url("http://i.imgur.com/aZO5Kolb.jpg") no-repeat center center fixed;
}
http://jsfiddle.net/8XUjP/58/
Ответ 4
Я лично не рекомендую применять стиль в теге HTML, он может иметь последствия после какой-то частичной разработки.
поэтому я лично предлагаю применить свойство background-image к тегу body.
body{
width:100%;
height: 100%;
background-image: url("./images/bg.jpg");
background-position: center;
background-size: 100% 100%;
background-repeat: no-repeat;
}
Этот простой трюк решил мою проблему. это работает для большинства экранов больших/меньших размеров.
есть так много способов сделать это, я нашел это более простым с минимумом после эффектов
Ответ 5
У меня была такая же проблема с моим предыдущим сайтом EnGrip. Я пошел с этим вопросом. Но после нескольких испытаний, наконец, это сработало для меня:
background-size: cover;
background-repeat: no-repeat;
position: fixed;
background-attachment: scroll;
background-position: 50% 50%;
top: 0;
right: 0;
bottom: 0;
left: 0;
content: "";
z-index: 0;
чистое решение CSS. Здесь у меня нет никакого JS/JQuery. Даже новичок в этом развитии пользовательского интерфейса. Просто подумал, что я поделился бы рабочим решением, так как вчера прочитал эту тему.
Ответ 6
Попробуйте следующее:
<img src="images/background.jpg"
style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:-5000;">
http://thewebthought.blogspot.com/2010/10/css-making-background-image-fit-any.html
Ответ 7
Отметьте этот однострочный плагин, который быстро меняет фоновое изображение.
Все, что вам нужно сделать, это:
1. Включите библиотеку:
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery-backstretch/2.0.4/jquery.backstretch.min.js"></script>
2. Вызвать метод:
$.backstretch("http://dl.dropbox.com/u/515046/www/garfield-interior.jpg");
Я использовал его для простого сайта "под строительство", который у меня был, и он отлично работал.
Ответ 8
для полноэкранного отзывчивого фонового изображения
установить css height (высота: 100vh)
пример:
.main-header {
background-image: url(../img/bb-background2.png);
background-repeat: no-repeat;
background-position: center;
background-size: cover;
width: 100%;
height:100vh; /* responsive height */
}
Ответ 9
Я сделал эту функцию javascript: она фиксирует ваше фоновое изображение на ваш размер экрана в базе с самым значительным размером (ширина od height) без изменения соотношения сторон изображения.
<script language="Javascript">
function FixBackgroundToScreen()
{
bgImg = new Image();
bgImg.src = document.body.background;
if ((bgImg.height / window.innerHeight) < (bgImg.width / window.innerWidth))
document.body.style.backgroundSize = "auto 100%";
else
document.body.style.backgroundSize = "100% auto";
};
</script>
Эта функция - единственное, что вам нужно. Он должен вызываться с событием window.onresize и событием body.onload. Изображение должно быть фоном-повторением: no-repeat; background-attachment: fixed;
<script language="Javascript">
window.onresize=function(){FixBackgroundToScreen();};
</script>
<body onload="FixBackgroundToScreen();">
Вы можете увидеть функцию на моем сайте www.andreamarulla.it
Извините за мой английский...
Андреа; -)
Ответ 10
Простое полноэкранное и центрированное изображение
https://jsfiddle.net/maestro888/3a9Lrmho
jQuery(function($) {
function resizeImage() {
$('.img-fullscreen').each(function () {
var $imgWrp = $(this);
$('img', this).each(function () {
var imgW = $(this)[0].width,
imgH = $(this)[0].height;
$(this).removeClass();
$imgWrp.css({
width: $(window).width(),
height: $(window).height()
});
imgW / imgH < $(window).width() / $(window).height() ?
$(this).addClass('full-width') : $(this).addClass('full-height');
});
});
}
window.onload = function () {
resizeImage();
};
window.onresize = function () {
setTimeout(resizeImage, 300);
};
resizeImage();
});
/*
* Hide scrollbars
*/
#wrapper {
overflow: hidden;
}
/*
* Basic styles
*/
.img-fullscreen {
position: relative;
overflow: hidden;
}
.img-fullscreen img {
vertical-align: middle;
position: absolute;
display: table;
margin: auto;
height: auto;
width: auto;
bottom: -100%;
right: -100%;
left: -100%;
top: -100%;
}
.img-fullscreen .full-width {
width: 100%;
}
.img-fullscreen .full-height {
height: 100%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="wrapper">
<div class="img-fullscreen">
<img src="https://static.pexels.com/photos/33688/delicate-arch-night-stars-landscape.jpg" alt=""/>
</div>
</div>
Ответ 11
Вы также можете сделать секцию полного экрана без использования JavaScript, чистой css на основе реагирующего полноэкранного баннерного раздела, используя высоту: 100vh; в главном div div, здесь есть живой пример для этого
#bannersection {
position: relative;
display: table;
width: 100%;
background: rgba(99,214,250,1);
height: 100vh;
}
https://www.htmllion.com/fullscreen-header-banner-section.html
Ответ 12
For the full-screen responsive background image cover
<div class="full-screen">
</div>
CSS
.full-screen{
background-image: url("img_girl.jpg");
height: 100%;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
Ответ 13
Используя этот код ниже:
.classname{
background-image: url(images/paper.jpg);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
Надеюсь, что это работает. Спасибо
Ответ 14
Я бы сказал, в вашем файле макета дать
<div id="background"></div>
а затем в вашем CSS сделать
#background {
position: fixed;
top: 50%;
left: 50%;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
z-index: -100;
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
background: image-url('background.png') no-repeat;
background-size: cover;
}
И убедитесь, что фоновое изображение есть в вашем приложении /assets/images, а также измените
background: image-url('background.png') no-repeat;
'background.png' на ваш собственный фоновый рисунок.