CSS技术的出现实现结构与表现分离

所属分类: 网页制作 / CSS 阅读数: 2019
收藏 0 赞 0 分享
css的作用
有一次找工作面试,很直接的那个面试官就问了我“CSS的作用是什么?”我当时回答也很搞笑,就说了句,“现在做网站离不开CSS,这个就像鱼离不开水一样”。可能觉得说得也没错。但深层次的想,确实没有回答人家的问题。
记得在很久以前,久得我都记不清楚了。那时我刚接触做网页的时候,要让页面中的某个段落加粗一下,就要添加一个HTML标签并加上相应的属性。要让某个段落对齐,我会在dreamweaver的设计器里打一大堆空格,然后代码里会产生一大堆的  (不好意思,我当时根本不知道)。每次要修改都要经历这样一个过程,光不谈HTML代码的臃肿不说,维护起来更是一个让人崩溃的事。
还好不久CSS就出现了,在这儿要感谢那些前辈们。通过他们的努力上面的问题得到了很好的解决。抛开各个浏览器对CSS解析的不同不说,最起码CSS让页面不再那么难维护了。

我认为CSS的出现具有以下几个重要作用
修饰页面的元素时,避免了对HTML元素的改动(也就是现在流行的一个概念:“语义化”结构与表现分享了)
每个浏览器对HTML的解析都不同。HTML原来设计的时候定位于定义文档的内容,通过使用<p>,<table>,<b>各类标签,所要表达的初衷是“段落”、“表格”之类的信息。但随着各大浏览器的出现,也逐渐将新的HTML标签和属性到HTML规范中,以至于使得创建一个合理的语义化的页面结构变得困难许多。
通过使用CSS样式,可以定义字体、颜色,那么就可以让这些原本不需要的表现形式的标记消失,使合理的语义化标记处于更好的位置,更好的发挥标记的作用。

使我们能够更轻松的控制页面结构和布局
网站重构随着这个概念的出现,也带来了DIV结构的流行,因此也就出现了我们现在口头常说的“DIV+CSS做网站”。单从这个DIV+CSS的叫法来分析,可以了解到CSS已经被大家用在了页面布局上了。
但一个页面不是只有控制DIV就控制了全面,还有很多其它的HTML标记,以前用table布局的页面,一样可以用CSS来控制它。

最根本的也是我们开发人员关心的,提高开发和维护的效率
一个网站,如果有很多相同的结构的文件需要修改,涉及到的工作量是巨大的,但如果通过改CSS来实现页面的灵活变换,只需要修改某个样式就可以上,效率上大大提升。

CSS的基本结构:selector{property:value;}
CSS的语法结构由两部分组成即:选择器和规则。规则也就是花括号中包含的内容。
选择符(selector):主要是告诉浏览器这个样式是用于页面中的哪些对象的,这个对象可以是HTML中的某个标记,也可以是指定的Class或ID。这个后面会详细的说。
声明:声明主要是告诉浏览器怎样去渲染页面中的与选择符相匹配的对象。由属性与属性值组成,冒号相隔、分号结束的声明形式可以一个或者多个的组合而成。
属性:属性主要以一个单词的形式出现,并且都是CSS约定的,不可以自己定义。
属性值:属性值将根据属性改变形式,包括数值,单位等。
说理论一般都不容易让人记住,来举个例子吧。

现在我要将页面中的也就是body下的所有的文字设为红色,且要18号字体,加粗显示,可以这样写:

复制代码
代码如下:

body
{
color:red; /*红色,以后我会专门写一下关于CSS中颜色的表现方面的东西*/
font-size:18px; /*大小18px*/
font-weight:bold; /*加粗,还有一种写法font- weight:700;这两个是相等的*/
}

怎么样很清楚吧,注释也够详尽了,但这样的做法有个弊端就是,注释很详尽,样式一多的时间,文件会很大。在HTTP请求非常奢侈的今天任何一点额外的负担都是要注意的。
所以我们下面可以再简一下,这样:

复制代码
代码如下:

/*对body下所有的文字以红色加粗并以18像素显示*/
body{color:red; font-size:18px; font-weight:bold}

