• [笔记]html5+css3 响应式设计(RWD,Responsive Web Design)


    [笔记]html5+css3 响应式设计(RWD,Responsive Web Design)[概述+媒体查询]
    书名:<Web设计:HTML5和CSS3实战>
    一 概述
    1. 为了能够使「一个页面,支持各种客户端屏幕分辨率大小[pc,mobile,pad]」成为可能,Ethan Marcotte提出了响应式网页设计。
    将3种已有的开发技巧【弹性网格布局,弹性图片,媒体和媒体查询】整合后,命名为【响应式网页设计(流式设计,弹性布局,塑料布局,流体设计,自适应布局,跨设备设计,弹性设计)】
    2. 一句话概括:针对【任意设备】对【网页内容】进行【完美布局】的一种显示机制。
    3. html5语义标签和css3字体,动画,变换等功能,给RWD提供了更多可能性
    4. 不再迷恋 【像素px】,使用相对度量单位【em或百分比】
    5. 视口(ViewPort):页面实际显示区域
    屏幕尺寸:设备物理显示区域
    6. 【响应式网站】无法替代真正的【移动网站】

    二 媒体查询
    根据设备显示器特性【视口宽度,屏幕比例,设备方向】设定css样式
    1. 使用
    1-1) css文件:
    @media screen and (max- 960px){
    body{
    background-color: red;
    }
    }
    1-2) <link>标签:
    <link rel="stylesheet" type="text/css" media="screen" href="xxx.css">
    <link rel="stylesheet" type="text/css" media="screen and ( orientation: portrait) and (min- 800px), projection" href="xxx.css">
    纵向的宽度大于800px的屏幕或投影仪的时候,加载xxx.css
    1-3) css文件里的import
    @import url("xxx.css") screen and (max-360px); 会增加http请求,影响加载速度

    2 可检测特性
    width[视口宽度],height[视口高度],device-width[屏幕宽度],device-height[屏幕高度],orientation[屏幕纵横],aspect-ratio[视口宽高比16:9=16/9],device-aspect-ratio[屏幕宽高比],color[xx位色min-color: 16],color-index[设备颜色数,非负数],monochrome[单色缓冲区每个像素使用位数],resolution[屏幕或打印机分辨率min-resolution:300dpi,118dpcm每厘米像素点],scan[电视机扫描progressive[逐行扫描,720p电视],interlace[隔行扫描1080iHD电视]],grid[设备是网格还是位图]
    除orientation,scan和grid外,其他可以用min和max设定范围

    3 阻止移动浏览器自动调整页面大小
    viewport meta元素
    <meta name="viewport" content="initial-scale=2.0,width=device-width" />
    缩放2倍,其他属性[maximum-scale,minimum-scale,user-scalable=no]

    三 使用技巧
    1 通过覆盖式样来响应不同的设备[先普通设备的css,后面才是用响应特殊设备的css覆盖前面的式样]
    2 如果将不同媒体查询样式放于不同css文件,会导致http请求太多,页面加载变慢。
    3 Respond.js[https://github.com/scottjehl/Respond ]用于兼容ie8等低版本支持媒体查询的js工具。但目前无法解析 @import 命令

    ----
    [笔记]html5+css3 响应式设计(RWD,Responsive Web Design)[流动布局+弹性图片]

    一. 【流式布局】
    为了兼容未来可能出现的设备,为了是媒体查询断点之间的显示效果平滑流畅,需要灵活的【流动布局】
    百分比布局方法王者归来...
    【百分比布局】创建流动的弹性界面
    【媒体查询】限制元素的变动范围
    此二者构成【响应式设计】的核心

    1. 元素的【固定像素宽度】转【百分比宽度】公式
    目标元素宽度 / 上下文元素宽度 = 百分比宽度

    2. 文字的用【em】替换【px】
    公式【目标元素宽度 / 上下文元素宽度 = 百分比宽度】同样适用
    上下文文字元素默认大小为16px
    48px / 16px = 3em
    【关键】是分清上下文元素
    【注】行高的【上下文元素】是其本身的文字大小

    二. 【弹性图片】
    1. 图片缩放
    删除img的宽度和高度后,使用【img,object,video,embed{max-width(或width属性): 100%;}】
    【max-width】还可以用于限制图片或元素的最大px或最大百分比
    【注】此法对于iframe内元素无效

    2. 为不同尺寸提供不同图片
    书中使用js插件
    http://adaptive-images.com
    如果是css可以设置的图片,可以通过【媒体查询】

    3. CSS网格系统
    响应式设计css框架
    Semantic
    Skeleton
    Less Framework
    1140 CSS Grid
    Columnal 作者推荐[使用960.gs框架(固定宽度网格系统)类似的CSS命名]

    使用网格系统可以快速搭建网站
    ----

    [笔记]html5+css3 响应式设计(RWD,Responsive Web Design)[HTML5+CSS3]

    一 html5

    1. html5兼容问题
    可以使用html5样板文件
    http://html5boilerplate.com
    包含了normalize.css,polyfill,Modernizr等

    2. 关于html W3School里有很详细的教程可以参考
    主要特性:
    语义化标签
    多媒体,video,audio
    离线存储 .manifest
    画板canvas

    3. 提到【无障碍网页应用技术】

    4. video 响应式方法
    tab中去除width,height属性
    css中加入max-100%;height:auto;
    对于iframe的视频,使用jquery插件FitVids

    二 CSS3
    CSS3可以实现各种效果:
    圆角,背景渐变,文字阴影,盒阴影,自定义字体,多重背景图片,动画,平移,2/3D旋转等等
    具体可以从W3CSchool里查询

    但对旧版本浏览器的兼容性还存在很多问题,可以使用js进行一定程度的弥补

    技巧:可快速编辑css3私有前缀[-webkit,-ms等]
    js工具:-prefix-free

    常用css3响应式设计

    1. CSS3多栏布局
    column- 12em;
    column-count: 4;
    column-gap: 2em;
    column-rule: thin dotted #999;

    2. CSS3长文字换行[url地址等无空格内容]
    word-wrap: break-word;

    3. CSS3选择器[字符串匹配属性选择器,有点像正则表达式,与jquery选择器也差不多]
    以特定前缀开头;
    Element[attribute^="value"]{}
    包含特定字符串;
    Element[attribute*="value"]{}
    以特定后缀结尾;
    Element[attribute$="value"]{}
    也可以直接用等于
    Element[attribute="value"]{}

    4. CSS3结构伪类
    css2:
    li:first-child
    css3:
    li:last-child

    nth-child选择器原来处理交替样式
    :nth-child(even) 或者 odd表示奇偶
    还有
    :nth-child(n),:nth-last-child(n),:nth-of-type(n),:nth-last-of-type(n)
    n:整数[2],表达式nth-child(3n+1),nth-last-child(-n+3)(-n:表方向)
    【注】CSS3计数从1开始

    否定(:not)选择器
    nav ul li:not(.internal) a{...}

    css3伪元素修正
    css2:
    p:first-line
    p:first-letter
    css3:
    p::first-line
    p::first-letter

    5. 自定义网页字体
    @font-face
    字体格式:EOT/TTF/WOFF
    例:
    @font-face{
    font-family: 'xxxx111';
    src: url('xxx/xxx.eot');
    src: url('xxx/xxx.eot?#iefix') format('embedded-opentype'),
    url('xxx.woff') format('woff'),
    url('xxx.ttf') format('truetype'),
    url('xxx.svg#xxx') format('svg');
    font-weight: normal;
    font-style: normal;
    }
    在需要的地方使用该font-face定义的font-family名字:xxxx111
    font-family: 'xxxx111';
    【注】如果字体模糊,需要覆盖浏览器默认的font-weight:700属性,改为400左右
    【缺点】字体文件太大

    6. CSS3颜色格式和透明度

    .RGB颜色
    color: rgb(red,green,blue);

    .HSL颜色
    HSL(色相,饱和度,亮度)
    color: hls(359,99%,50%);
    【注】最好给IE6,7,8留下16进制备用颜色
    color: #fe0208;
    color: hls(359,99%,50%);

    .透明通道
    hsl和rgb支持透明通道
    background-colro: hsla(0,0%,100%,0.8);
    background-colro: rgba(255,255,255,0.8);
    【注】
    opacity 会对整个元素造成透明
    透明通道 只会对元素部分造成透明

    7. 文字阴影,盒阴影,渐变,多重背景
    text-shadow[可以用逗号,实现多重阴影]
    box-shadow[内阴影(inset);可以用逗号,实现多重阴影]
    linear-gradient(90deg, #fff 0%, #e4e4e4 50%, #fff 100%)
    径向背景渐变
    linear-gradient(center,ellipse cover, #fff 72%, #ddd 100%)
    重复渐变
    repeating-linear-gradient(...)
    还可以用于background背景图片
    多个背景图片,背景图片大小[background-size],位置等

    W3CSchool里有更为详细内容,此处没有多大意义

    8. 可缩放图标
    @font-face图标
    即:字体图片放于精灵图片中,通过font-face进行识别调用
    由于使用的是字体,所以可以缩放
    http://fico.lensco.be/

    9. CSS3过度,变形,动画
    CSS3的教程,不该出现在这个【响应式设计】里呀
    W3CSchool里有更为详细内容,此处没有多大意义

    下面过度语句似乎会比较好玩
    *{
    transition: all 1s;
    }
    ----

    [笔记]html5+css3 响应式设计(RWD,Responsive Web Design)[HTML5+CSS3 表单]

    没有什么大的东西,就是在说html5的表单新特性。
    如:【自动完成功能】,【表单控件检查】,【新控件类型】,【正则表达式检查】,【新属性】等
    然后就是对于旧浏览器的 兼容脚本【Webshims Lib】,【Modernizr】等
    最后是使用CSS3美化html5表单

    不过有一点需要注意的,这些html5表单,在不同设备上的显示方法是不同的,本身就自带了一定程度的【响应式设计】

    1. css3对于html5表单的伪类选择器
    input:required 必填域
    input:focus:invalid 当前聚焦且含非法输入域
    input:focus:valid 当前聚焦且含合法输入域

    ----

    [笔记]html5+css3 响应式设计(RWD,Responsive Web Design)[最后一章:跨浏览器问题]

    1. 【渐进增强】与【优雅降级】
    【优雅降级】:为了旧浏览器,主动去除不支持的新特性
    【渐进增强】:为先进的浏览器提供新特性支持

    2. 前端的瑞士军刀【Modernizr】
    下面书中例举了【Modernizr】的用处和用法
    辅助修正式样
    兼容html5标签
    支持媒体查询
    按需加载资源
    等等。
    差不多就结束了

    关键总结:
    响应式设计三大要素:【媒体查询】,【流式布局】,【弹性图片】
    锦上添花:Html5,CSS3

  • 相关阅读:
    win8 64下启动Apache失败:443端口被占用的解决方法
    JavaScript初学者应注意的七个细节
    再说SQL Server数据库优化
    2010.Net程序员年终随笔
    基于Siverlight 3.0的超炫图表工具Visifire 最后一个免费版本,你还等什么?
    苦修六年 终成正果 幸福之路 从此开始
    Asp.net中服务端控件事件是如何触发的(笔记)
    我的缓存实例—工作记录
    坚持观点:决不为了用Linq而用Linq!!
    ASP.NET 之 常用类、方法的超级总结,并包含动态的EXCEL导入导出功能,奉上类库源码
  • 原文地址:https://www.cnblogs.com/wangxinsheng/p/3851223.html
Copyright © 2020-2023  润新知