`
buliedian
  • 浏览: 1234829 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

前端优化方案-CSS 优化方案

阅读更多

Author: 李丽媛

Date: 2010/6/2

Email: lly219#gmail.com

<!-- [if !supportLists]-->1 <!-- [endif]-->CSS 优化方案

<!-- [if !supportLists]-->1.1 <!-- [endif]-->使用 CSS 优化工具

<!-- [if !supportLists]-->a) <!-- [endif]-->online CSS Optimizer

<!-- [if !supportLists]-->b) <!-- [endif]-->CSS Formatter and Optimizer

解决方案 :选取以上一个工具进行进行优化。

<!-- [if !supportLists]-->1.2 <!-- [endif]-->清理 CSS

在我们写样式的时候,页面的 CSS 在经历几个版本的修改之后,可能有些样式已经用不到了,或许将某些样式 更名了而原来的忘了删除,总之页面中可能存在着一 些无用的样式。这些无用的浪费了一些服务器空间和带宽消耗,也会增大我们的维护成本。

<!-- [if !supportLists]-->a) <!-- [endif]-->Dust-Me selector

<!-- [if !supportLists]-->b) <!-- [endif]-->Page Speed

<!-- [if !supportLists]-->c) <!-- [endif]-->CSS Redundancy Checker

<!-- [if !supportLists]-->d) <!-- [endif]-->IntelliJ IDEA

<!-- [if !supportLists]-->e) <!-- [endif]-->Expression Web

解决方案 :选取以上一个工具进行 CSS 清理。

<!-- [if !supportLists]-->1.3 <!-- [endif]-->在浏览器支持的情况下尽量使用 CSS 选择器

避免为每一个标签都定义 class

<!-- [if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:399pt; height:300pt'> <v:imagedata src="file:///C:\Users\Vanessa\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" mce_src="file:///C:\Users\Vanessa\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png" o:title=""/> </v:shape><![endif]--><!-- [if !vml]--><!-- [endif]-->

解决方案 :重构 CSS ,去除不必要的 class

<!-- [if !supportLists]-->1.4 <!-- [endif]-->减少 CSS hack 的使用

<!-- [if !supportLists]-->a) <!-- [endif]-->尽量把浏览器默认值不相同的元素定义出来;

<!-- [if !supportLists]-->b) <!-- [endif]-->注意 padding margin border width height 中的大小计算;

<!-- [if !supportLists]-->c) <!-- [endif]-->注意 IE 中最小高度和 img 的使用。

解决方案 :删除不必要的 CSS hack ,然后进行细节修改。

<!-- [if !supportLists]-->1.5 <!-- [endif]-->避免使用内联引用和内部引用,尽量使用外部引用

<!-- [if !supportLists]-->a) <!-- [endif]-->网页处理速度会更快一些,尤其在有很多网页共用一份 CSS 样式表时;

<!-- [if !supportLists]-->b) <!-- [endif]-->看上去更加专业,整个网站的配色、细节等做到完全统一,具有一致性,避免内联的像素、色彩等偏差;

<!-- [if !supportLists]-->c) <!-- [endif]-->方便维护。只要修改一个 CSS 文件,不管你有多少个网页文件,都会以你最新修改的版本为标准,不必进行散弹式修改。

解决方案 :把内联引用和内部引用的 CSS 进行抽取、提出放到外部 CSS 文件中,使用外联引用。

<!-- [if !supportLists]-->1.6 <!-- [endif]-->浏览器兼容

支持主流浏览器: Firefox IE6 IE7 IE8 ;逐步支持 Chrome Opera Safari

解决方案 :在不同浏览器上进行测试,然后逐一修复。

<!-- [if !supportLists]-->1.7 <!-- [endif]-->元素合并

类似

background-image: url(/oaweb/img/common/333.png); background-repeat: repeat-y; background-position: 0px 0px;

可合并为( background url(/oaweb/img/common/333.png) repeat-y 0 0; )。

解决方案 :有此类问题的地方进行合并。

<!-- [if !supportLists]-->1.8 <!-- [endif]-->规范命名

<!-- [if !supportLists]-->a) <!-- [endif]-->id class 命名采用该内容的英文单词或组合命名,并第一个单词小写,第二个单词首个字母大写,如 :newRelease (最新产品 /new+Release)

<!-- [if !supportLists]-->b) <!-- [endif]-->添加注释;

<!-- [if !supportLists]-->c) <!-- [endif]-->常用命名规范(参见附件 1 )。

解决方案 :发现不符合要求的进行修改;没有注释或注释不详、不清的地方进行添加或补充、修改。

<!-- [if !supportLists]-->1.9 <!-- [endif]-->抽取出一些常用的 CSS

对于标签可使用 class 组合,不需要把 float:right; 类似这样常用的样式写到一组定义的 CSS 中。

解决方案 :定义一些常用的 CSS ,在样式中去除含有这些常用样式的 style ;最后在用到该样式的标签中加上定义好的被删除的常用样式的 class

<!-- [if !supportLists]-->1.10 <!-- [endif]-->注意 class id 的异同,不要滥用

id 是用来进行唯一标示,作为网站中的样式,每个页面样式需要具备一致性。因此,除特定原因外,样式尽量使用 class

解决方案 :查看不符合用 class 的标签,改为 id ;反之,改为 class

<!-- [if !supportLists]-->1.11 <!-- [endif]-->满足 SEO

OA 当然不需要此项,但是在 eCooe 体验中就在所难免了。

解决方案 :凭经验可适当修改,但毕竟不是这行的专家,可买本书来研究研究。

<!-- [if !supportLists]-->1.12 <!-- [endif]-->恰当的使用 CSS Sprite

不要在每一处需要图片的地方都使用 CSS Sprite ,它的难维护性决定了只适用于做背景图的时候采用;对于图片,还是应该去使用 img 标签。

解决方案 :把使用了 CSS Sprite ,但不用做背景的地方改为 img 标签;反之改为使用 CSS Sprite

<!-- [if !supportLists]-->1.13 <!-- [endif]-->避免使用 expression behavior

在页面渲染的过程中, expression behavior 需要大量的计算,会大量地耗费客户端资源。所以不到迫不得已,请不要使用 expression behavior

解决方案 :删除使用了 expression behavior 的地方,改之使用 JavaScript 进行替代。

附件 1

内容

命名

内容

命名

模块

module.css

主题

themes.css

基本共用

base.css

专栏

columns.css

布局、版面

layout.css

表单

forms.css

文字

font.css

补丁

mend.css

打印

print.css

header

内容

content/container

/ 页脚

footer

导航

nav

侧栏

sidebar

栏目

column

页面外围控制整体布局宽度

wrapper

/ /

left/right/center

登录条

loginBar

标志

logo

广告

banner

页面主体

main

热点

hot

新闻

news

下载

download

子导航

subNav

菜单

menu

子菜单

submenu

搜索

search

友情链接

friendLink

版权

copyright

滚动

scroll

标签页

tab

文章列表

list

提示信息

msg

小技巧

tips

栏目标题

title

加入

joinUs

指南

guild

服务

service

注册

register

状态

status

投票

vote

合作伙伴

partner

12 号字体

font12

红色

red

浮动清除

clear

常见问题

faqs

缩略图

screenshot

最新产品

newsRelease

编辑评论

editorReview

关键词

keywords

论坛

forum

主导航

mainNav

主菜单

mainMenu

标签

tag

摘要

summary

商标

branding

法律声明

legal

网站信息

siteInfo

信誉

credits

分享到:
评论

相关推荐

    前端开源库-css-background-video

    "前端开源库-css-background-video"就是这样一个工具,它允许开发者将视频作为CSS背景,为网站添加动态且引人入胜的元素。这个开源库是基于HTML5技术实现的,充分利用了现代浏览器对多媒体的支持,为用户提供了一种...

    前端开源库-analyze-css

    《analyze-css:深入理解前端CSS分析与优化》 在当今的Web开发中,前端性能是决定用户体验的关键因素之一,而CSS作为构建网页样式的核心技术,其优化显得尤为重要。"analyze-css"是一个强大的开源库,专为前端...

    前端开源库-css-find-assets

    在实际应用中,CSS-Find-Assets库通常与其他前端构建工具(如Webpack、Gulp或Grunt)结合,形成一套完整的前端资源管理解决方案。通过调用库的API,开发者可以自定义规则,满足特定的项目需求。 例如,以下是一个...

    前端开源库-vision-css-loader

    同时,它可以与其他CSS处理插件(如postcss-loader、autoprefixer等)结合,提供完整的CSS处理解决方案。 5. **性能优化**: 考虑到性能,`vision-css-loader`可能包含智能优化机制,例如只处理在当前页面渲染中...

    前端开源库-browserify-css

    Browserify CSS 提供了一种解决方案,它允许开发者使用 require() 语句来引入 CSS 文件,就像引入 JavaScript 模块一样。 使用 Browserify CSS,你可以将 CSS 文件分散在各个模块中,每个模块都有自己的样式,这样...

    前端开源库-is-css-shorthand

    "前端开源库-is-css-shorthand"就是针对这个问题提供的解决方案。它提供了一种API接口,允许开发者输入一个CSS属性名,然后返回该属性是否是简写形式。这对于自动化工具、CSS Linting或者代码优化过程非常有用。通过...

    前端开源库-is-css

    4. **模块化开发**:在现代前端框架如React、Vue或Angular中,正确区分CSS文件对于实现模块化开发至关重要,尤其是配合CSS预处理器(如Sass、Less)或CSS-in-JS方案时。 `is-css`库的实现原理可能包括: - **文件...

    前端开源库-gemstone-loader-css.zip

    总结,gemstone-loader-css是一个强大的Webpack CSS加载器,它提供了丰富的功能来优化CSS的处理和打包,提高了前端开发的效率和项目的性能。无论是新手还是经验丰富的开发者,都能从中受益,构建出更高效、更易于...

    前端开源库-swint-builder-css

    Swint是一个全面的前端开发框架,旨在为JavaScript和CSS提供一套完整的解决方案。它通过模块化的设计思想,帮助开发者构建可复用、可维护的代码,同时降低了项目间的耦合度。Swint-Builder-CSS作为其一员,专注于CSS...

    前端开源库-base-css-image-loader

    总之,"前端开源库-base-css-image-loader"是一个强大的工具,它可以帮助开发者优化CSS中的图像加载,减少不必要的资源消耗,提升网页加载速度和用户体验。通过合理利用其提供的功能,可以有效改善项目的性能指标,...

    前端项目-paper-css.zip

    【前端项目-paper-css.zip】是一个专门针对打印优化的前端项目,名为"Paper CSS",它致力于为用户提供愉快的打印体验。这个压缩包包含了项目的主要源代码,主要文件名为"paper-css-master",意味着我们即将探索的是...

    前端开源库-is-css-root.zip

    4. **布局处理**:在自定义布局或定位方案中,了解元素是否是CSS根可以帮助我们更好地控制盒模型和定位规则。 使用这个库的方法可能如下: 1. 引入库:通过npm或yarn将`is-css-root`添加到项目依赖中。 2. 调用API...

    前端开源库-css-sprite

    **CSS Sprite技术详解** 在前端开发中,CSS Sprite(CSS精灵)...总的来说,CSS Sprite是前端性能优化的重要手段,合理使用可以显著提升用户体验。随着前端技术的发展,未来可能还会有更多高效、智能的解决方案出现。

    前端开源库-css-to-radium.zip

    《前端开源库-css-to-radium:将CSS转换为React Native友好样式》 在现代Web开发中,CSS是我们构建用户界面不可或缺的...在实际项目中,根据需求选择合适的CSS-in-JS方案,将有助于创建出更加高效、易维护的前端应用。

    前端开源库-css-cursor

    在前端开发中,CSS(Cascading Style Sheets)是用于控制网页元素样式的重要技术,而“cursor”属性则是CSS中的一个重要部分,它定义了用户在鼠标指针位于元素上时的光标形状。"css-cursor"是一个开源库,专注于规范...

    前端项目-css-element-queries.zip

    【标题】"前端项目-css-element-queries.zip" 提供了一个前端开发中的创新解决方案,它涉及到CSS元素查询(Element Queries)这一概念。元素查询是CSS的一个潜在扩展,允许我们根据元素自身的尺寸来应用样式,而不...

    前端开源库-tachyons-build-css

    总的来说,Tachyons是一个强大的前端开源库,它提倡简洁、模块化和高效的CSS编写方式,结合PostCSS的处理能力,为现代Web开发提供了更快、更灵活的设计解决方案。通过理解和掌握Tachyons,开发者可以提升其CSS技能,...

    前端项目-CSS-Mint.zip

    【前端项目-CSS-Mint】是一个轻量级且易于使用的用户界面套件,它专为前端开发者设计,旨在提供简洁、高效的CSS样式解决方案。在这个压缩包`CSS-Mint-master`中,你将找到一系列用于构建现代网页界面的CSS类和组件。...

    前端项目-css-layout.zip

    总的来说,"前端项目-css-layout.zip"中的"yoga-master"项目旨在通过JavaScript实现CSS布局,提供一种可编程、可扩展的布局解决方案,这不仅可以帮助开发者更好地理解和控制布局过程,也可以为没有原生CSS布局支持的...

    前端项目-avalanche-css.zip

    "前端项目-avalanche-css.zip" 提供的正是这样一个解决方案,它是一个名为"Avalanche CSS"的框架,专注于提供超精简、功能强大且响应迅速的CSS网格系统。这个框架基于SASS预处理器和BEM(Block Element Modifier)...

Global site tag (gtag.js) - Google Analytics