可能有的人认为这没什么,而且会带来阅读上的不便。但你想一下,我们现在做的一般互联网项目有哪个少于十个八个样式表的。不管什么东西在小的时候都无所谓,但一旦一多,就不得不考虑一些性能上的问题(当然关于CSS的执行效率方面的知识也有很多的学问,以后看情况也会介绍)。
这边就压缩CSS给大家两个有用的在线工具,可以作为参考一下,我平时一直在用非常不错:
http://www.cleancss.com/ 和 http://www.cssdrive.com/index.php/main/csscompressor
上面讲了半天,这会总结一下,所有的CSS代码都存在这么几个特点:
每个声明的属性和属性值之间都是用冒号隔开、分号结束。如:font-size:18px;font-weight:bold;
声明都是紧跟着选择符的,并被花括号包含着。如:body{.......}
属性与属性之间的空格可有可无。
更多精彩内容其他人还在看

Opera中国的WEB标准课程

网页制作Webjx文章简介:在这篇文章里,我要向大家介绍我和其他很多人花费数月时间开发的一个课程——Web标准课程,该课程旨在向大家提供Web设计和开发的坚实基础,无论读者是谁,此教程完全免费、可访问,并且不需要预备知识。当然,我主要还
收藏 0 赞 0 分享

CSS样式表渐进增强的基本概念

网页制作Webjx文章简介:如果你挠着头想弄清楚优雅降级和渐进增强的区别,我告诉你,这是视角问题。优雅降级和渐进增强都考虑网站在各种设备的各种浏览器上如何良好运转。两者区别的关键在于它们各自关注的焦点,以及这种关注对工作流程的影响
收藏 0 赞 0 分享

简单介绍Web Developer插件制作网页

网页制作Webjx文章简介:Firefox浏览器是一个良好支持W3C标准的开放源代码的浏览器,拥有Linux/Windows/Mac版本。因为Firefox浏览器良好支持W3C标准,所以使用Firefox来调试网页是非常好的。 Firefox浏览器是
收藏 0 赞 0 分享

CSS布局带来的巨大影响:CSS display属性值

网页制作Webjx文章简介:网页元素应用上那些与表格相关的display属性值后,能够模仿出与表格相同的特性。我将会在该文中给大家演示这种方法给CSS布局带来的巨大影响。 应原书编辑要求,先在文章顶部给出链接:《Everything You
收藏 0 赞 0 分享

用div css模拟表格对角线

这只是探讨一种CSS模拟表格对角线的用法,实际在工作中可能觉得这样做有点小题大作,这不是本主题讨论的重点。如果对此深以为然的朋友,请一笑过之 首先声明: 这只是探讨一种CSS模拟表格对角线的
收藏 0 赞 0 分享

IE Firefox在css中的差别 (部分)

1、单位问题 问题:任何距离的数值ie可以不加单位,ff必须要求写单位(0除外) 解决:写全单位如padding:0px; 2、水平居中 问题:div里的内容,ie默认为center,而ff默认left 解决:mairgin:0px auto; 3、高度问题
收藏 0 赞 0 分享

不用js可以实现信息提示效果

[code] <style> body { font:verdena; font-size:14px; color:#000 } h1{ font:verdena; font-size:22px; color:#000 } h2{ font:verdena;
收藏 0 赞 0 分享

CSS解决未知高度的垂直水平居中自适应问题

今天有人问起,晚上试着写出来,供参考; 以下代码兼容主流浏览器IE6、IE7、Firefox、Opera。 从最简单的开始………… 一、如何让一个DIV水平居中? 这个简单不作过多说明! [code] <st
收藏 0 赞 0 分享

CSS cursor 属性 -- 鼠标指针样式效果

取值: [ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize |
收藏 0 赞 0 分享

css 简单区别ie6,ie7,firefox的写法

同一样式里可以这样 [code] margin:17px; FF +margin:17px; IE6 IE7 _margin:17px; IE6 [/code] 按这个顺序,刚好区分开三个浏览器
收藏 0 赞 0 分享
查看更多