Css3响应式设计

什么是响应式设计?

  首先,我们要了解响应式设计是什么?一句通俗易解得话就可以概括,所谓响应式设计就是可以让你设计的网页不仅仅在PC端显示,还可以在智能机以及iPad平板等移动设备上显示,应用了响应式设计的网页可以随着分辨率的大小进行样式变化,但是响应式设计不仅仅是关于屏幕分辨率自适应以及自动缩放的图片等等,它更像是一种对于设计的全新思维模式现在响应式设计已经应用的越来越广,学前端的我们不能不去掌握响应式设计,像美国白宫就对其官网主页进行更新,改用了响应式网页设计,这意味着无论用户是通过何种电子设备访问网站,其都能在上边看到更加舒适的页面布局和内容排版。

响应式设计的优缺点?

  其次,我们要弄清响应式设计有哪些优缺点,以便我们更好地进行学习与应用。

    优点:

     面对不同分辨率设备灵活性强能够快捷解决多设备显示适应问题

   缺点:

    兼容各种设备工作量大,效率低下代码累赘,会出现隐藏无用的元素,加载时间加长其实这是一种折中性质的设计解决方案,多方面因素影响而达不到最佳效果一定程度上改变了网站原有的布局结构,会出现用户混淆的情况

设计思路

  说到响应式布局,就不得不提起CSS3中的Media Query(媒体查询),易用、强大、快捷是制作响应式布局的一个利器,使用这个工具,我们可以非常方便快捷的制造出各种丰富的实用性强的界面。接下来就一起来深入的了解Media Query

   通过不同的媒体类型和条件定义样式表规则。

  • 媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件。
  • 媒体查询的大部分媒体特性都接受minmax用于表达“大于或等于”和“小与或等于”。如:width会有min-width和max-width
  • 媒体查询可以被用在CSS中的@media和@import规则上,也可以被用在HTML和XML中。

   关键字

•and

   •not      not关键字是用来排除某种制定的媒体类型

   •only     only用来定某种特定的媒体类型

     媒体特性

媒体特性 取值 接受min/max 描述
width <length> yes 定义输出设备中的页面可见区域宽度
height <length> yes 定义输出设备中的页面可见区域高度
device-width <length> yes 定义输出设备的屏幕可见宽度
device-height <length> yes 定义输出设备的屏幕可见高度
orientation portrait | landscape no 定义‘height‘是否大于或等于‘width‘。值portrait代表是(竖屏),landscape代表否(横屏)
aspect-ratio <ratio> yes 定义‘width‘与‘height‘的比率
device-aspect-ratio <ratio> yes 定义‘device-width‘与‘device-height‘的比率。如常见的显示器比率:4/3, 16/9, 16/10
color <integer> yes 定义每一组输出设备的彩色原件个数。如果不是彩色设备,则值等于0
color-index <integer> yes 定义在输出设备的彩色查询表中的条目数。如果没有使用彩色查询表,则值等于0
monochrome <integer> yes 定义在一个单色框架缓冲区中每像素包含的单色原件个数。如果不是单色设备,则值等于0
resolution <resolution> yes 定义设备的分辨率。如:96dpi, 300dpi, 118dpcm
scan progressive | interlace no 定义电视类设备的扫描工序
grid <integer> no 用来查询输出设备是否使用栅格或点阵。只有1和0才是有效值,1代表是,0代表否

   兼容性

  • 绿色 = 支持
  • 红色 = 不支持
支持版本\类型 IE Firefox Safari Chrome Opera
版本 6-8 4 5.1.7 13 11.5

版本


9

示例一:在link中使用@media:

<link rel="stylesheet" type="text/css" media="only screen and (max-width: 480px),only screen and (max-device-width: 480px)" href="link.css"/>

上面使用中only可省略,限定于计算机显示器,第一个条件max-width是指渲染界面最大宽度,第二个条件max-device-width是指设备最大宽度。

示例二:在样式表中内嵌@media:

@media (min-device-width:1024px) and (max-width:989px),screen and (max-device-width:480px),(max-device-width:480px) and (orientation:landscape),(min-device-width:480px) and (max-device-width:1024px) and (orientation:portrait) {srules}

