网页自适应设计

网页自适应设计

       网页对浏览器窗口的自适应支持变得越来越重要了。自适应响应设计更是异常火爆。再加上移动端的崛起,更是如日中天。以前为了适应不同屏幕分布率和浏览器窗口的扩大和缩小,需要设计几套css样式,用js脚本判断窗口大小,选择加载。结构臃肿,加载负担较大。现笔者经过一定时间的学习,有所心得,故分享于此,加强交流,共同进步。同时希望对大家有所帮助。

 

1.纯净css实现自适应

 

a.一列宽度自适应

<div id="layout">一列宽度自适应</div>

    将元素width属性设置为百分比数值:

<style type="text/css">
    #layout{
        background-color: #cccccc;
        border: 2px solid #333333;
        width: 80%;
        height: 300px;
    }
</style>

 

 b.两列宽度自适应

<div id="left">左列</div>
<div id="right">右列</div>

    将元素width属性设置为百分比数值,注意要进行盒子模型计算,确定是否可以使用100%的宽度之和。这       里笔者由于有边框线2px的影响,故不使用和为100%。

<style type="text/css">
    #left{
        background-color: #cccccc;
        border: 2px solid #333333;
        width: 20%;
        height: 300px;
        float: left;
    }
    #right{
        background-color: #cccccc;
        border: 2px solid #333333;
        width: 70%;
        height: 300px;
        float: left;
    }
</style>

 

 c.两列右列宽度自适应

<div id="left">左列</div>
<div id="right">右列</div>

    将左栏宽度设定为固定值,右栏不设置任何宽度值,并且右栏不浮动即可。

<style type="text/css">
    #left{
        background-color: #cccccc;
        border: 2px solid #333333;
        width: 100px;
        height: 300px;
        float: left;
    }
    #right{
        background-color: #cccccc;
        border: 2px solid #333333;
        height: 300px;
    }
</style>

 

d.三列浮动中间列宽自适应

<div id="left">左列</div>
<div id="center">中列</div>
<div id="right">右列</div>

    左栏贴近左边缘,右栏贴近右边缘,中间不设定其浮动方式,但使其左,右外边距分别等于左,右栏宽         度,注意此宽度并非仅仅是设定的width属性值,此处需进行根据边框,内外边距计算得出。

<style type="text/css">
        #left{
            background-color: #cccccc;
            border: 2px solid #333333;
            width: 100px;
            height: 300px;
            position: absolute;
            top: 0px;
            left: 0px;
        }
        #right{
            background-color: #cccccc;
            border: 2px solid #333333;
            width: 100px;
            height: 300px;
            position: absolute;
            top: 0px;
            right: 0px;
        }
        #center{
            background-color: #cccccc;
            border: 2px solid #333333;
            height: 300px;
            margin-left: 104px;
            margin-right: 104px;
        }
        body{
          margin: 0px;
          padding: 0px;
        }
    </style>

 

 e.高度自适应

<div id="left"></div>
<style type="text/css">
        html,body{
            margin: 0px;
            height: 100%;
        }
        #left{

            background-color: #cccccc;
            border: 2px solid #333333;
            width: 300px;
            height: 100%;
            float: left;
         }
    </style>

    将html,body的width属性值设置为100%,使IE与Firefox浏览器均能够工作正常。对于浏览器差异,兼容问     题,笔者将会在后续博客谈到。此处暂且这样。

 

2. 采用bootstrap框架的栅格系统以及响应式工具,其bootstrap官方文档详细尽致。或者运用    css3的多列       布局。有关这些,笔者均会在后续博客谈到。此处笔者不再赘述。

 

3. 采用纯净css实现响应式设计

    笔者先展示一下效果:http://120.24.66.128/Me/,这是一个相当简单的自适应响应页面,当浏览器的窗口     宽度大于960px时,页面全景展示,当宽度介于600px与960px时,照片一块将不再出现,当小于600px         时,页面布局将采用一块一块自上而下,以便移动端浏览。除此之外,还做了一个皮肤效果。页面详细代     码尽可用浏览器查看。写的不好之处还请大家多多指正,笔者在此拜谢。

    核心代码其实很简单:

......//整体结构

@media screen and (min-width: 960px){
   ......//大于960px
}

@media screen and (min-width: 600px) and (max-width: 960px){
   ......//介于600px与960px
}

@media screen and (max-width: 600px){
    ......//小于600px
}

    无需加载多个css文件,也无需写js脚本,轻松实现页面自适应响应设计。

           以上是笔者对自适应网页的粗浅认识,学海无涯,笔者愿与大家一起交流,分享,共同成长,进步。     其中若有不妥之处,还请大家不惜笔墨。更希望技术大牛加以指导,笔者不胜感激。

   

 

 

 

   

 

 

你可能感兴趣的:(html,css,响应式设计,页面自适应)