网页宽度跟随电脑屏幕分辨率自动适应,那么它里面的div能不能设置宽度?

html-css021

网页宽度跟随电脑屏幕分辨率自动适应,那么它里面的div能不能设置宽度?,第1张

DIV宽度设置方式及案例如下:

DIV网页布局中当分辨率小于等于1024px(像素)时,DIV布局对象显示1000px宽度,当分辨率大于1024px时候显示1200px宽度等需求。使用CSS实现改变浏览器显示宽度从而实现布局的网页宽度动态改变变化(网页宽度自动随浏览器显示宽度而变宽变窄)。

使用CSS单词与语法

1.代码如下:

@media screen and (判断属性){ CSS样式选择器 }

这里注意花括号里装要变化CSS样式选择器。

不同分辨率显示不同宽度样式案例

DIVCSS小案例描述:

1.我们首先设置一个DIV盒子CSS命名为“.abc”,设置其高度为300px,css边框为黑色;以及设置margin:0 auto布局居中。预先设置这两个样式是为了便于观察。

2.我们通过手动拖拽浏览器显示宽度,然后观察此盒子宽度变化情况,当浏览器宽度调节到宽度不大于500px时,对应此盒子宽度显示100px;调节浏览器宽度不大于901px时,显示“.abc”对应盒子宽度显示200px当调节浏览器宽度大于1201px时,盒子对象宽度显示1200px;当小于1200px时候显示宽度为900px。

3.CSS代码:代码如下;

.abc{ height:300pxborder:1px solid #000margin:0 auto}

@media screen and (min-width: 1201px) {

.abc {width: 1200px}

}

/* css注释:设置了浏览器宽度不小于1201px时 abc 显示1200px宽度 */

@media screen and (max-width: 1200px) {

.abc {width: 900px}

}

/* 设置了浏览器宽度不大于1200px时 abc 显示900px宽度 */

@media screen and (max-width: 901px) {

.abc {width: 200px}

}

/* 设置了浏览器宽度不大于901px时 abc 显示200px宽度 */

@media screen and (max-width: 500px) {

.abc {width: 100px}

}

/* 设置了浏览器宽度不大于500px时 abc 显示100px宽度 */

需要注意是CSS代码顺序,由大到小排版CSS(判断浏览器宽度越大越放前),这样是因为逻辑关系,@media 判断CSS排错将导致判断失效。

4.HTML代码:代码如下;

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>无标题文档</title>

<style>

.abc{ height:300pxborder:1px solid #000margin:0 auto}

@media screen and (min-width: 1201px) {

.abc {width: 1200px}

}

/* 设置了浏览器宽度不小于1201px时 abc 显示1200px宽度 */

@media screen and (max-width: 1200px) {

.abc {width: 900px}

}

/* 设置了浏览器宽度不大于1200px时 abc 显示900px宽度 */

@media screen and (max-width: 900px) {

.abc {width: 200px}

}

/* 设置了浏览器宽度不大于900px时 abc 显示200px宽度 */

@media screen and (max-width: 500px) {

.abc {width: 100px}

}

/* 设置了浏览器宽度不大于500px时 abc 显示100px宽度 */

</style>

</head>

<body>

<div class="abc">DIVCSS5实例:我这个DIV宽度会随浏览器宽度变化哦,试试改变浏览器宽度</div>

</body>

</html>

5.为了兼容IE9以下版本浏览器需要加入一个google的JS,当然可以下载引人html:代码如下;

<!--[if lt IE 9]>

<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>

<![endif]-->

将JS代码放入</head>标签前即可,这里直接引人google在线JS,你可以下载此JS文件重新HTML引人即可。

6.完美兼容各大浏览器HTML+CSS+JS源代码:代码如下;

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />

<title>无标题文档</title>

<style>

.abc{ height:300pxborder:1px solid #000margin:0 auto}

@media screen and (min-width: 1201px) {

.abc {width: 1200px}

}

/* css 注释说明:设置了浏览器宽度不小于1201px时 abc 显示1200px宽度 */

@media screen and (max-width: 1200px) {

.abc {width: 900px}

}

/* 设置了浏览器宽度不大于1200px时 abc 显示900px宽度 */

@media screen and (max-width: 900px) {

.abc {width: 200px}

}

/* 设置了浏览器宽度不大于900px时 abc 显示200px宽度 */

@media screen and (max-width: 500px) {

.abc {width: 100px}

}

/* 设置了浏览器宽度不大于500px时 abc 显示100px宽度 */

</style>

<!--[if lt IE 9]>

<script src="http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-

mediaqueries.js"></script>

<![endif]-->

</head>

<body>

<div class="abc">DIVCSS5实例:我这个DIV宽度会随浏览器宽度变化哦,试试改变浏览器宽度</div>

</body>

</html>

一般的解决方案。采用定长定宽的布局。规划好页面的各部分元素大小。精确到px。然后整体居中,两侧留白。这样分辨率不一样,只会影响留白部分的大小。居中部分在各分辨率下显示效果一致。

另一种解决方案比较少用。就是采用流式布局。页面的各部分都是按照百分比去设置的。这样分辨率不一样的情况下。效果都是一致的。但是比较难以掌控。编码难度大,测试困难。因此较少采用。

另外,针对不同移动设备下,不同分辨率通常采用服务端判断设备类型,然后加载相应css去实现不同设备访问自适应。

这个可以通过布局和样式解决:

方法一:所有布局用百分比布局,这种方法是比较传统的。

方法二:百分比和em(一个字符的单位)相结合的;

方法三:rem为单位来写样式,需要借助JS来根据分辨率的大小调整rem

方法四:布局用rem单位,而字体用em.

第1、2两种方法是比较传统,网上随便搜搜就找得到了;第3种开始用到的rem,rem是css3新出的一种样式属性单位,类似PX;但是rem是可以人为设置大小的,也就是说rem这个单位的大小是可以设置,基于这个特性,再通过JS来根据分辨率控制这个rem的单位大小;

JS代码:

(function (doc, win) {

var docEl = doc.documentElement,

resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',

recalc = function () {

var clientWidth = docEl.clientWidth

if (!clientWidth) return

docEl.style.fontSize = 40 * (clientWidth / 1080) + 'px'

console.log(40 * (clientWidth / 1080))

}

if (!doc.addEventListener) return

win.addEventListener(resizeEvt, recalc, false)

doc.addEventListener('DOMContentLoaded', recalc, false)

})(document, window)

这边的40是rem的自己需要单位大小(自己根据需求设置的,如果需要甚至可以改成10);

这边的1080是设计效果图的大小,如果设计图是以宽度为2000的话,那么这边的1080就改成2000;

而em用来做字体单位的话,就可以根据不同的显示器(手机自身的设定)来显示字体,不会出现字体大的离谱,或者小的看不见的状况;

不过rem因为是CSS3的属性,在PC端的兼容性很差,不建议使用,但是移动端是非常适合的,总结就是PC端:方法一、方法二,移动端:方法三、方法四