如何用CSS进行开发

翻译自:How to Develop with CSS

很多web开发人员都知道CSS,但是他们很可能认为使用CSS的应用代码就是这样的:

<p>
   <span style="font-weight:bold;font-family:Arial">Welcome!</span>
</p>

或者是这样的:

<table class="middle grey"><tr>
   <td class="darkTopHeader">Item #</td>
   <td class="darkTopHeader">Qty</td>
   <td class="darkTopHeader">Cost</td>
</tr><tr>
   <td class="rowHeaderDrk">1341</td>
   <td class="cellFieldDrk">3</td>
   <td class="cellFieldDrk">$15</td>
</tr><tr>
   <td class="rowHeaderLt">1913</td>
   <td class="cellFieldLt">2</td>
   <td class="cellFieldLt">$17</td>
</tr><tr>
   <td class="rowHeaderDrk">1231</td>
   <td class="cellFieldDrk">1</td>
   <td class="cellFieldDrk">$5</td>
</tr></table>

然而,上面的代码不过是“技术上”的CSS,如果仅是这么使用CSS,那么就失去了相当多的用好的机会。(如果上面的代码对你而言是ok的,那么请继续阅读下去,看看怎么能让你写代码更容易,写出的代码更优秀)

这篇文章是关于什么的

本文不依赖于高级的CSS3选择器(selector,或者不标准或者在写作本文时还不被所有浏览器很好地支持)。本文也不讨论高级CSS2选择器,那些已经标准化了但是有时也不被主流浏览器支持的selector。

