[英]Full-screen responsive background image
我对前端开发和基础很陌生。
我试图让<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%;
}
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");
});
<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>
用于全屏响应式背景图片
设置css高度(高度: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 */
}
关于“background-size:cover”解决方案的一个提示,你必须把它放在“background”定义之后,否则它将不起作用,例如这将不起作用:
html, body {
height: 100%;
background-size: cover;
background:url("http://i.imgur.com/aZO5Kolb.jpg") no-repeat center center fixed;
}
我个人不建议在 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;
}
这个简单的技巧解决了我的问题。 这适用于大多数较大/较小的屏幕。
有很多方法可以做到,我发现这种方法更简单,后遗症最少
我的预发布网站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 修复。 即使是这个 UI 开发的新手。 只是想我会分享一个可行的解决方案,因为我昨天阅读了这个线程。
尝试这个:
<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
您还可以在不使用 JavaScript 的情况下制作全屏横幅部分,基于纯 css 的响应式全屏横幅部分,使用高度:100vh; 在横幅主 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
我已经完成了这个 javascript 功能:它在最重要的维度(宽度和高度)将您的背景图像固定到您的屏幕尺寸,而不会改变图像纵横比。
<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 事件调用它。 图片必须是 background-repeat: no-repeat; 背景附件:固定;
<script language="Javascript">
window.onresize=function(){FixBackgroundToScreen();};
</script>
<body onload="FixBackgroundToScreen();">
您可以在我的网站www.andreamarulla.it 中查看该功能
对不起我的英语......安德里亚;-)
简单的全屏和居中图像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>
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;
}
我会说,在你的布局文件中给出一个
<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;
}
并确保在您的应用程序/资产/图像中有背景图像,并更改
background: image-url('background.png') no-repeat;
'background.png' 到你自己的背景图片。
这对我有用,所以发布这个。
.my-container {
position: relative;
background: #696969;
overflow: hidden;
}
.my-container:before {
content: ' ';
display: block;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0.6;
background-image: url('https://images.pexels.com/photos/1084542/pexels-photo-1084542.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=750&w=1260');
background-repeat: no-repeat;
background-position: 50% 0;
-ms-background-size: cover;
-o-background-size: cover;
-moz-background-size: cover;
-webkit-background-size: cover;
background-size: cover;
}
通过使用下面的代码:
.classname{
background-image: url(images/paper.jpg);
background-position: center;
background-size: cover;
background-repeat: no-repeat;
}
希望它有效。 谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.