第二次讨论——响应式设计、布局技巧、css性能优化、css预处理

第二次讨论

【响应式设计】

集中创建页面的图片排版大小,可以智能地根据用户行为以及使用的设备环境(系统平台、屏幕尺寸、屏幕定向等)进行相对应的布局。

响应式布局:

meta标签的实用:设置布局宽度等于设备宽度,布局viewport等于度量viewport

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

【【布局】】

【水平居中】

一、text-align和inline-block的联合使用:

text-align属性:通过指定行框与哪个点对齐,从而设置块级元素内文本的水平对齐方式。(从而child为文本行内元素,parent为块状元素,可以通过display来设置)。

.parent{text-align: center;} //父元素
.child{display: inline-block;}//子元素

不过此方法兼容性比较好,IE浏览器接收。不过代码较多,同时要设置父元素和子元素。

二、使用margin:0 auto设置

.child{width:100px;margin:0 auto;}//必须要有宽度

margin设置的是块级元素的居中。兼容性好,不过需要设置宽度。

三、display:table设置

.child{display:table;margin:0 auto;}

此方法只需对自身进行设置,代码简短。不过在IE6、7上,需要进行调整。

四、使用绝对定位

.parent{position:relative;}
 /*或者实用margin-left的负值为盒子宽度的一半也可以实现,不过这样就必须知道盒子的宽度,但兼容性好*/ .child{position:absolute;left:50%;transform:translate(-50%);}

transform:translate。移动transform在translation的方向和距离。简单的说,向某方向移动物体多少距离。

不过这个方法兼容性不好,要IE9 以上。

【垂直居中】

一、vertical-align方法

/*第一种方法*/
.parent{display:table-cell;vertical-align:middle;height:20px;}
/*第二种方法*/
.parent{display:inline-block;vertical-align:middle;line-height:20px;}

在使用vertical-align的时候,由于对齐的基线是用行高的基线作为标记,故需要设置line-height或设置display:table-cell。

二、使用绝对定位

.parent{position:relative;} .child{positon:absolute;top:50%;transform:translate(0,-50%);}

注意与水平居中的区别

【水平垂直居中】

一、利用vertical-align,text-align,inline-block实现

.parent{display:table-cell;vertical-align:middle;text-align:center;}
.child{display:inline-block;}

二、使用绝对定位

.parent{position:relative;}
.child{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);}

由上可知,绝对定位可以实现任何方式的居中,不过还要考虑兼容性问题。

【多列布局】

一、左列定宽,右列自适应:

(1)使用float+margin

.left{float:left;width:100px;}
.right{margin-left:100px;}

经试验,如果不用margin的话,必须设置高度。IE6会有3px的bug

(2)使用table实现

.parent{display:table;table-layout:fixed;width:100%;}
.left{display:table-cell;}
.right{width:100px;display:table-cell;}

二、两列定宽,一列自适应

(1)使用margin+float

(2)利用float+overflow实现

.left,.center{float:left:width:200px;}
.right{overflow:hidden;}

(3)利用table实现
三、两侧自适应,中间定宽(网页布局常用)

(1)使用margin+float

.left{width:100px;float:left;}
 .center{float:left;width:100%;margin-right:-200px;}
.right{width:100px;float:right;}

(2)利用table实现

四、一列不定宽,一列自适应

(1)利用float+overflow实现

.left{float:left;background-color: red;height: 100px;}
.right{background-color: blue;overflow: hidden;height: 100px;}

不需要设定高度。会自适应。

五、多列式分布

(1)div+float

六、九宫格布局

(1)div+table

【css性能优化】

一、模块化:让代码高度重用,提高开发效率。

      模块与模块之间尽量不要包含相同的部分,如果有,提取出来,拆分成一个独立的模块。

二、css命名:用英文。大小驼峰、下划线等。驼峰表示区别不同单词,下划线表示从属关系。

      避免重复命名,自己的代码前加上属于自己的前缀。