本文不是关于如何格式化你的CSS或者HTML的参考手册,也不试图告诉你怎样用CSS实现切边布局。(关于布局的例子请参考Glish或者css/edge

本文假定你了解基本的CSS1(什么是选择器,什么是复合选择与后代选择,值如何传递,等等),并提供一系列的指导帮你更恰当地使用CSS进行开发。

内容

1. 让你的站点更容易开发
        1.1 格式与内容分离
        1.2 使用语义(semantic)选择器

2. 尽可能减少HTML标签
       2.1 语义(semantic)HTML
       2.2 上下文选择器

3. 尽可能减少CSS
        3.1 合理利用格式继承
        3.2 合并逻辑相关的格式
        3.3 页面间格式重用

4. 锦囊
        4.1 用em或者%指定font-size
        4.2 用em指定距离
        4.3 不要再使用切片的GIF图
        4.4 把CSS放在单独的文件中
        4.5 IDs必须唯一
        4.6 <br>标签不是你的朋友
        4.7 不要用table进行布局

让你的站点更容易开发

格式与内容分离

CSS的一大好处就是,它能让你编辑一小处就可以改变web页面多处内容的显示方式,或者不用更改每个页面就可以改变全站的格式。把格式代码放在HTML页面里的方式是在绝大多数情况下应当避免的,因为他们总是会覆盖样式表中定义的格式,这样你就需要去直接修改HTML页面的代码来达到目的。

<p style="margin-top:1em">
    CSS applied through the style tag
    should be strongly avoided
</p>
<style type="text/css">
    p.introParagraph  { margin-top:1em }
</style>
...
<p class="introParagraph">
    When it must be applied directly, style should
    be specified through class or id attributes
</p>

如果你不是特意要通过style=”…”指定布局,请考虑是不是有一种更好的方式可以把style抽象成一个selector。

(内嵌的style在测试布局的时候是非常有用的……比如把style=”border:1px solid red”放在一个特定元素上以在页面上高亮显示它所在的位置)

使用语义(semantic)选择器

“语义”的大致的意思是“传达的含义和信息”。

在上面的例子中,初学者可能会取像spaceAbove这样的class名字。这样的对内嵌style的替换方式,实际上起不到内容和显示分离的效果。

试想,如果有开发人员已经这么做了。但是他之后觉得段落的第一行不应该往下,而应该缩进并用斜体表示,所以把CSS改成这样:

<style type="text/css">
    p.spaceAbove  { margin-left:2em; font-style:italic }
</style>
...
<p class="spaceAbove">
    This paragraph doesn‘t actually have any
    space above it at all...but it is italic
    and indented!
</p>

这就会导致class名字令人费解——名字是这样,实际是另外的情况——并且无法提供文档应该用那个class的信息。

不要基于你假定的显示方式来命名一个class。总是用class名来指代内容(译者注:比如 class的名字取为buttonSubmit,来表示Submit按钮的style)。

尽可能减少HTML标签

代码越多,要维护的代码也就越多。下面介绍的方式会帮你减少添加style所需的工作。

未完待续。For more please go to : http://phrogz.net/CSS/HowToDevelopWithCSS.html

时间: 2024-11-05 13:28:52

如何用CSS进行开发的相关文章

关于量产型页面的css样式开发心得

量产型页面? 为了方便讨论,有必要就什么是"量产型页面"达成一致.这里所说的量产型页面是指采用通用模块和组件拼凑出来的页面,典型的如:网站管理员后台的页面,这些页面大多是由.ui-box.ui-form.ui-data.ui-btn等通用的模块和组件组装出来的. 量产型页面一般数量较多,而且还会随着网站功能的扩展而不断增加,所以对于这类页面的开发应该优先考虑的是开发效率和文件的组织管理.本文专门就开发此类页面时关于CSS方面的处理做一下心得分享. 我们知道,给元素应用样式无非就只有两种

如何用css画出三角形

看到有面试题里会有问到如何用css画出三角形 众所周知好多图形都可以拆分成三角形,所以说会了画三角形就可以画出很多有意思的形状 画出三角形的原理是调整border(边框)的四个方向的宽度,线条样式以及颜色. 如果你将宽度调的足够大,改变不同方向的颜色,你就可以发现盒模型的border是四个梯形一样的线条. 这个时候如果将盒模型内部的height,width调为0px,则三角形就形成了. 1 border:100px solid transparent //边框100px,实线,透明颜色,下面三行

一张png图片 上面有多个图标,如何用CSS准确的知道其中某个图片的坐标

一张png图片 上面有多个图标,如何用CSS准确的知道其中某个图片的坐标 ,如下图 可以使用  background background:url(images/xx.png) 40px 10px no-repeat;

CSS高效开发实战:CSS 3、LESS、SASS、Bootstrap、Foundation --读书笔记(1)设定背景图

技术的新发展,除计算机可以接入互联网之外,平板电脑.智能手机.智能电视等其他设备均可访问互联网.在多设备时代,构建多屏体验也不是听说的那么难. 但是这也增加了学习CSS的难度?不知道如何上手,只懂一点基础的CSS语法,在移动互联时代,难道我们就这样落伍了??好好学习吧,看完<CSS高效开发实战:CSS 3.LESS.SASS.Bootstrap.Foundation>,给自己的未来打气! 5.1  设定背景图的大小 在CSS 3出现之前,背景图片的尺寸是由图片的实际尺寸决定的.如果同样的图片要

【CSS】如何用css做一个爱心

摘要:HTML的标签都比较简单,入门非常的迅速,但是CSS是一个需要我们深度挖掘的东西,里面的很多样式属性掌握几个常用的便可以实现很好看的效果,下面我便教大家如何用CSS做一个爱心. 前期预备知识: 明白正方形的画法. 明白圆形的画法. 明白什么是定位. 明白怎么旋转. 话不多说,先教大家怎么用css画一个圆形. .disc1{ width: 100px; height: 100px; border:1px solid red; background-color: red; margin:300

网页中如何用 CSS 设置打印分页符

Word 中按 Ctrl + Enter 创建一个分页符,方便打印,其实网页中也可以,用 CSS 的 page-break-after:always;. <p>第 1 页</p><div style="page-break-after:always;"></div><p>第 2 页</p><div style="page-break-after:always;"></div&g

公司的一个面试题:如何用css让一个容器水平垂直居中?

原文:公司的一个面试题:如何用css让一个容器水平垂直居中? <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>demo</title> </head> <body> <style type="text/css"> .div1{ width: 100px; height: 100px; bo

如何用CSS控制字的间距

如何用CSS控制字的间距: 有时候默认的字间距并不能够满足实际需要,可能需要进行人为的控制,下面就简单介绍一下如何实现此效果. 使用letter-spacing属性即可以设置字间距.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com

HTML+CSS项目开发总结

好几天没更新博客了,刚实战完一个HTML+CSS的简单项目.经过几天的摸索,发现收益良多.之前只是单纯得写demo,看知识点,没有亲自实战项目.但实战过后才会了解,如何才能更好地提升自己的技术.针对这次项目开发,我总结了以下内容: 一.技术总结 1.公共样式的设定 在开始项目之前,我们可以先大体了解一下项目中每个页面的内容,比如字体样式,段落结构,文字大小等.我们可以针对这些内容来设定一个固定的样式文件.在开发中    就可以直接引入此文件,而无需再重复敲CSS代码. /*基本样式*/ * {