在示例二中,设置了电脑显示器分辨率(宽度)大于或等于1024px(并且最大可见宽度为989px);屏宽在480px及其以下手持设备;屏宽在480px以及横向(即480尺寸平行于地面)放置的手持设备;屏宽大于或等于480px小于1024px以及垂直放置设备的css样式。

我们还可以设置设备的手持方向,横向还是竖向orientation(portrait|lanscape)

案例

   为大家分享一份案例,以便大家快速理解(没有使用device-width,orientation(portrait|lanscape))。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <style>/*媒体查询@media (min-width:900px ) { }当浏览器显示区域大于900px显示@media (min-width:900px ) { }里的样式,*/
        @media (min-width:900px ) {
            #jb{
                height: 100px;
                background: linear-gradient(to left,red,yellow,green,deepskyblue,blue,purple);/*线性渐变*/
                font-size: 25px;
                font-weight: bold;
                color: white;
                line-height: 100px;
                padding: 0 15px;
            }
            #left{
                padding: 0 15px;
                width: 25%;
                float: left;
            }
            #right{
                padding: 0 15px;
                margin-top: 15px;
                margin-right: 15px;
                float: right;
                width: 25%;
                background: dodgerblue;
                color: white;
                text-align: center;
            }
            #right h3{
                background: darkcyan;
                height: 25px;
                line-height: 25px;
            }
            #right:active{
                background: yellow;
                color: red;
            }/*点击后改变颜色*/
            #right:active h3{
                background: green;
                color: red;
            }
            #left p{
                background: dodgerblue;
                height: 25px;
                line-height: 25px;
                font-weight: bold;
                color: white;
                padding: 0 15px;
            }
            #left p:active{
                background: yellow;
                color: red;
            }
            #center{
                width: 42%;
                float: left;
            }
            #center img{
                width: 100%;
                box-shadow: 0 0 15px red;
                border-radius: 15px;
                -webkit-filter: blur(2px);/*浏览器兼容谷歌前缀webkit,火狐前缀moz,IE前缀ms,欧朋前缀o*/
                -moz-filter: blur(2px);/*filter过滤blur模糊*/
                -ms-filter: blur(2px);
            }/*图片模糊*/
            #center img:hover{
                -webkit-filter: blur(0px);
                -moz-filter: blur(0px);
                -ms-filter: blur(0px);
                -webkit-transform: rotate(5deg);/*transform变形,rotate旋转,deg旋转的程度角度*/
                -moz-transform: rotate(5deg);
                -ms-transform: rotate(5deg);
            }/*当鼠标移入,图片由模糊变为清晰并旋转5度。*/
            #center p:first-letter{
                padding-left: 1em;
            }
            article{
                -webkit-column-count: 2;/*column-count分栏,即将文章等分为几列*/
                -moz-column-count: 2;
                -ms-column-count: 2;
                -webkit-column-gap: 15px;/*column-gap分栏间的间隔*/
                -webkit-column-rule: 1px solid gray;/*column-rule分栏间隔中边框的宽度,样式和颜色。*/
                -moz-column-gap: 15px;
                -ms-column-rule: 1px solid gray;
                -ms-column-gap: 15px;
                -moz-column-rule: 1px solid gray;
                border:1px solid green;
                padding: 0 1vw;
            }
            article h2{
                -webkit-column-span:all;/*column-span:all跨栏,即将文章等跨栏显示*/
                -moz-column-span:all;
                -ms-column-span:all;
                background: dodgerblue;
                height: 50px;
                line-height: 50px;
                text-align: center;
            }
            footer{
                background: dodgerblue;
                height: 50px;
                line-height: 50px;
                text-align: center;
                margin-top: 120%;
            }

        }/*媒体查询@media (max-width:900px ) { }当浏览器显示区域小于900px显示@media (max-width:900px ) { }里的样式*/
        @media (max-width:900px ) {
            #jb{
                height: 100px;
                background: linear-gradient(to left,red,yellow,green,deepskyblue,blue,purple);
                font-size: 25px;
                font-weight: bold;
                color: white;
                line-height: 100px;
                padding: 0 15px;
            }
            #left{
                width: 100%;
            }
            #right{
                margin-top: 15px;
                float: right;
                width: 100%;
                background: dodgerblue;
                color: white;
                text-align: center;
            }
            #right:active{
                background: yellow;
                color: red;
            }
            #right:active h3{
                background: green;
                color: red;
            }
            #left p{
                background: dodgerblue;
                height: 25px;
                line-height: 25px;
                font-weight: bold;
                color: white;
                padding: 0 15px;
            }
            #left p:active{
                background: yellow;
                color: red;
            }
            #center{
                width: 100%;
                float: left;
            }
            #center img{
                width: 100%;
                box-shadow: 0 0 15px red;
                border-radius: 15px;
                -webkit-filter: blur(2px);
                -moz-filter: blur(2px);
                -ms-filter: blur(2px);
            }
            #center img:hover{
                -webkit-filter: blur(0px);
                -moz-filter: blur(0px);
                -ms-filter: blur(0px);
                -webkit-transform: rotate(5deg);
                -moz-transform: rotate(5deg);
                -ms-transform: rotate(5deg);
            }
            #center p:first-letter{
                padding-left: 1em;
            }
            article{
                -webkit-column-count: 1;
                -moz-column-count: 1;
                -ms-column-count: 1;
            }
            footer{
                background: dodgerblue;
                height: 50px;
                line-height: 50px;
                text-align: center;
                margin-top: 520%;
            }

        }
        </style>
    </head>
    <body>
        <header>
            <div id="jb">
                旅游App
            </div>
            <aside id="left">
                <p>航班</p>
                <p>城市</p>
                <p>小岛</p>
                <p>美食</p>
            </aside>
            <div id="center">
                <h2>城市</h2>
                <p>城市也叫城市聚落,是以非农业产业和非农业人员水电费和加快速度会返回的时间发货的机房环境的是否合适的话就放寒假是对方结婚的的覆盖和考试的还是发生的公司附近时都会发生的回复开机时间点附近。</p>
                <img src="img/1.jpg"/>
                <article>
                    <h2>跨栏标题</h2>
                    <section>
                        <p>为了能在Web页面中方便实现类似效果,按时发动机和房价肯定会放假的航空飞机后开机速度发货就收到回复见识到红飞机上的花费就收到回复。</p>
                        <img src="img/2.jpg" />
                    </section>
                    <section>
                        <p>为了能在Web页面中方便实现类似效果,按时发动机和房价肯定会放假的航空飞机后开机速度发货就收到回复见识到红飞机上的花费就收到回复。</p>
                        <img src="img/3.jpg" />
                    </section>
                    <section>
                        <p>为了能在Web页面中方便实现类似效果,按时发动机和房价肯定会放假的航空飞机后开机速度发货就收到回复见识到红飞机上的花费就收到回复。</p>
                        <img src="img/4.jpg" />
                    </section>
                    <section>
                        <p>为了能在Web页面中方便实现类似效果,按时发动机和房价肯定会放假的航空飞机后开机速度发货就收到回复见识到红飞机上的花费就收到回复。</p>
                        <img src="img/5.jpg" />
                    </section>
                </article>
            </div>
            <aside id="right">
                <h3>优惠信息</h3>
                <p>更多优惠信息更多优惠信息更多优惠信息</p>
                <h3>团购</h3>
                <p>更多优惠信息更多优惠信息更多优惠信息</p>
                <h3>外卖</h3>
                <p>更多优惠信息更多优惠信息更多优惠信息</p>
            </aside>
        </header>
        <footer>Dsfsd sdfsdf dfsd dsdfsd SEERds gdf</footer>
    </body>
