CSS知识

CSS+DIV的优点


  采用CSS+DIV进行网页重构相对与传统的TABLE网页布局而具有以下3个显著优势:


  1:表现和内容相分离


  将设计部分剥离出来放在一个独立样式文件中,HTML文件中只存放文本信息。这样的页面对搜索引擎更加友好。


  2:提高页面浏览速度


  对于同一个页面视觉效果,采用CSS+DIV重构的页面容量要比TABLE编码的页面文件容量小得多,前者一般只有后者的1/2大小。浏览器就不用去编译大量冗长的标签。


  3:易于维护和改版


  你只要简单的修改几个CSS文件就可以重新设计整个网站的页面。



 


  什么是Cascading Style Sheets(层叠样式表)


  * CSS是Cascading Style Sheets(层叠样式表)的简称.


  * CSS语言是一种标记语言,它不需要编译,可以直接由浏览器执行(属于浏览器解释型语言).


  * 在标准网页设计中CSS负责网页内容(XHTML)的表现.


  * CSS文件也可以说是一个文本文件,它包含了一些CSS标记,CSS文件必须使用css为文件名后缀.


  * 可以通过简单的更改CSS文件,改变网页的整体表现形式,可以减少我们的工作量,所以她是每一个网页设计人员的必修课.


  * CSS是由W3C的CSS工作组产生和维护的.
