1. 经常使用解决方案javascript
所谓响应式开发,就是指在不一样的系统,设备环境,不一样的分辨率下,界面进行不一样的响应和调整适配html5
咱们简单理解为,在不一样的浏览器上,不一样分辨率的显示器上,咱们的网页能进行自适应响应调整,使得最后的界面仍是能达到设计师高保真图的效果。 在PC端开发中,常常会出现系统得兼容IE8的要求,这次咱们讨论的是在这种需求下,如何达到所谓的响应式开发的要求。 经常使用的响应式开发解决方案(针对兼容IE8的大前提下)有:java
1600 * 900下的天猫登陆页截图 jquery
// 此方法兼容IE8
// 分辨率大于等于1680,大部分为1920的状况下,调用此css
<script>
if(window.screen.width >= 1680) {
document.write('<link rel="stylesheet" href="../../css/oc_login_1920.css">');
}
// 分辨率小于等于1600的状况下,调用此css
else {
document.write('<link rel="stylesheet" href="../../css/oc_login_1600.css">');
}
</script>
复制代码
1920 * 1080下的登录页截图 git
@media screen and (max-width: 1600px) {
html {
color: brown;
font-size: 100%;
}
}
@media screen and (min-width: 1601px) {
html {
color: blueviolet;
font-size: 200%;
}
}
//rem
.box {
margin: 2rem;
}
//em
.box {
margin: 2em;
}
复制代码
1920 * 1080下的巨丑Demo页截图 github
所谓媒体查询,就是针对不一样的屏幕尺寸设置不一样的样式,在响应式设计中,是很是有用的。web
使用@media,在重置浏览器大小的过程当中,页面会根据浏览器的宽度和高度从新渲染页面。 一般,咱们只用到它的min-width和max-width属性,这里,咱们也是。 可是惋惜的是IE9才开始支持@media,其余主流浏览器早已支持,如何在IE8中也能使用@media呢?
hack科技之respond.js 下载地址:github.com/scottjehl/R… respond.js使IE6-8可以支持@media的min-width和max-width属性 使用需知:
工做原理:
测试Demo:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>HTML5-响应式布局--respond.js-Sakura</title>
<link rel="stylesheet" href="test.css" charset="utf-8">
<script src="js/respond.min.js"></script>
</head>
<body>
<div>
使IE6~8支持响应式布局——Sakura
</div>
</body>
</html>
复制代码
CSS文件:
html,
body {
height: 100%;
}
@media only screen and (min-width: 480px) {
body {
background: blanchedalmond;
}
}
@media only screen and (min-width: 640px) and (max-width: 1024px) {
body {
background: gray;
}
}
@media screen and (min-width: 1024px) {
body {
background: coral;
}
}
复制代码
旧瓶新酒的window.screen.width 直接经过判断window.screen.width的大小,来执行不一样的样式代码。此方法也兼容IE8
//此方法兼容IE8
// 分辨率大于等于1680,大部分为1920的状况下,调用此css
if(window.screen.width >= 1680) {
document.write('<link rel="stylesheet" href="../../css/oc_login_1920.css">');
}
// 分辨率小于等于1600的状况下,调用此css
else {
document.write('<link rel="stylesheet" href="../../css/oc_login_1600.css">');
}
复制代码
在前端开发中,咱们经常使用的长度单位有px,em,rem等,虽然都是相对单位,但因为参照物不一样,各自特性也不一样。
既然rem这么美好,IE8却不能使用,这很难受啊!别慌,接下来咱们就来让IE8也能兼容rem。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="remDemo.css">
<!--如下的css文件在IE8浏览器中会被rem.js忽略-->
<!--其余浏览器中依旧会显示,由于其余浏览器支持rem!-->
<link rel="stylesheet" type="text/css" href="test.css" data-norem />
<script src="js/html5shiv.min.js"></script>
<script src="js/respond.min.js"></script>
<!-- <script src="js/jquery-1.8.3.min.js"></script>-->
</head>
<body>
<div class="box">
<p class="title">欢迎来到主界面
<p class="content">这里是叮叮咚咚</p>
</p>
<ul>
<li>
<label>姓名</label>
<input type="text" class="name" />
</li>
<li>
<label>姓名</label>
<input type="text" class="password" />
</li>
</ul>
</div>
<script src="js/rem.min.js" type="text/javascript"></script>
</body>
</html>
复制代码
test.css文件
html,
body {
height: 100%;
}
@media only screen and (min-width: 480px) {
body {
background: blanchedalmond;
}
}
@media only screen and (min-width: 640px) and (max-width: 1024px) {
body {
background: gray;
}
}
@media screen and (min-width: 1024px) {
body {
background: coral;
}
}
li label {
font-size: 2rem;
margin-left: 4rem;
}
复制代码
remDemo.css文件
@media screen and (max-width: 1600px) {
html {
color: brown;
font-size: 200%;
}
}
@media screen and (min-width: 1601px) {
html {
color: blueviolet;
font-size: 400%;
}
}
.box {
margin: 2rem;
}
.title {
margin: 2rem;
font-size: 4rem;
}
.content {
//margin-top: 8rem;
font-size: 2rem;
}
input {
margin-top: 1rem;
}
复制代码
19201080&&IE8下截图
至此,关于兼容IE8的响应式开发已经所有结束了!撒花撒花撒花~
如图小伙伴有疑问或者不知道那些js文件去哪里下载(去github上!!!按名字搜索!),emmmm,实在没办法能够留言或邮箱M我,(应该)第一时间将这些文件发回给小伙伴的!
【个人邮箱->】sakura_p@qq.com
技术开源,码文不易,请尊重原创