响应式设计学习笔记

响应式网站实践原则

1.不管设备大小,应该包含相同内容
2.根据设备大小不同,显示不同的内容

1.断点的选择

0-480    小屏幕
481-800  中屏幕
801-1400 大屏幕
1400+    巨屏幕

<meta charset="UTF-8">的另一个好处,规范编码,并且让老版本浏览器标题识别中文

2.meta


<meta http-equiv="x-ua-comatible" content="ie=edge">

  1. 它代表ie文档的兼容性,告诉文档在ie下的兼容模式,
  2. 它是为了兼容一些在ie8下显示不正常,但在老版本浏览器下显示正常的模式
  3. 通过content 可以告诉 ie浏览器 你可以模拟 ie7的形式或者ie8或者ie9、ie11的形式显示网页
  4. 比如content="IE=EmulateIE8"以ie8的模式渲染页面
  5. ie=edge是为了强制ie浏览器以最新的模式渲染页面,能多新,有多新,(但如果浏览器最高ie8,那也只能用ie8的模式渲染)

3.响应式非常重要的标签

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

以下内容待填补

4.对于ie低版本兼容

  • css里 \0 大家都懂
  • html里
 <!--[if lte IE8]>
     <p>如果浏览器小于等于ie8,那么我提示你该升级了</p>
 <![endif]-->
  • 格式不多说 gt 大于、lt小于、gte大于等于、lte小于等于

5.对于img引用

  1. 对于必不可少的img图片 推荐用<img>标签形式嵌套进html里
  2. 对于可有可无的装饰图片放进css样式里

6. px em rem

  1. px像素
  2. em 相对父元素 ,如果没设会一直往上找,很强大但会导致混乱
  3. rem 相对html,但rem ie678不支持
html {
    font-size: 62.5%;
    color: #222;
}

如此一个rem会是10px

7.取消选中

css3属性 顺序不能乱,不然谷歌没有,火狐有

::-moz-selection{
    background-color: #b3d4fc;
    text-shadow: none;
}
::selection{
    background-color: #b3d4fc;
    text-shadow: none;
}

8. 工具样式

.center-block{
    display: block;
    margin-right: auto;
    margin-left: auto;
}
.pull-right{
    float:right !important;
}
.pull-left{
    float:left !important;
}
.text-right{
    text-align:right !important;
}
.text-left{
    text-align:left !important;
}
.text-center{
    text-align:center !important;
}
.hide{
    display:none !important;
}
.show{
    display: block !important;
}
.invisible{
    visibility: hidden;
}
.text-hide{
    font:0/0 a;
    color: transparent;
    text-shadow: none;
    background-color: transparent;
    border: 0;
}

注意其中的text-hide 是为了隐藏文字,方便seo识别图片

9.清除浮动

因为浮动可能导致父元素 高度塌陷

  1. 方法一 clear:both 优点:通俗易懂 缺点:无意义的空div过多。这种方法基本抛弃。
  2. 方法二 给予容器 overflow:auto
  3. 方法三 给予容器 float:left/right浮动,这样它和它的子元素都在同一层,这样也可以。
  4. 最推荐的办法 通过css3伪类给一个看不见的块状元素设置clear:both
.clearfix:after{
    content:'.';
    display: block;
    height: 0;
    clear: both;
    visibility: hidden;
}
/*-- 为了ie6、ie7 基本上用不到 --*/
.clearfix{
    zoom:1;
}

bfc注意,只要出发bfc就可以清楚浮动
而要生成BFC,目标元素的display为inline-block, table-cell, table-caption, flex, inline-flex中的一个,而inline-block会生成元素间隙,而有的支持性不好,最后在table-cell和table-caption综合后选择了display:table

所以有了最终版本,更优雅的方式清楚浮动

.clearfix:after{
    content:" ";
    display: table;
    clear: both;
}

再稍微改进一下

.clearfix:after,.clearfix:before{
    content:' ';
    display: table;
}
.clearfix:after{
    clear:both;
}

这种方法可以防止margin的叠加

10.学习细节知识

  • chrome浏览器字体有个默认下限值,中文的是12px,所以在用rem设置行高的时候采取px更加精确
  • 导航栏中间边框新技能get
    header .top ul li+li{
       border-left: 1px solid #999;
       margin-left:-3px;
    }
     ```
     这种方法的好处,在li 设置inline-block时产生的空白符通过`margin-left:-3px`去除,并且li中间会有细线用作区分
    - calc()计算
    ```sh
    .feature .item{
       width: calc(100%/3 - 3rem);
    } 
    
    注意在chrome盒模型下,width不包括padding和margin
    所以,减去的值当为padding和margin的和
  • before 利用
    .notice a:first-child:before{
        content: '最新公告:\00a0\00a0';
        color: #aaa;
    }
    
    其中\00a0\00a0是不换行的空白字符,因为content没法用&nbsp添加空格
  • 文字不换行,多出省略
    .notice a:first-child{
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
    }
    
  • 用户代理字符串在控制台输入navigator.userAgent获得相关设备信息
  • 媒体查询级别过高@media only screen and (max-width:80rem){.......},媒体查询的rem根据的不是html的字体大小,而是浏览器默认的字体大小

11.弹性图片

响应式网站最早提出时,提出了 弹性布局 弹性图片 媒体查询

其中弹性图片,能帮助用户在移动设备上浏览时,浏览到相应的弹性图片,而不是为pc端上设计的大图片,让用户在相应设备有了更好的体验才是弹性图片的目的。

弹性图片

加载与用户设备相匹配的小图片,既快速,又不会影响用户的体验。

需要2方面:图片的排版和布局,根据设备大小加载相应图片

解决方案:

  1. js或服务端(根据window大小设置地址)
  2. srcset配合sizes
  3. picture
  4. svg (兼容性好一点)
  • srcset
  1. img设置为max-width:100%,图片容器为100%
  1. picture
    新增的html标签,内含多个source,浏览器会自动遍历选择合适的条件
<picture>
    <source media="(max-width:36rem)" srcset="one.jpg 768w"/>
    <source media="(orientation: landscape)"/>
    ![](default.jpg)
</picture>

orientation:portrait | landscape

取值:

portrait:指定输出设备中的页面可见区域高度大于或等于宽度

landscape:除portrait值情况外,都是landscape(一般横屏)

说明:
定义输出设备中的页面可见区域高度是否大于或等于宽度。
本特性不接受min和max前缀。

主要推荐srcset,但srcset的兼容性问题,可以由picturefill.js解决

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,529评论 5 475
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,015评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,409评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,385评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,387评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,466评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,880评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,528评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,727评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,528评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,602评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,302评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,873评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,890评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,132评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,777评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,310评论 2 342

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,722评论 1 92
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,396评论 0 20
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,136评论 0 1
  • 关于恋爱,小时候大人们总是耳提面命地不准我们接触,只要有一丝早恋的苗头,都会被扼杀在摇篮中。长大后,我们不恋爱,...
    今天也是想辞职的一天阅读 770评论 2 1
  • 我出生在长白山脚下的一个小山村。村子被群山环绕,有高大的树木,清澈的小溪,林中有小鸟,水中有鱼虾。我的童年就是在这...
    夏天的一缕风阅读 149评论 0 0