三、class的使用:多组合,少继承。

四、上下margin处理:如果不确定模块的上下margin特别稳定,最好不要将它写在模块的类里,而是使用类的组合,单独为上下margin挂用于边距的原子类(如mt10、

          mb20)。模块最好不要混用margin-top和margin-bottom,统一使用某一个。

五、低权重原则:避免滥用自选择器。当不同选择符的样式设置有冲突时,会采用权重高的选择符设置样式。选择符权重相同,为就近原则。

        权重原则:HTML标签为1(如p),class为10,id为100。css选择符保证权重尽可能低。

        使用子选择器,会增加css选择符的权重。新添class更利于维护。

六、css sprite技术:将网站的多张背景图片合并到一张大图上。利用background-position属性来展示我们需要的部分

          图片加载会发出HTTP请求,而使用css sprite就减少了HTTP请求次数。减轻服务器压力。

          只能合并背景图片。对于横向和纵向都平铺的图片,不能使用css sprite,只能或横向,或纵向。排版要尽量紧凑。

          缺点:降低开发效率和增大维护难度,是否使用取决于网站流量。

七、css常见问题:(1)编码风格:多行式可读性强,不过会增大css文件大小,一行式可读性较差,不过利于提高开发速度,减小css文件大小。推荐一行式。

         (2)id和class:同一网页,相同id只能出现一次,但是class无限制。id的权重大于class。不过原生JS提供getElementId()方法,不支持class。

                使用id会限制网页的扩展性。一般情况下,建议尽量使用class,少用id。

         (3)css hack:IE条件注释法(兼容性最好,增加了开发和维护成本)

                 选择符前缀法(增强了可维护性,不过兼容性欠佳,不能用于内联样式)

                 样式属性前缀法(集合度更高,代码更加精简,可维护性更强,但存在兼容风险,可用于内联样式)

         (4)解决超链接访问后hover样式不出现的问题:a标签四种状态的排序问题,love hate原则,即l(link)ov(visited)e h(hover)a(active)te。

         (5)haslayout:IE浏览器的专有属性,用于css的解析引擎。很多bug都因为haslayout没有被自动触发。最好的解决方法:zoom。

         (6)块级元素和行内元素:使用display转换。

         (7)IE6、7不支持display:inline-block。

         (8)relative、absolute和float:不要滥用。

【css预处理】

用一种专门的编程语言,为 CSS 增加了一些编程的特性,将 CSS 作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。

时间: 2024-12-28 00:57:32

第二次讨论——响应式设计、布局技巧、css性能优化、css预处理的相关文章

响应式设计:理解设备像素,CSS像素和屏幕分辨率

概述 屏幕分辨率.设备像素和CSS像素这些术语,在非常多语境下,是可互换的,但也因此easy在有差异的地方引起混淆,实际上它们是不同的概念. 屏幕分辨率和设备像素是物理概念,而CSS像素是WEB编程的概念:屏幕分辨率和设备像素的区别在于设备像素显示密度. 当设备屏幕ZOOM=100%的时候,浏览器CSS像素尺寸和设备像素相等,而当像素密度(pixel density)为1的时候,屏幕分辨率和设备像素相等. 响应式设计 在响应式设计中,使用了viewport,device-width,media

关于响应式设计与服务端性能

服务器端层 智能响应策略的最后一个选择是服务器. 服务器端功能检测和决策不是 移动网络的新鲜玩意.类似 WURFL 和Device Atlas的库在市场上有好多年,响应式设计和服务器组件的混合也众所周知.有时被称为是响应式设计和服务器端组件(RESS),有时又叫自适应设计,这 提高了响应式设计的速度和可用性,同时每一个服务器端都保持一个代码库. 很遗憾的是.这些技术这几年并没有什么突破性的发展.只能在博客和 杂志里看到一些开发者对"RESS"."响应式"."

移动端Web开发(响应式设计)

