页面架构 4-5

4.页面优化

为什么优化:提升网页响应速度;对搜索引擎、屏幕阅读器友好;提升代码可读性,可维护性

页面优化的方法:

减少请求(图片合并,CSS 文件合并)

减少文件大小(减小图片大小,精简CSS,压缩CSS)

提升页面性能(调整文件加载顺序,精简选择器,避免消耗性能的属性,图片设置宽高,尽量用CSS实现)

提升代码可读性,可维护性(制定规范,语义化书写,避免Hack,模块化代码,注释)


减少请求

页面上每个资源(CSS,JS,图片)都需要通过向服务器请求来获取

从两方面减少请求

图片合并(图标合并)

减少CSS文件请求:合并CSS文件;少量CSS样式内联;避免使用import引入(每个import语句都会产生一个请求,而且请求是同步的,第一个请求完成后才能发送第二个请求)


减小文件大小

减小图片大小

选择合适的图片格式(PNG,JPG)

压缩图片(ImageOptim,ImageAlpha,JPEGmini)

减小CSS文件大小

CSS值缩写;省略值为零的单位;颜色值最短表示;CSS选择器合并(样式相同);文件压缩


提升页面性能

调整文件加载顺序:CSS 文件放在 head 中;JS 放在 body 底部

减少标签数量

选择器长度尽量短

避免使用耗性能属性(expression,filter,border-radius,box-shadow,gradients)

图片设置宽高(不缩放)

所有表现用 CSS 实现


可读性,可维护性

规范

语义化(标签,类名,id 名)

避免 Hack

模块化

注释


5.规范与模块化

规范

一个团队应该形成自己的一套团队规范

规范:文件规范   注释规范   命名规范   书写规范   其他规范

文件规范

文件分类:CSS文件分为通用类和业务类(文件的归档)

文件引入:外联引入,少量内联引入

文件本身:文件名由小写字母、数字和中划线组成,编码方式为 UTF-8

注释规范

块状注释:统一缩进,在被注释对象之上

单行注释:文字两端需要加空格,在被注释对象之上(避免汉字编码引起注释失败)

行内注释:文字两端需要空格,在分号之后注释

命名规范

分类命名:对于布局类样式以g-开头,内容类样式(模块)以m-开头

命名格式:小写,权衡长度与可读性

语义化命名:以内容语义化命名,如 .nav

书写规范

单行与多行:二选一

空格与分号:缩进(必须有)空格4个(或2个),属性与值之间空格(属性与属性之间空格);保留最后一个属性值的分号

属性顺序:显示属性,自身属性,文本属性和其他修饰

Hack方式:IE6属性以下划线开头,IE6/7以星号开头,不滥用Hack

值格式:color值统一为16进制;url()值统一为不加引号

其他规范

HTML规范:

文档声明:且首行顶格;

闭合:闭合标签需要闭合,自闭和标签加/;

属性:属性值用单引号引起来,表单元素属性可以省略的属性值省略;

层级:缩进4个空格体现层级,标签正确嵌套,不宜太深;

注释:布局前后加注释

大小写:标签,属性均小写

图片规范:

文件名称:语义,长度权衡

保留源文件

图片合并:尽可能使用sprite技术,sprite图片可按模块、业务、页面划分


模块化

一系列相关联的结构组成的整体;带有一定语义,而非表现

如何模块化

为模块分类命名(如m-,md-)

以一个主选择器开头(模块根节点,一个模块一个根节点,不能有兄弟节点)

使用以主选择器开头的后代选择器(模块选择器开头均为根节点的类名)

模块扩展

类似结构可以在模块根节点原有类名基础上,加一个带序号的原类名,作为扩展结构的根节点类名

原样式依然有效,新的变化在带序号的类名上重设

模块化好处

利于多人协同开发,相当于规范,防止样式污染

便于扩展和重用,提高效率

可读性,可维护性好

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,579评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,367评论 25 707
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,508评论 32 459
  • 尊敬老师、家长朋友们大家好! 我是2013届九班蔡智臻的家长,首先感谢蔡老师的邀请,让我很荣幸的能来参加你们的家...
    蔡老师YNWA阅读 816评论 0 0
  • 什么是观察者模式 观察者模式定义了对象间的一种一对多依赖关系,让多个观察者对象同时监听某一个对象,使得每当该对象的...
    陈炯阅读 343评论 0 0