【WEB前端开发最佳实践系列】CSS篇
一、有效组织CSS代码
规划组织CSS代码:组织CSS代码文件,所有的CSS都可以分为2类,通用类和业务类。代码的组织应该把通用类和业务类的代码放在不同的目录中。
模块内部的另一样式规则:样式声明的顺序是按照模块中元素的层级关系来处理,从父级元素开始,如果是同一级元素则按照元素在页面的位置从上到下。从坐到右地定义对应的样式。如果多个公用,则先声明公用的样式,然后声明个体样式。
CSS排序实践:
- 对CSS样式排序
- 推荐按样式属性功能分组排序
- 推荐在CSS样式代码编写完成并准备嵌入的时候排序
- 使用如CSScomb等工具排序
二、合理利用权重:提高代码的重用性
CSS的6中基础选择器:
- ID选择器
- 类选择器
- 属性选择器
- 伪类和伪对象选择器
- 标签类型选择器
- 通配符选择器
组合选择器:
- 后代选择器(.reader .title{})
- 子选择器(.reader>.title{})
- 相邻选择器(.reader+.title{})
CSS权重规则:
- 计算选择符中的ID选择器的数量(=a)
- 计算选择符中的类选择器、属性选择器以及伪类选择启动额数量(=b)
- 计算标签类型选择器和伪对象选择启动额数量(=c)
- 忽略全局选择器
基础选择器的优先级:
ID>类|伪类|属性选择>标签选择|伪对象>通配符
操作原则:
- CSS样式中尽量不使用ID选择器
- 减少子选择器的层级
- 使用组合的CSS类选择器
浏览器兼容:http://browserhacks.com/#ie
相对单位:
W3C官方文档注意把尺寸单位分为相对长度单位和绝对长度单位两种。相对长度单位在定义长度时是相对于其他长度的,它又分为字体相对单位和视窗相对单位,字体相对单位包括:em ex ch rem视窗相对单位包括:vw vh vmin vmax。绝对长度单位定义的长度是固定的,使用的是物理度量单位,包括:cm mm in px pt pc 。使用最广泛的就是em px和百分比值。
- px:像素,相当于绝对尺寸
- em:相当于元素上计算的字体大小值
- 百分比:相对于父元素的设置
尺寸设置最佳实践:
尽量设置相对尺寸:如果希望尺寸随着字体的改变而改变则应该使用em,如果期望尺寸随着父元素尺寸的改变而改变则应该使用百分比。设置行高一般使用em,设置高度和宽度一般使用百分比。
只有在预知元素尺寸的情况下才使用绝对尺寸:
使用em设置字体大小
三、CSS优化
减少CSS的代码量
合并相关CSS的规则
定义简洁的属性值
删除无效的定义
兼容在线监测:caniuse.com 、 CSS3 Click Chart、 CSS contents and browser compatibility。CSS3 Clicj Chart提供完整的浏览器兼容代码示例.
添加必要的前缀:Chrome和Safari浏览器使用-webket,Firefox浏览器使用-moz,IE使用-ms,Opera浏览器使用-o.
使用工具来生成CSS属性定义的浏览器前缀:Prefixr。如果希望开发过程中有更多的自主性可以使用Autoprefixer
除上述之外还可以使用:cssFx 、 CSS Agent 、-prefis-free。以及LESS预处理
有效使用HTML5的建议网站:html5please
【WEB前端开发最佳实践系列】CSS篇的更多相关文章
- Web前端开发最佳实践系列文章汇总
Web前端开发最佳实践(1):前端开发概述 Web前端开发最佳实践(2):前端代码重构 Web前端开发最佳实践(3):前端代码和资源的压缩与合并 Web前端开发最佳实践(4):在页面中添加必要的met ...
- 【WEB前端开发最佳实践系列】JavaScript篇
一.养成良好的编码习惯,提高可维护性 1.避免定义全局变量和函数,解决全局变量而导致的代码“污染”最简单的额方法就是把变量和方法封装在一个变量对象上,使其变成对象的属性: var myCurrentA ...
- 【Web前端开发最佳实践系列】前端代码推荐和建议
一.常用的前端文件的组织结构: 1.js (放置JavaScript代码) lib(放置框架JavaScript文件) custom.js 2.css(放置CSS样式代码) lib(放置框架CSS文件 ...
- 【WEB前端开发最佳实践系列】高可读的HTML
一.HTML语义化 HTML5中增加了很多标签都是基于此类原则设计的(article nav header footer).页面标签语义化的优点是使得搜索引擎以及第三方抓包工具等更容易读懂页面 ...
- 【Web前端开发最佳实践系列】标准的HTML代码
一.验证代码是否符合标准 优点: 标准的页面会保证浏览器正确的渲染 网页能更容易被搜索引擎搜索,提高网站的搜索排名 提高网站的易用性 网页更好维护和扩展 常用工具: W3 Validator HTML ...
- Web前端开发最佳实践(9):CSS代码太太乱,重复代码太多?你需要精简CSS代码
前言 提高网站整体加载速度的一个重要手段就是提高代码文件的网络传输速度.之前提到过,所有的代码文件都应该是经过压缩了的,这可提高网络传输速度,提高性能.除了压缩代码之外,精简代码也是一种减小代码文件大 ...
- Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些
前言 CSS样式排序是指按照一定的规则排列CSS样式属性的定义,排序并不会影响CSS样式的功能和性能,只是让代码看起来更加整洁.CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,所以如果不借 ...
- Web前端开发最佳实践(1):前端开发概述
引言 我从07年开始进入博客园,从最开始阅读别人的文章到自己开始尝试表达一些自己对技术的看法.可以说,博客园是我参与技术讨论的一个主要的平台.在这其间,随着接触技术的广度和深度的增加,也写了一些得到了 ...
- web前端开发最佳实践笔记
一.文章开篇 由于最近也比较忙,一方面是忙着公司的事情,另外一方面也是忙着看书和学习,所以没有时间来和大家一起分享知识,现在好了,终于回归博客园的大家庭了,今天我打算来分享一下关于<web前端开 ...
随机推荐
- 简单入门dos程序
--1.关机程序 注意:文件保存为.bat echo 晚安了,宝贝! @echo off shutdown -s -t exist --2.快捷/批量启动程序 title "程序系统启动&q ...
- python shlex 模块
shkex 模块最常见的用法就是其中的split 函数,split 函数提供了和shell 处理命令行参数时一致的分隔方式 代码示例: shlex.split("python -u a.py ...
- vs2013(vs2015) 打开vs2010 找不到此项目类型所基于的应用程序 MVC2 升级 MVC5 不能加载Web项目
Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3 Tools Update ASP.NET MVC 3 can be installed side ...
- java注解自定义使用
Java提供了4种注解,专门负责新注解的创建: @Target: 表示该注解可以用于什么地方,可能的ElementType参数有:CONSTRUCTOR:构造器的声明FIELD:域声明(包括enum实 ...
- 启动zookeeper时出现的问题
zkEnv.cmd @echo off REM Licensed to the Apache Software Foundation (ASF) under one or more REM contr ...
- Java写 插入 选择 冒泡 快排
/** * Created by wushuang on 2014/11/19. */ public class SortTest { @Test public void mainTest() { i ...
- 50.EasyGank妹纸App
50.EasyGank妹纸App 前言 基于MVP模式下 , RxJava+RxAndroid+Retrofit的组合 . RxJava RxAndroid Retrofit Okhttp Gson ...
- middle源码
CREATE TABLE `middle` ( `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, `innserSessionid` VARCHAR(250 ...
- 114自定义UITableViewCell(扩展知识:为UITableViewCell添加动画效果)
关键操作: 效果如下: ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UITableViewCo ...
- Ubuntu下使用dialog制作菜单执行简单脚本
新建test5 #!/bin/bash #using select in the menu temp=$(mktemp -t test.XXXXXX) temp2=$(mktemp -t test2. ...