</html>

时间: 2024-10-05 18:30:01

Css3响应式设计的相关文章

HTML5+CSS3响应式设计(二)

上一节传送门<HTML5+CSS3响应式设计(一)> 设置 viewport meta标签后,任何浏览器都不再缩放页面了,这一节我们可以针对不同视口来修正设计效果. 一.我们用一个ipad(1024*768)来说明这一点 上一节中我们的页面是960px宽度,我们ipad如果是横屏显示1024px,页面显示很正常. 如果是竖屏显示768px,页面会被裁剪. 下面我们在样式表中增加媒体查询样式: 1 @media screen and (max-width: 768px) { 2 #wrapper

CSS3 响应式设计 网络视图与媒体查询综合笔记

Chania The Flight The City The Island The Food The City Chania is the capital of the Chania region on the island of Crete. The city can be divided in two parts, the old town and the modern city. What? Chania is a city on the island of Crete. Where? C

&lt;转&gt;CSS3 Media Queries 实现响应式设计

在 CSS2 中,你可以为不同的媒介设备(如屏幕.打印机)指定专用的样式表,而现在借助 CSS3 的 Media Queries 特性,可以更为有效的实现这个功能.你可以为媒介类型添加某些条件,检测设备并采用不同的样式表. 例如,你可以把用于大屏幕上显示的样式和用于移动设备的专用样式放在一个样式文档中,这样,在不改变文档内容的情况下,不同的设备可以呈现不同的界面外观.阅读这篇文章学习 CSS3 Media Queries 的基本功能和国外使用 CSS3 的 Media Queries 特性的优秀

使用 jQuery Mobile 和 CSS3 实现响应式设计

使用 jQuery Mobile 和 CSS3 实现响应式设计 创建可以适应每个用户的屏幕分辨率的 Web 页面布局 jQuery Mobile 框架就其本身而言就是一个优秀的解决方案,可以快速创建一个可访问的由 HTML5 标记驱动的移动网站.当与 CSS3 配合使用时,工作真的会变得很有趣,因为它使创建一个根据屏幕分辨率来响应用户设备的 Web 页面布局成为可能.本文展示了如何使用 jQuery Mobile 框架和 CSS3 媒体查询在您的 Web 页面中实现响应式设计. jQuery M

一款由css3和jquery实现的响应式设计导航

2014年响应式设计成为设计主流.今天要给大家带来一款由css3和jquery实现的响应式设计导航.当显示器为pc时,导航为横条.当客户端为移动端时,呈现坚形导航.我们一起看下效果图: 在线预览   源码下载 实现的代码. html代码: <header> <nav id='cssmenu'> <div class="logo"> <a href="index.html">Responsive </a> &

html5/css3响应式布局介绍及设计流程

html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的高级浏览器不需要考虑响应式布局的媒体查询media query兼容问题 html5/css3响应式布局介绍 html5/css3响应式布局介绍及设计流程,利用css3的media query媒体查询功能.移动终端一般都是对css3支持比较好的高级浏览器不需要考虑响应式布局的媒体查询media query兼容问题 一个普通的自适应显示的三栏网页,当你用不同的终端来查

HTML5实践 -- 使用CSS3 Media Queries实现响应式设计

转载请注明原创地址:http://www.cnblogs.com/softlover/archive/2012/11/21/2781388.html 现在屏幕分辨率的范围很大,从 320px (iPhone) 到 2560px (大型显示器),甚至更大.用户也不只是使用台式电脑访问web站点了,他使用手机.笔记本电脑.平板电脑.所以传统的设置网站宽度为固定值,已经不能满足需要了.web设计需要适应这种新要求,页面布局需要能够根据访问设备的不同分辨率自动进行调整.本教程将会向你介绍,如何使用htm

html5、css3及响应式设计入门

一.响应式设计的定义 将三种已有的开发技巧(弹性网格布局.弹性图片.媒体和媒体查询)整合起来,命名为响应式网页设计.真正的响应式设计方法不仅仅只是根据视口大小改变网页布局.相反,它是要从整体上颠覆我们当前 设计网页的方法.以往我们先是针对桌面电脑进行固定宽度设计,然后将其缩小并针对小屏幕进行内容重排:现在我们应该首先针对小屏幕进行设计,然后逐步增强针对大屏幕的设计和内容(渐进增强). 二.H5和CSS3 HTML5提供了更多语义化标签,减少网页加载时间:H5在表单提交等页面交互中极大改善,减少了

纯css3开发的响应式设计动画菜单(支持ie8)

这是一个响应式设计的菜单.单击列表图标,当你显示屏大小可以完全水平放下所有菜单项时,菜单水平显示(如图1).当你的显示屏不能水平放置所有菜单项时,菜单垂直显示(如图2). 而且显示的时候是以动画的型式显示.效果相当的好. 点击这里在线预览 下面贴出实现这功能的源代码,这是一个纯用css3实现的菜单 html代码: <div class="container"> <!--[if lte IE 8]> <style> .iconicmenu > l