CSS响应式布局

响应式网页仅使用HTML+CSS进行设计,其内容会随着设备尺寸自动的resize以适应设备显示能力。通常它能够在各种类型的媒介上均呈现出很好的布局效果,可以为绝大多数或所有的用户带来最好的用户体验。

  • viewport是指用户对网页的可视区域。HTML5引入的新方法控制viewport。即在head中引入以下标签:

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

    此处使用width=device-width将页面宽度与设备宽度相关联,initial-scale定义了页面初始尺寸。

    关于viewport需要注意以下几点:

    • 不要使用大的固定宽度的元素;
    • 不要使内容依赖于一个特定视图宽度进行渲染;
    • 使用@media属性适应不同屏幕尺寸的样式;

  • 栅格化的试图
    栅格化的视图中,网页被分为等宽的12列,总宽度为100%,平均列宽为8.33%。内容根据栅格进行布局,采用平均列宽的倍数,resize时栅格相应变化也会被resize。

  • Media Query
    Media Query是CSS3引入的新技术,相应的元素为@media。其使用方法如下:

    @media mediaType and|not|only (media feature) {
    //CSS样式;
    }
    

    其中可用的mediaType有all/ print/ screen/ speech;逻辑判断关键字and/ not/ only;媒体特征定义输出设备的一些特征:如max-width/ min-width/ width/ height/ max-resolution等等。
    该表达式表明当满足圆括号内指定的媒体特征时,执行花括号内的CSS代码;利用该特性可以方便的进行内容的响应式布局。


  • 响应式的图片
    设置如下可以使图片随着viewport的大小resize,并且可以超过图片本身的尺寸大小;

    img {
    width: 100%;
    height: auto;
    }

    如果让图片响应的同时不超过原大小,使用max-width

    img {
    width: 100%;
    height: auto;
    }

    当背景为图片并且background-size设定不同的属性值时,其响应方式有区别:

    • background-size = contain时,图片可以进行缩放,不能进行拉伸,并且缩放时保持宽高比;
    • background-size = 100% 100%时,此时可以缩放或者拉伸,但是图片高度不变;
    • background-size = cover时,可以缩放或者拉伸,但是保持aspect-ratio,因此会发生图片clip;

    当然还可以使用HTML5新增的为尺寸的设备定义不同的背景图片。当设备页面宽度小于400时采用smallflower作为背景图片。

    <picture>
    <source srcset="img_smallflower.jpg" media="(max-width: 400px)">
    <source srcset="img_flowers.jpg">
    <img src="img_flowers.jpg" alt="Flowers">
    </picture>

  • 响应式视频
    与图片类似,设置如下:

    video {
    width: 100%;
    height: auto;
    }
    video {
    max-width: 100%;
    height: auto;
    }

当然,也可以使用Bootstrap等框架进行响应式布局,更多模板和练习可以点击此处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值