Amaze移动端开发框架:http://amazeui.org/ Zepto.js:http://www.css88.com/doc/zeptojs_api/ 移动端下拉刷新插件:https://github.com/lightningtgc/material-refresh 响应式Web设计代码实现:http://bbs.html5cn.org/thread-86091-1-1.html 参考网址:http://mobile.51cto.com/web-442588.htm    http:/

web响应式设计技能大盘点

响应式网页设计已经变成新的web标准,许多公司已经接受了这个挑战,并且已经建立起了专门的网页设计方案(比如只针对移动端的开发)或者已经开始试图解决跨平台的响应式网页设计方案. 1.计划 与往常一样,计划总是要放在第一优先级的.一旦你在纸上开始解决你的设计难题,你就已经准备好建立你的站点了. 2.充分利用好原型软件 推荐使用Adobe Edge Reflow,它能让你使用媒体查询,在程序内设置断点并设计适配桌面电脑.平板电脑和手机的布局.然后,你可以将CSS复制到另一个像Adobe Dreamwe

响应式设计的十个基本技巧

英文原文:splio ,编译:w3cplus Responsive Design对于我来说一点都不陌生,从他在这个互联网出现的时候,就一直在观注他的成长,而且在w3cplus站上也分享了很多这方面的教程和资源.由于组织了YY活动在线上和大家分享Responsive的设计,为了能让大家更好的理解,我自己也有必要好好的做一下功课,今天这个就是功课,想和大家一起分享一下Responsive设计的一些基本技巧,和相对应的学习资源,希望对大家有所帮助. 什么是Responsive设计?有的同学认为Resp

响应式设计-VS-REM布局

水平有限,不对之处还请指出. [目前几种布局] 随着移动互联网的发展和微信的突起,移动端的响应式布局越来越重要了. 目前网站布局有以下几种: 1.定宽度布局 很多pc的网站都是定宽度布局的,也就是设置了min-width, 这样一来,如果小于这个宽度就会出现滚动条, 如果大于这个宽度则内容居中外加背景, 这种设计常见与pc端. 2.响应式布局 所谓响应式布局就是流式布局+媒体查询, 流式布局用来解决不同宽度的布局问题, 外加媒体查询,可以调整布局,例如大屏幕是布局1,小屏幕是布局2, 这种布局通

响应式设计(2)--引入bootstrap栅格布局

bootstrap为我们内置了栅格系统布局,通过它,我们可以非常快速的在不同宽度的屏幕下进行自适应布局. [grid栅格系统]http://v3.bootcss.com/css/#grid  [响应式工具]http://v3.bootcss.com/css/#responsive-utilities 不了解bootstrap栅格布局的同学,可以先看看上面的链接,了解个大概. 你真的了解吗?只要你了解个大概的话,就能回答的出下面几个问题,回答不出来的话,点开上面的链接好好看一遍 1)bootstr

Responsive Design ------响应式设计

什么是响应式设计呢?维基百科是这样对响应式作的描述:“Responsive设计简单的称为RWD,是精心提供 各种设备都能浏览网页的一种设计方法,RWD能让你的网页在不同的设备中展现不同的设计风格.”从这一点描述来说,RWD不是流体布局,也不是网格布局, 而是一种独特的网页设计方法. 响应式设计要考虑元素布局的秩序,而且还需要做到“有求必应”,那就需要满足以下三个条件:网站必须建立灵活的网格基础:引用到网站的图片必须是可伸缩的:不同的显示风格,需要在Media Queries上写不同的样式. 要想

响应式设计笔记

关于加载查询的最佳方法,解决IE7,IE8的问题 Respond.js 宁浩网 480px 767px, 1024px, 1280px, 910px 章节1:课程介绍与基本概念 课时1课程介绍01:39 课时2响应式设计的真实例子02:33 课时3viewport - 可视窗口01:33 可视区域=窗口大小,页面大小,不一样的. 缩放的级别, <meta name="viewport" content="width=device-width, initial-scale