关于css3中的@media,响应式的一些问题。

html-css012

关于css3中的@media,响应式的一些问题。,第1张

响应式布局,说直白点就是一个网站能够兼容多个终端,可以按不同的分辨率显示不同的状态。而实现这个就要用到css3的Media Queries(媒介查询)。这个功能非常的强大,但是有优点的同时,缺点也是会存在的。那就是兼容各种设备工作量大,效率低下,加载时间长等。但是学起来很容易,看完下面的代码你就会了。

.page{

    width:960px

    height:1000px

    margin:0 auto

    background:#CCC

}

/* 设备最大宽度960px */

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

    .page{

        width:100%

        background:#69F

    }

}

/* 宽度大于480px且小于768px */

@media screen and (min-width: 480px) and (max-width:768px) {

    .page{

        width:100%

        background:#F00

    }

}

/* 设备最大宽度480px */

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

    .page{

        width:100%

        background:#00FF00

    }

}

这样就可以在不同的分辨率下采取不同的样式了。

另外还有一点,如果是移动端开发,一定要在头部加上以下代码。

<meta name="viewport" content="width=device-width initial-scale=1.0">

响应式布局,说穿了就是用css写了好几套的样式,当屏幕大小不同的时候,读取不同的样式而已。例如:

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

body {

background-color:red

}

}

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

body {

background-color:lightblue

}

}

这两个的意思,就是当屏幕最大宽度是300的时候,body的背景是红色;当屏幕最小宽度是700的时候,body的背景是淡蓝色。在@media这个大括号中,你只要按照平常的css一样写就行了

IE打印设置中默认的页眉和页脚的含义,而且可以对上述代码进行组合使用来设置自己喜欢的打印设置。这里我们所要说的并不单单是这些,大家设想一下我们开发了一个基于B/S结构的系统,其中有报表的部分,我们不能让每个客户端都自己去设置IE的打印设置,因此我们需要在程序中控制这些设置。下面我们用VBScript脚本写一个函数通过修改注册表键值来达到控制页面设置的目的,代码如下:script language="VBScript">dim path, reg'path存放IE打印设置的注册表地址, reg存放WScript.Shell组件的对象path = "HKEY_CURRENT_USER\Software\Micro-soft\Internet Explorer\PageSetup"'通过注册表修改打印设置,只修改页眉、页脚和各边界的值'参数说明:header--页眉,footer--页脚,margin_left--左边界'margin_top--上边界,margin_right--右边界,margin_bottom--下边界'页边距的设置中 1对应25.4mm,即margin_left=1表示实际值的25.4mmfunction pagesetup(header, footer, margin_left, margin_top, margin_right, margin_bottom)On Error Resume NextSet reg = CreateObject("WScript.Shell")if err.Number>0 thenMsgBox "不能创建WScript.Shell对象!"exit functionend ifreg.RegWrite path+"\header", header'设置页眉reg.RegWrite path+"\footer", footer '设置页脚reg.RegWrite path+"\margin_left", margin_left'设置左边界reg.RegWrite path+"\margin_top", margin_top'设置上边界reg.RegWrite path+"\margin_right", margin_right'设置右边界reg.RegWrite path+"\margin_bottom", margin_bottom'设置下边界end function/script>程序中可以再写一个函数(可用VBscript或javascript脚本写)先调用该函数,然后再调用window.print()实现打印,这里就不给出代码了。细心的读者一定发现了这样打印出来的页面会有打印按钮在上面,而且分页是IE打印控件根据纸张大小分出来的,下面我们介绍一种方法来控制分页和打印按钮的显示。该方法是利用CSS样式表来控制这些设置,因为在样式表中有一个“media=print”属性,该属性只有在打印的时候才会起作用,因此可以实现对打印按钮和分页的控制,具体做法如下:style media=print>.noprint{display:none}.pagenext{page-break-after: always}/style>只要在打印按钮中加入代码class="noprint",而在需要分页的地方加入代码 div class="pagenext">/div>就可以了。到目前为止我们的打印功能已经比较完善了,但是还没有打印预览和直接打印的功能,一般用户在打印之前都会预览一下,如果没有问题就直接打印了。下面我们通过IEWebBrowser组件来实现这两个功能。首先创建IEWebBrowser对象:object id=WebBrowser classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 width=0 height=0>/object >然后通过不同参数调用ExecWB方法实现打印预览和直接打印功能:WebBrowser.ExecWB(6,1)//打印WebBrowser.ExecWB(6,6)//直接打印WebBrowser.ExecWB(7,1)//打印预览