CSS篇: 流式布局和响应式布局和自适应布局和弹性布局

1,337 阅读3分钟

流式布局和响应式布局和自适应布局和弹性布局

流式布局

效果

  • 流式布局在CSS2时代就有,主要是靠百分比进行排版,可以在不同分辨率下显示相同的版式。

设计方式

  • 网页中主要的划分区域的尺寸使用百分数,使用%百分比定义宽度,高度大都是用px来固定住(搭配min-*、max-*属性使用),例如,设置网页主体的宽度为80%,min-width为960px。图片也作类似处理(width:100%, max-width一般设定为图片本身的尺寸,防止被拉伸而失真)。

缺点

  • 宽度使用百分比定义,但是高度和文字大小等大都是用px来固定,所以在大屏幕的手机下显示效果会变成有些页面元素宽度被拉的很长,但是高度、文字大小还是和原来一样(即,这些东西无法变得“流式”),显示非常不协调。

响应式布局

效果

  • 响应式是用于解决不用设备之间不用分辨率之间的兼容问题(一般是指PC,平板,手机等设备之间较大的分辨率差异),设计的目标是确保一个页面在所有终端上(各种尺寸的PC、手机、手表、冰箱的Web浏览器等等)都能显示出令人满意的效果。

设计方式

  • 响应式布局的关键技术是CSS3中的媒体查询,监测设备屏幕大小,通过css媒体查询来有针对性的更改页面的布局,可以监测屏幕方向(移动设备),设备类型等等,核心在于感知。

兼容IE6,7,8

  • 对于IE6/IE7/IE8浏览器,我们使用JavaScript,根据用户显示器的分辨率,为其动态创建一个CSS 文件,在头部head标签中嵌入如下的code:

  • <script>
    if (!window.screenX) {
        //IE6~8
        var oStyle = document.createElement("link");
        oStyle.rel = "stylesheet";
        oStyle.type = "text/css";
        if (screen.width > 1024) {
            oStyle.href = "widthScreen.css";	
        } else {
            oStyle.href = "normalScreen.css";	
        }
        document.getElementsByTagName("head")[0].appendChild(oStyle);
    }
    </script>
    

自适应布局

效果

  • 分别为不同的屏幕分辨率定义布局,即创建多个静态布局,每个静态布局对应一个屏幕分辨率范围。改变屏幕分辨率可以切换不同的静态局部(页面元素位置发生改变)

设计方式

  • 使用 @media 媒体查询给不同尺寸和介质的设备切换不同的样式。在优秀的响应范围设计下可以给适配范围内的设备最好的体验,在同一个设备下实际还是固定的布局

缺点

  • 屏幕分辨率变化时,页面里面元素的位置会变化而大小不会变化。

弹性布局

效果

  • 早期浏览器不支持整个页面按比例缩放,仅支持网页内文字尺寸的放大,这种情况下。使用弹性布局,可以使包裹文字的元素随着文字的缩放而缩放。

设计方式

  • 包裹文字的各元素的尺寸采用em/rem做单位,而页面的主要划分区域的尺寸仍使用百分数或px做单位(同「流式布局」或「静态/固定布局」)