如何将样式表加入到网页
  可以用以下三种方式将样式表加入您的网页。而最接近目标的样式定义优先权越高。高优先权样式将继承低优先权样式的未重叠定义但覆盖重叠的定义。例外请参阅 !important 声明。


  链入外部样式表文件 (Linking to a Style Sheet)


  你可以先建立外部样式表文件(.css),然后使用HTML的link对象。示例如下:


  <head>


  <title>文档标题</title>


  <link rel=stylesheet href="http://www.dhtmlet.com/dhtmlet.css" type="text/css">


  </head>


  而在XML中,你应该如下例所示在声明区中加入:


  <? xml-stylesheet type="text/css" href="http://www.dhtmlet.com/dhtmlet.css" ?>


  定义内部样式块对象 (Embedding a Style Block)


  你可以在你的HTML文档的<HTML>和<BODY>标记之间插入一个<STYLE>...</STYLE>块对象。 定义方式请参阅样式表语法。示例如下:


  <html>


  <head>


  <title>文档标题</title>


  <style type="text/css">


  <!--


  body {font: 10pt "Arial"}


  h1 {font: 15pt/17pt "Arial"; font-weight: bold; color: maroon}


  h2 {font: 13pt/15pt "Arial"; font-weight: bold; color: blue}


  p {font: 10pt/12pt "Arial"; color: black}


  -->


  </style>


  </head>


  <body>


  请注意,这里将style对象的type属性设置为"text/css",是允许不支持这类型的浏览器忽略样式表单。


  内联定义 (Inline Styles)


  内联定义即是在对象的标记内使用对象的style属性定义适用其的样式表属性。示例如下:


  这一行被增加了左右的外补丁


 网页设计中常用的CSS属性


  文字或元素的颜色 color


  背景颜色 background-color


  背景图像 background-image


  字体 font-family


  文字大小 font-size


  列表样式 list


  鼠标样式 cursor


  边框样式 border


  内补白 padding


  外边距 margin


  等...



  网页设计中常用的CSS实例代码


  1、<acronym title=”输入要提示的文字” style=”cursor:help;”>文字</acronym>用鼠标放在前面的文字上看效果。这个效果在国外的很多网站都可以看到,而国内的少又少。


  2、图片设为半透明:.halfalpha { background-color:#000000;filter:Alpha(Opacity=50)}在IE6及IE5测试通过,FF未通过,这是因为这个样式是IE私有的东西;


  3、FLASH透明:选中swf,打开原代码窗口,在</object>前输入<param name=”wmode” value=”transparent”> 以上是针对IE的代码。


  针对FIREFOX 给<embed> 标签也增加类似参数wmode=”transparent”


  4、在做网页设计时常用到把鼠标放在图片上会出现图片变亮的效果,可以用图片替换的技巧,也可以用如下的滤镜:


  .pictures img {


  filter: alpha(opacity=45); }


  .pictures a:hover img {


  filter: alpha(opacity=90); }


  5、中文字两端对齐:text-align:justify;text-justify:inter-ideograph;


  6、固定宽度汉字截断:overflow:hidden;text-overflow:ellipsis;white-space:nowrap;(不过只能处理文字在一行上的截断,不能处理多行。)(IE5以上)FF不能,它只隐藏。


  7、固定宽度汉字(词)折行:table-layout:fixed; word-break:break-all;(IE5以上)FF不能。
CSS的语法:
  CSS的定义是由三个部分构成:


  选择符(selector),属性(properties)和属性的取值(value)。


  语法: selector {property: value} (选择符 {属性:值})


  说明:


  ·选择符是可以是多种形式,一般是你要定义样式的HTML标记,例如BODY、P、TABLE……,你可以通过此方法定义它的属性和值,属性和值要用冒号隔开:


  例子:body {color: black},此例的效果是使页面中的文字为黑色。


  ·如果属性的值是多个单词组成,必须在值上加引号,比如字体的名称经常是几个单词的组合:


  例子:p {font-family: "sans serif"} (定义段落字体为sans serif)


  · 如果需要对一个选择符指定多个属性时,我们使用分号将所有的属性和值分开:


  例子:p {text-align: center; color: red} (段落居中排列;并且段落中的文字为红色)


  2. 选择符组


  你可以把相同属性和值的选择符组合起来书写,用逗号将选择符分开,这样可以减少样式重复定义:


  h1, h2, h3, h4, h5, h6 { color: green } (这个组里包括所有的标题元素,每个标题元素的文字都为绿色)


  p, table{ font-size: 9pt } (段落和表格里的文字尺寸为9号字)


  效果完全等效于:


  p { font-size: 9pt }


  table { font-size: 9pt }


  3. 类选择符


  用类选择符你能够把相同的元素分类定义不同的样式,定义类选择符时,在自定类的名称前面加一个点号。假如你想要两个不同的段落,一个段落向右对齐,一个段落居中,你可以先定义两个类:


  p.right {text-align: right}


  p.center {text-align: center}


  然后用不在不同的段落里,只要在HTML标记里加入你定义的class参数:


  这个段落向右对齐的


  这个段落是居中排列的


  类选择符还有一种用法,在选择符中省略HTML标记名,这样可以把几个不同的元素定义成相同的样式:


  .center {text-align: center} (定义.center的类选择符为文字居中排列)


  这样的类可以被应用到任何元素上。下面我们使h1元素(标题1)和p元素(段落)都归为“center”类,这使两个元素的样式都跟随“.center”这个类选择符:


  <h1 class="center">这个标题是居中排列的</h1>


  这个段落也是居中排列的


  注意:这种省略HTML标记的类选择符是我们经后最常用的CSS方法,使用这种方法,我们可以很方便的在任意元素上套用预先定义好的类样式。


  4. ID选择符


  在HTML页面中ID参数指定了某个单一元素,ID选择符是用来对这个单一元素定义单独的样式。


  ID选择符的应用和类选择符类似,只要把CLASS换成ID即可。将上例中类用ID替代,ID只能在一个页面中出现一次,而class可以多次运用.


  这个段落向右对齐


  定义ID选择符要在ID名称前加上一个“#”号。和类选择符相同,定义ID选择符的属性也有两种方法。下面这个例子,ID属性将匹配所有id="intro"的元素:


  #intro


  {


  font-size:110%;


  font-weight:bold;


  color:#0000ff;


  background-color:transparent


  } (字体尺寸为默认尺寸的110%;粗体;蓝色;背景颜色透明)


  下面这个例子,ID属性只匹配id="intro"的段落元素:


  p#intro


  {


  font-size:110%;


  font-weight:bold;


  color:#0000ff;


  background-color:transparent


  }


  注意:ID选择符局限性很大,只能单独定义某个元素的样式,一般只在特殊情况下使用。


  5. 包含选择符


  可以单独对某种元素包含关系定义的样式表,元素1里包含元素2,这种方式只对在元素1里的元素2定义,对单独的元素1或元素2无定义,例如:


  table a


  {


  font-size: 12px


  }


  在表格内的链接改变了样式,文字大小为12像素,而表格外的链接的文字仍为默认大小。


  6. 样式表的层叠性


  层叠性就是继承性,样式表的继承规则是外部的元素样式会保留下来继承给这个元素所包含的其他元素。事实上,所有在元素中嵌套的元素都会继承外层元素指定的属性值,有时会把很多层嵌套的样式叠加在一起,除非另外更改。例如在DIV标记中嵌套P标记:


  div { color: red; font-size:9pt}


  ……


  这个段落的文字为红色9号字


  (P元素里的内容会继承DIV定义的属性)


  注意:有些情况下内部选择符不继承周围选择符的值,但理论上这些都是特殊的。例如,上边界属性值是不会继承的,直觉上,一个段落不会同文档BODY一样的上边界值。


  另外,当样式表继承遇到冲突时,总是以最后定义的样式为准。如果上例中定义了P的颜色:


  div { color: red; font-size:9pt}


  p {color: blue}


  ……


  这个段落的文字为蓝色9号字


  我们可以看到段落里的文字大小为9号字是继承div属性的,而color属性则依照最后定义的。


  不同的选择符定义相同的元素时,要考虑到不同的选择符之间的优先级。ID选择符,类选择符和HTML标记选择符,因为ID选择符是最后加上元素上的,所以优先级最高,其次是类选择符。如果想超越这三者之间的关系,可以用!important提升样式表的优先权,例如:


  p { color: #FF0000!important }


  .blue { color: #0000FF}


  #id1 { color: #FFFF00}


  我们同时对页面中的一个段落加上这三种样式,它最后会依照被!important申明的HTML标记选择符样式为红色文字。如果去掉!important,则依照优先权最高的ID选择符为黄色文字。


  7. 注释:/* ... */


  你可以在CSS中插入注释来说明你代码的意思,注释有利于你或别人以后编辑和更改代码时理解代码的含义。在浏览器中,注释是不显示的。CSS注释以"/*" 开头,以"*/" 结尾,如下:


  /* 定义段落样式表 */


  p


  {


  text-align: center; /* 文本居中排列 */


  color: black; /* 文字为黑色 */


  font-family: arial /* 字体为arial */


  }


  css可以用任何写文本的工具进行开发,如文本工具,dreamweaver开发


  css也是一种语言,这种语言要和html或者xhtml语言相结合才起作用,


  css简单来说就是用来美化网页用的,用css语言来控制网页的外观


  举个例子


  xhtml部分:


  <ul>


  <li>主页</li>


  <li>留言</li>


  <li>论坛</li>


  </ul>


  此时在页面上的表达形式是一个竖向列表,这样不够美观,


  可以css来改善这个列表为一个横向导航条和超链接


  css部分:


  ul{list-style:none;margin:0px;padding:0px}


  ul li{margin:0px;padding:0px;float:left;}


  ul li a{display:block;width:100px;height:30px;background:#efefef;color:#333;text-decoration:none;text-align:center}


  ul li a:hover{background:#333;color:#fff;}


  添加上css后,这个列表变成横向的导航条了,超级链接是淡色背景,灰色字体,没有下划线,高度是30像素,宽度是100像素


  当我们鼠标经过这个超级链接时候,变成灰色背景,白色字体


  在主页制作时采用CSS技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。


  只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。


  它的作用可以达到:


  (1)在几乎所有的浏览器上都可以使用。


  (2)以前一些非得通过图片转换实现的功能,现在只要用CSS就可以轻松实现,从而更快地下载页面。


  (3)使页面的字体变得更漂亮,更容易编排,使页面真正赏心悦目。


  (4)你可以轻松地控制页面的布局 。


  (5)你可以将许多网页的风格格式同时更新,不用再一页一页地更新了。你可以将站点上所有的网页风格都使用一个CSS文件进行控制,只要修改这个CSS文件中相应的行,那么整个站点的所有页面都会随之发生变动。


  想一想,没有使用CSS前我们是如何控制字体的颜色和大小以及所使用的字体的?我们一般使用HTML标签来实现,代码非常烦琐。


  很难想象,如果在一个页面里需要频繁地更替字体的颜色大小,最终生成的HTML代码的长度一定臃肿不堪。


  说实话,CSS就是为了简化这样的工作诞生的,当然其功能决非这么简单。


  CSS是通过对页面结构的风格控制的思想,控制整个页面的风格的。


  式样单放在页面中,通过浏览器的解释执行,是完全的文本,任何懂得HTML的人都可以掌握,非常的容易。甚至对一些非常老的浏览器,也不会产生页面混乱的现象。


  CSS的一大优点是它的图片传输速度比较完全的HTML网页要快一点。


  关于CSS的参考资料,网上有很多讨论CSS的社区,但是要系统学习CSS,选择一本好书还是非常有必要的,推荐阅读CSS三剑客之一《CSS实战手册》


  CSS:


  Chinese,Surface-to-Surface


  中国面对面导弹 简称CSS-N


  CSS具有两面性。就像它在格式化文本、导航栏、图片以及其他小小的网页方面很棒一样,当你准备好布局完整的网页时,它真正可怕的一面也展现出来了。


  CSS布局有两种风格——绝对定位和浮动。绝对定位让你把一个元素以像素级的精确性定位在网页的任何位置——或者理论上是这样。这种整体控制令人兴奋,就如你将在下一章中所看到的,但是实际上很难实现。这就是大量网页使用基于浮动的布局的原因,也是本章的主题。


  



  CSS样式解决了一个普遍的问题


  HTML 标签原本被设计为用于定义文档内容。通过使用 <h1>、、 这样的标签,HTML 的初衷是表达“这是标题”、“这是段落”、“这是表格”之类的信息。而文档布局希望通过浏览器来完成,而不使用任何的格式化标签。


  由于两种主要的浏览器(Netscape 和 Internet Explorer)不断地将新的 HTML 标签和属性(比如字体标签和颜色属性)添加到 HTML 规范中,创建文档内容清晰地独立于文档表现层的站点变得越来越困难。


  为了解决这个问题,万维网联盟(W3C),这个非营利的标准化联盟,肩负起了 HTML 标准化的使命,并在 HTML 4.0 之外创造出样式(Style)。


  所有的主流浏览器均支持层叠样式表。


CSS设计网页的经验
  相信对大家是有一些帮助与启发的。有些习惯显得尤为重要,今天与您分享六个CSS习惯。因为习惯其实是会变的,所以只能写“最近”的。这些习惯都跟技术无关,如果不遵守,也不会出错。但是我觉得良好的习惯会体现一个人的素质。


  一、用class_name方式写类名。


  以前喜欢用class-name写,不过好像两样也没什么差别。但我比较反对用className写类名,因为始终对浏览器大小写敏感的问题抱有怀疑态度。但是id我会写成驼峰式,理由见下一条。


  二、样式都用class而不用id。


  有三个理由,一,id不可以重复,所以用class的话,可以肆无忌惮的用无数次。二,id的优先级太高,若是写了一个#page_content a {color:#f60} ,那你完蛋了,里面要改链接颜色,都必须加上#page_content才能越过这个优先级。三,id专门留给JS用,这样才符合表现与行为分离的原则。所以id我用驼峰式,也是为了体现这一点。


  三、margin和padding,尽量省略最后一个值。


  比如margin: 20px 10px 5px 10px; ,左右值是一样的,就应该省略掉最后一个值,写成margin: 20px 10px 5px; 这样到时候要改左右间距,改一个就好,免得改漏了。其实这个问题虽然很细小,但是可以看得出对margin四个值省略规则的熟练程度。


  四、按标准写CSS,再针对特定浏览器作hack。


  比如,通常我们会遇到如下的写法:


  .side_col {


  float:left;


  display: inline;


  margin-left: 20px;


  }


  而我的写法会是:


  .side_col {


  float: left;


  margin-left: 20px;


  }


  * .side_col {


  _display:inline; /*hacked for IE 6*/


  }


  看明白了么?不应该把hack混在一起,也不应该用一种侥幸的心态,觉得float:left与display:inline写在一起没事。嗯,它们俩确实没事儿,但是其他的hack就不一定了。而且这里写display:inline纯粹就是为了解决IE6的bug,所以前面加上下划线,以明确的表达你的目的。


  另外不要以为凡是hack都是为IE准备的。其实有些hack是针对其他浏览器的,比如FF。这就要求你对CSS标准的熟练掌握,能够自信的判断哪些渲染是遵守标准,哪些违反标准的。


  此外,我喜欢在hack前面加上星号,其实这纯粹是个人习惯了。可能过段时间我就不这么用了,呵呵。


  五、记得加空格。


  .class_name { property: value; } 。我个人觉得合理的空格是优秀代码的一个指标。按英文的习惯,标点后面都应该带空格(如果你写This is a pen.That’s a pencil.句点后面不加空格, word里面会有错误提示)。所以既然CSS是外国人发明的,应该按他们的格式来写。类似的,在JS里var a = b + c;里面的空格也应该都要加。


  六、适当的层叠(Cascading)或缩进以定义CSS的“作用域”。


  啥叫“CSS的作用域”?其实并不是所有的样式都在所有的地方使用。有的样式只用在某一块里面,比如“导航栏”里的“搜索框”,可能应该写成:


  .nav .search {}


  而有时候用层叠会增加代码优先级,所以也可以用缩进来“象征性的”体现作用域。像这样:


  .login_box {}


  .forgot_pwd{}


  缩进,是为了表示它们对应的标签具有父子关系。但这样只能起到一个提醒的作用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值