五个小窍门帮你写出更好的CSS代码
作者:ximicc 来源:ximicc博客 发布时间:2009-06-09 12:42:00
当然,每个人都可以编写CSS代码,甚至你现在已经让它为你的项目工作了。但是CSS还可以更好吗?开始用这5个Tips改进你的CSS吧!
1.合理的使用重置
首先,很认真的告诉你,总是要重置某些分类。无论你是使用 Eric Meyer Reset、YUI Reset 或者你自己编写的重置代码,只要使用就对了。
它能很简单的移除所有元素的填充(padding)和边距(margin):
html, body, div, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, blockquote,
pre, form, fieldset, table, th, td { margin: 0; padding: 0; }
Eric Meyer Reset 和 YUI Reset 都是非常强大的,但是对于我而言,它们走的太远了。我觉得你最终需要重置一切,然后重新定义所有元素的属性。这就是为什么Eric Meyer推荐更有效的使用重置样式表,而你不要只是使用他的重置样式表,将它拖放到你的项目中。调整它的重置样式表,建立属于自己的重置样式表。
噢,请停止使用:
* { margin: 0; padding: 0; }
花更多的时间去制作它,当你移除了填充(padding)你认为单选按钮会发生什么变化?表单元素有时能够做些时髦的事情,所以最有效的方式就是将他们独立。
2.属性繁多时进行排序
一个小的测试,这个例子就是要让你思考如何更快的找到右边距属性:
Example#1
div#header h1 {
z-index: 101;
color: #000;
position: relative;
line-height: 24px;
margin-right: 48px;
border-bottom: 1px solid #dedede;
font-size: 18px;
}
Example#2
div#header h1 {
border-bottom: 1px solid #dedede;
color: #000;
font-size: 18px;
line-height: 24px;
margin-right: 48px;
position: relative;
z-index: 101;
}
你不能告诉我Example#2不能更快的找到右边距属性。根据字母排序你的元素属性。一致的创建你的CSS,将帮助你节省花费在寻找一个特殊属性的时间。
我知道一些人用这样的方法去组织代码,其他人又用另一种方法去组织,但是在我的公司,我们协商一致做出决定,所有的代码都将按照字母排序来组织。通过这样组织代码与其他人协同工作一定是有帮助的。当我碰到属性没有按照字母排序的层叠样式表,我每一次都会退缩。


猜你喜欢
- //前一阵子以为学习需要就在自己的本本上装了个mysql数据库。今天想把结合jsp做的项目拿到学校机器上用用,但发现数据库数据怎么迁移,首先
- 一、JDBC概述JDBC全称Java Database Connectivity,它是一个独立于特定数据库管理系统、通用的SQL数据库存取和
- 前言在设计爬虫项目的时候,首先要在脑内明确人工浏览页面获得图片时的步骤一般地,我们去网上批量打开壁纸的时候一般操作如下:1、打开壁纸网页2、
- 一、MatplotlibMatplotlib是Python中众多数据可视化库的鼻祖,其设计风格与20世纪80年代设计的商业化程序语言MATL
- 核心代码:#!/usr/bin/python#-*- coding:gbk -*-#设置源文件输出格式import sysimport ge
- 一、前言因为最近刚好被问到这个问题,但是自己当时特别懵逼,导致没有做出来。所以下来后自己Google了很多IoU的博客,但是很多博客要么过于
- 数据库--用户表CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_
- 前言前面两篇文章介绍了数据结构和算法的一些前置内容,这篇文章开始正式学习常见的数据结构,首先学习的就是栈(Stack)。什么是栈?栈全称为堆
- JAN-1(January) FEB-2(February) MAR-3(March)APR-4(April) MAY-5(Ma
- Python基本输入和输出1.input输入函数input函数:获取用户输入,保存成一个字符串。>>> name = in
- Python程序可以调用一组基本的函数(即内建函数),比如print()、input()和len()等函数。Python本身也内置一组模块(
- 实例如下:/** * 数字格式转换成千分位 *@param{Object}num */function commafy(num){ &nbs
- 什么是跨域跨域是浏览器的专用概念,指js代码访问自己来源站点之外的站点。比如A站点网页中的js代码,请求了B站点的数据,就是跨域。A和B要想
- 图像(包括动图)是传递信息的一种高效方式,往往能增强表象、记忆与思维等方面的反应强度。所谓一图胜千言,说的就是这个道理。今天为大家整理了十张
- 目录一、前端控制1、在router.js文件(把静态路由和动态路由分别写在router.js)2、store/permission.js(在
- Python2.7已于2020年1月1日开始停用,之前RF做自动化都是基于Python2的版本。没办法,跟随时代的脚步,我们也不得不升级以应
- 本文实例讲述了JavaScript实现的反序列化json字符串操作。分享给大家供大家参考,具体如下:JavaScript中如何反序列化jso
- 按理说unittest 中是不应该测试那种外部依赖很强的用例,但是呢,有时候有些接口总是调试好之后怕忘了,就写了一些简单的测试case,想要
- 1、概述在 Go 里有很多种定时器的使用方法,像常规的 Timer、Ticker 对象,以及经常会看到的 time.After(d Dura
- 一般TensorFlow中扩展维度可以使用tf.expand_dims()。近来发现另一种可以直接运用取数据操作符[]就能扩展维度的方法。用