我如何使CSS背景的一部分完美地适合浏览器
How do i make part of a CSS background fit perfectly to a browser
我是一个新手,所以我真的不知道如何描述它,但这里有一个例子:网站
正如你所看到的,在网站顶部的背景图像在高度和宽度上完美地适合任何浏览器的空间,无论分辨率如何。当您向下滚动页面时,它会保持相同的样式,其中特定的背景颜色非常适合浏览器的空间。我在笔记本电脑和手机上进行了测试,每次都非常合适。我如何做到这一点?它是可行的纯粹从CSS或我必须涉及JavaScript/Jquery等?我看过很多网站使用这种特定的风格,我想知道它是如何完成的。
我不是特别要求代码,只是一个答案,说明它是什么,我应该搜索。代码是值得赞赏的。
您可以使用浏览器的开发人员工具来查看该站点如何创建效果。它是CSS和JavaScript的结合。
CSS:.homepage-intro.homepage {
background: url("//d1sva73gxwx496.cloudfront.net/images/homepage/bg-intro-2039a477.jpg") no-repeat;
background-size: cover;
}
JavaScript然后显式设置<div>
的高度以匹配浏览器窗口
有不同的方法。如果你查看你链接的网站,他们正在使用背景掩护来完成这一点。background-size: cover;
填充当前div的宽度和高度
请参阅本文获取更多信息:https://css-tricks.com/perfect-full-page-background-image/
该站点使用JavaScript设置具有该背景图像的<div>
的高度。结合background-size: cover;
,应该可以。
如果你想确保div的底部与浏览器窗口的底部重合,你可以通过CSS来实现。
CSSdiv {
height:100vh;
}
或
body, html {
height: 100%;
}
div {
height: 100%;
}
您将需要CSS和jQuery来有效地做到这一点(并且还允许跨浏览器支持)。
CSS//Add this to your background image's CSS.
background-size: cover;
background-repeat: no-repeat;
position: relative;
background-position: center;
height: 100%;
jQuery var viewportHeight = jQuery(window).height();
//wrote an if statement to allow for a minimum height. You can remove this if statement if you don't need it.
if(viewportHeight>500){
jQuery('page-wrapper').height(viewportHeight);
}else{
jQuery('page-wrapper').height(500);
}
要解决这个问题,需要完成两项任务:
-
使背景图像始终调整为容器的大小。正如其他人已经说过的那样,这是通过将
background-size: cover;
赋值给放置图像的容器元素作为background-image
来实现的。添加background-position: center;
可以在低分辨率设备和纵向方向上获得更好的效果。 -
确保容器元素在两个方向上伸展100%的视口宽度。块级元素默认抓取100%的可用宽度,但你需要设置一个明确的高度来匹配所需的布局。这可以通过对容器元素应用
height: 100vh;
(100%视口高度)来实现。检查单元vh
在您规划布局的设备上是否可用:http://caniuse.com/#search=vh
如果你需要支持不识别vh
的浏览器,这可能是最简单的解决方案,使用javascript(或jQuery)动态地为你的容器元素分配一个高度。
这是如何在jQuery中完成的<div id="my-container-element"></div>
$("#my-container-element").height($(window).css("height");
纯Javascript相同:
document.getElementById("my-container-element").style.height(window.innerHeight+"px");
在您的CSS表中尝试以下操作:
html { background: url(myImage.jpg) no-repeat center center fixed; background-size: cover;}
它将用你的背景图片填充整个页面。
- 访问布局信息是否也会导致浏览器重排
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 如何使用phaser使html5游戏在移动设备浏览器上运行
- 有时数据是't显示在浏览器中
- 使图像在单击时展开到不大于浏览器
- fetch() 函数未在 Ubuntu Chromium 浏览器上定义
- 不同浏览器中的空白字符正则表达式行为
- 在Windows 10中自动执行例行程序(主要与浏览器交互)
- Windows形成web浏览器控件和Javascript更改的DOM
- 如何临时暂停浏览器渲染,然后恢复整个页面
- 使用angularjs向浏览器发送servlet响应(下载功能)
- Javascript的某些部分在Chrome中不起作用,但在其他浏览器中可以完美工作
- 漂亮的照片在Dreamweaver上完美运行;但不能在任何浏览器上在线工作
- 脚本在除IE之外的所有其他浏览器中都能完美运行
- Javascript在IE7,8,9中返回控制台错误,但在所有其他浏览器中都能完美运行
- 长字符串在Firefox中自动被截断,而在谷歌浏览器中其工作完美
- 隐藏默认浏览器滚动条没有溢出:隐藏时使用完美滚动条
- 脚本错误仅在ie10 /工作完美在所有其他浏览器
- 在IE8上有一个问题——一个脚本可以在其他浏览器上完美地工作
- 我如何使CSS背景的一部分完美地适合浏览器