标签归档:CSS

CSS实用教程(2)

从基础到精通:CSS实用教程(三)
  十二.控制BOX的样式
  样式表规定了一个容器BOX,它将要储存一个对象的所有可操作的样式。包括了对象本身、边框空白、对象边框、对象间隙四个方面。

  为了大家更好地理解这些属性的意义,以及互相之间的关系,请看下面这个图示:

  1.边框空白(MARGIN)
  如图所示,位于BOX模型的最外层,包括四项属性。
  格式分别如下:
  ·margin-top:顶部空白距离
  ·margin-right:右边空白距离
  ·margin-bottom:底部空白距离
  ·margin-left:左边空白距离
  空白的距离可以用带长度单位的数字表示。
  如果使用上述属性的简化方式margin,可以在其后连续加上四个带长度单位的数字,来分别表示margin-top、margin-right、margin-bottom、margin-left,每个数字中间要用空格分隔。
  2.对象边框(BORDER)
  如图所示,位于边框空白和对象空隙之间,包括了七项属性。
  格式分别如下:
  ·border-top:顶边框宽度
  ·border-right:右边框宽度
  ·border-bottom:底边框宽度
  ·border-left:左边框宽度
  ·border-width:所有边框宽度
  ·border-color:边框颜色
  ·border-style:边框样式参数
  其中border-width可以一次性设置所有的边框宽度,border-color同时设置四面边框的颜色时,可以连续写上四种颜色,并用空格分隔。上述连续设置的边框都是按border-top、border-right、border-bottom、border-left的顺序。
  Border-style相对别的属性而言稍稍复杂些,因为它还包括了多个边框样式的参数:
  ·none:无边框。
  ·dotted:边框为点线。
  ·dashed:边框为长短线。
  ·solid:边框为实线。
  ·double:边框为双线。
  ·groove:根据color属性显示不同效果的3D边框
  ·ridge:根据color属性显示不同效果的3D边框
  ·inset:根据color属性显示不同效果的3D边框
  ·outset:根据color属性显示不同效果的3D边框
  3.对象间隙(PADDING)
  如图所示,位于对象边框和对象之间,包括了四项属性。
  基本格式如下:
  ·padding-top:顶部间隙
  ·padding-right:右边间隙
  ·padding-bottom:底部间隙
  ·padding-left:左边间隙
  和MARGIN类似,PADDING也可以用padding一次性设置所有的对象间隙,格式也和MARGIN相似,不再一一列举了。
  十三.显示控制样式
  基本格式如下:
  display: 参数
  参数取值范围:
  ·block(默认):在对象前后都换行
  ·inline:在对象前后都不换行
  ·list-item:在对象前后都换行,增加了项目符号
  ·none:无显示
  十四.空白控制样式
  基本格式如下:
  空白属性决定如何处理元素内的空格。
  white-space: 参数
  参数取值范围:
  normal:把多个空格替换为一个来显示
  pre:忠实地按输入显示空格
  nowrap:禁止换行
  但要注意的是,write-space也是一个块级属性。
  –系列完–
CSS样式表:详细介绍IE7新支持的选择器

  现在IE7已经推出一段时间并且渗透到用户当中,不用等太久我们就可以在页面上使用更高级的CSS。两个最有用的项目将是 Child子和Adjacent Sibling相邻兄弟选择符。现在已是时候使用它们制作网页,并且更深入研究它们。
  注意,选择器包括现行的符号,“>”,“+”和空格(后代选择符),涉及到子选择器,相邻兄弟选择器,后代选择器,统称为选择符。
  一个较好的方法
  在我们研究选择符之前,弄清楚他们的不同和为什么它们是好东西的原因是个不错的主意。原因很简单,它减少网页的“class-itis”弊病。主要原因就是“class-itis”在目前网页中非常普遍,直到现在,我们拥有了为建立配合CSS选择器而存在而且支持完美的后代选择符,即两个选择器之间空格。
  当使用后代选择符,右边的一个元素选择器是被选择的,不管左边的元素选择器标签有几个。举例,p a{color:red;},意思是段落里面的所有链接都是红色。这非常有用,也是一类相当广泛的选择组合。
  代表性的class-itis的级数像下面一样。首先,你使用一个非常好的干净的html结构运用简单的CSS样式构建标题、段落等等。然后有人告诉你每个div块第一段里文本颜色需要红色。你不能仅改变目标段落的样式,因为那可能影响全部,所以你被迫命名一个特殊class应用在第一段。
  于是数十次相同的要求在后面继续,结果就形成了class-itis现象。为什么说这样是糟糕有害的?因为这和font标签比起来没什么区别。当然,classes允许无穷的花样,但是紧随其后就是无穷的混乱,或可能更快胜于随后。
  举个例子,假设你已经给所有第一段加上class属性,而且一切都好。现在你被告知,首两段需要样式,不仅是第一个。为使用正确class完成目的,你必须确信第二段的每个都有专用的class。最后,这样的习惯导致源代码里到处都是class,感觉像新旧两个样式在打斗冲突,让人头痛。
  如果我们只针对CSS讲这样未必不好,实际上“运用下列样式到每个div块第一段和第二段里面。”这样的情况发生了,最新的CSS选择符允许我们耍点小聪明就可办到。
  回顾复习下
  让我们复习一些术语。W3C 2.1 规范解释了选择器(selectors)和选择(combinators):
  “一个选择器是用选择符连接起来的一个或更多的选择器。选择符包括:空格,‘>’和‘+’。空格可能出现在一个选择符和简单的选择器之间。”一个简单的选择器可以是一种类型选择器或是通用选择器跟随零或者更多属性选择器,ID选择器或者伪类,在任何顺序。
  第一个支持的选择符(也经常被称作选择器,这是唯一正确的部分)是子选择符。在简单的选择器之间指定“>”符号。一个简单的例子,#leftcol>p{color:blue;},意思是#leftcol下面所有子段落文本颜色是蓝色。
  但是如果#leftcol有一个DIV,而且DIV还有一个段落,#left>p选择器不会使这个段落里的文本变成蓝色,因为子选择符,不像频繁使用的后代选择符,只选择直接的孩子,不是“>”符号的左边元素任何深度的嵌套后代。
  另外一个新支持的选择符将是相邻选择符,使用"+"符号。子选择符可以指向另外一个元素的子部,相邻选择符可以指向跟随的元素,但与前面的元素独立。例子,h2+p {color:blue;},跟随h2元素后面段落的文本颜色为蓝色。
  现在你明白选择符怎么工作,我们开始研究复杂联合元素,看看我们能不能不使用class达到目的。
  使用选择符
  我们从简单但充分复杂的html结构开始:
  <div>First
DIV
  <p>Paragraph One –
    <a href="#">link A</a>
    <a href="#">link B</a>
  </p>
  <div>Second DIV
    <p>Paragraph Two –
      <a href="#">link C</a>
      <a href="#">link D</a>
    </p>
    <p>Paragraph Three –
      <a href="#">link E</a>
      <a href="#">link F</a>
    </p>
    <p>Paragraph Four –
      <a href="#">link G</a>
      <a href="#">link H</a>
    </p>
    <div>Third DIV
      <p>Paragraph Five –
        <a href="#">link I</a>
        <a href="#">link J</a>
      </p>
      <p>Paragraph Six –
        <a href="#">link K</a>
        <a href="#">link L</a>
      </p>
      <p>Paragraph Seven –
        <a href="#">link M</a>
        <a href="#">link N</a>
      </p>
    </div>
    <p>Paragraph Eight –
      <a href="#">link O</a>
      <a href="#">link P</a>
    </p>
  </div>
  <p>Paragraph Nine –
    <a href="#">link Q</a>
    <a href="#">link R</a>
  </P>
  </div>
  图1 是html结构的文本对象模型树,图揭示了元素之间真实结构的联系。

图1
  在图1里兄弟元素分布在较低的支线上,它们的源头分布在图表从左到右顺序上。每组兄弟元素是它们所在支线会合顶点单一元素的子元素。如Paragraph One, Second DIV, and Paragraph Nine都是兄弟,而且都是First DIV的子元素。
  图2使用清楚的样式显示它们怎么展示,First DIV的结构有Paragraph One, Second DIV, and Paragraph Nine组成。Second DIV有三个以上段落和拥有三个以上段落的Third DIV。所有段落的颜色是白色,每个包含两个链接元素。所有DIV黑色边框轻度褐色。

图2
  图2: DIVs are black-bordered and paragraphs are colored white for clarity.
  这个结构可以进行许多选择符的试验。#p#分页标题#e#
  好了,让我们试着更改Second DIV的三四两个段落。如果我们只想使用后代选择符可以像这样div div p {color:red;};问题是上面的规则影响了Second DIV所有的段落,当然包括Third DIV的所有段落,因为Third div在DIV里面而段落在它里面。 还使用它?后代选择符没有一点选择性,让很多嵌套的元素都被选择当我们宁愿有给小的组选择。
  的确,classes提供更好的选择性,但我们正试着避免class-itis。可是,不使用任何class仅使用相邻选择符比较困难。IE7 以前我们使用下面的方法:
div div p {color: red;}
div div div p {color: black;}
div div p.first {color: black;}
  第一个规则应用了,然后带有另外DIV选择器的另外一个规则颠倒了Third DIV里的样式。随后阻止Paragraph Two的样式,我们没有选择,只有给段落指定一个class更换样式。真是痛苦!
  通过子和兄选择符,我们可以很简单的实现,不需要class。
div>div>p+p {color: red;}
div>div>div p {color: black;}

图3
  图3: Our new combinators have selected only Paragraphs Three and Four.
  让我们来分析下上面的代码,第一个规则的意思是:选择div的子部div的子部段落的相邻兄弟段落。
  Second DIV是第一DIV的子部,Second DIV里面的两个段落即符合直接跟随另外一个段落的要求是Paragraph Two 和 Paragraph Three。Paragraph one没有被选中,因为在Second DIV里面没有兄弟段落在它前面。
  这太棒了,但是还有一个问题。Third DIV同样是一个DIV的子部,同样有三个相邻段落的子部。我们不想Paragraph Six 和 Paragraph Seven被选中,所有必须制定一个规则,第二句的意思就是:选择div的子部div的子部div的后代段落。
  对于我们测试的html,只有Third DIV里的段落适合描述的情况,所以对于目标段落它们用黑色文本代替红色文本。简洁明了,是不是?使用强大的后代、子、兄选择符,大部分class可以从我们的页面去除。我们也不是说大家一定要用到这些选择符,但是我们确信它们比单独使用后代选择符能够给你带来更多的适用性。
  现在我们试着选择Paragraph Eight里的link O 。你将会怎么做?花一点时间想下再看下面介绍的方法。
  我们的方法
  我们的第一个方法就是把Second DIV当做对象,然后使用兄弟选择符链接四个段落选择第四个段落,然后显示第四个段落的链接,最后写上段落的链接颜色代码。
div>div>p+p+p+p a {color: red;}
div>div>p+p+p+p a+a {color: blue;}

图4
  图4: A very narrowly defined element selection without using classes.
  你们知道上面错在哪里了吗?考虑下Third DIV,它的位置正好和这四个段落有关。那就对了,四个段落都是兄弟,但是Paragraph Eight不是Paragraph Four的直接相邻兄弟。Third DIV在它们之间必须作为兄弟考虑进去。我可以仅仅在第三和第四个"P"选择器之间粘贴一个DIV选择器,但是这里有另外一个简单方法实现我们的目的。
div>div>div+p a {color: red;}
div>div>div+p a+a {color: blue;}
  上面的第一条语法指向Third DIV,然后选择它的直系兄弟段落(Paragraph Eight),最后选择段落里面的链接。“a”选择了段落里面所有的链接。接着第二条语句让跟随链接后面的所有链接为蓝色。所以link P的红色链接变成了蓝色,留下link O保持红色。好了我知道蓝色的链接是默认颜色,但我们学到了方法。
  让我们最后阐明下窍门
  考虑到一个元素包含很长的链接元素和其他(我们的例子没有提到)。如果你写个a{color:red;},所有的链接都是红色。现在写 a+a {color:red;},这个结构选择了另外一个直系跟随的链接。在我们的链接元素里每个链接都符合这样的描述,除了第一个链接。不要陷入到认为这个想法将选择互动链接。所有规则的意思是寻找和选择拥有直系并且在它前方有链接的任何链接。明显的除了第一个链接每个链接都是一致符合要求的。
  第一个链接不跟随任何级数的链接,所以a+a{color:red;}没有被选择。知道这个事实,想象下在这个结构里我们添加另外兄弟选择符和“a”选择器每次会发现什么情况。a+a+a{color:red;}排除最初的两个链接,a+a+a+a{color:re
d}排除最初三个链接,等等。
  所以如果你曾经看过,或你自己使用这个选择器窍门,仅仅只要记住这个基本规则:参加的兄弟选择器数目等于序列里第一个被选择的元素的位置。如果这里有8个"a"选择器通过七个兄弟选择符联合,第八个链接和级数里剩余的所有链接将被选择。因而,你可能把相同类型的一系列元素划分为两组,或是为后面的一组使用新样式或是为全组更换样式,然后再为后面的一组更换样式,你自己选择。
  浏览器问题
  IE7非常不幸的认为HTML注释也是真实的DOM元素,所以如果你在错误的地方使用注释,IE7将会把它当作兄弟计算在内,而你设定的选择器将不会工作。使用兄弟选择符时只要了解这个问题注意让注释出现在不会惹麻烦的地方。
  另外一个知道的兄弟选择符问题,除了opera 9外的所有浏览器,当额外元素是经script增加的,它们不会解释基于样式表的兄弟选择符。所以如果你用script在元素中建立一个新的段落,只有Opera 9才会认识到从而改变样式。其他当前浏览器只会忽略动态结构,在新的元素添加进来前保持原来样式。
  额外介绍下:first-child伪类
  IE7新支持:first-child伪类。这个选择器的语法和用法和 :hover伪类相似,:first-child选择元素里出现的第一个子部,用法像:hover一样,比如链接会是a:first-child。
我们认识到使用:first-child比仅使用兄弟选择符来的简单。但在怎样获得赞扬或是用:first-child伪类选择器替换它之前,我们希望大家同样认识到兄弟选择符是怎么独立运用的。
  比较下面的代码,使用:first-child简单许多。
使用 :first-child之前
div>div>div+p a {color: red;}
div>div>div+p a+a {color: blue;}
使用 :first-child…
div>div>div+p a:first-child {color: red;}
  :first-child确实让工作简单许多!不需要另外规则改变样式,只要记住当使用:first-child,它只作用于第一个子部first child。没有其他兄弟元素被选择,所以我们还需要兄弟选择符的才干。
  我们可不可以使用兄弟和子选择符联合:first-child?当然可以,子选择符看起来没有问题。可是,兄弟选择符不能直接跟在:first-child前面,因为很明显第一个子部不可能有上面的兄弟。
  IE的问题
  IE7似乎有一个问题,当兄弟选择符比:first-child在选择器中来的晚,IE7顺从兄弟选择符。这个情况也在其他浏览器有,但IE7显然不能处理相关的复杂性。这看来不够完美,不过至少IE7支持简单适度的联合结构,或许现在就可。
  所以脑袋里记住,作为兄弟选择符,IE7将会考虑第一个链接前面的html注释为元素节点,而且IE7会选择注释代替,甚至你使用a:first-child都没用。IE7不关心:first-child伪类前面的"a",它仍然坚持选择注释(注释和第一个链接在同一个容器而且在链接前面)。所以当你使用注释和高级CSS选择器要清楚了解真相。
  结论
  我们希望这篇文章没有给你们带来困惑,当支持更多选择符时了解更多可以用到的可能性样式。这在IE7大规模推广前还没有用处,现在你可以做好准备,至少关注已经支持的选择符。

CSS实用教程(1)

 样式表CSS在网页中占着极重要的地位,它的使用一直是热门讨论的话题。CSS是Cascading Style Sheet的简写,译为“层叠样式表单”。CSS几乎可以定义所有的网页元素,CSS虽然功能强大,但平时我们用到的是很少的,最常见的有:定义字体大小(用CSS定义的字体大小不会浏览器的字体设置而改变)、去掉超链下划线、超链接变色等等。下面详细、简练地讲如何使用CSS。

CSS基础学习:样式表CSS简明教程
  样式表CSS在网页中占着极重要的地位,它的使用一直是热门讨论的话题。CSS是Cascading Style Sheet的简写,译为“层叠样式表单”。CSS几乎可以定义所有的网页元素,CSS虽然功能强大,但平时我们用到的是很少的,最常见的有:定义字体大小(用CSS定义的字体大小不会浏览器的字体设置而改变)、去掉超链下划线、超链接变色等等。下面详细、简练地讲如何使用CSS。
  1.CSS加在什么位置?编辑CSS时候,强烈建议使用记事本之类的文本编辑工具打开你的网页代码。找到<head>和</head>,在<head>和</head>之间加入这句,<STYLE></STYLE>,然后所有的样式表都定义在<STYLE>和</STYLE>之间。
  有很多网站喜欢把样式表写成一个CSS文件,然后所有文件都指向这里来调用它,可使用这句<link href=***. rel=stylesheet>来连接CSS文件。
  实例1:<STYLE>td{font-size:9pt;line-height:150%}</STYLE>这句表示网页的字体大小为9磅字,行距150%,td是“单元格”元素,这句也就是对单元格内的字体起作用。这里的<style>后面的td,表示选择符,网页内所有的td元素都会起作用。这些选择符可以是所有的html标记,例如p、table、hr等等,只有少数的br除外。
  实例2:<STYLE>a{color:FF0000}input{font-size:9pt}</STYLE>表示超链接都为红色,单行文本框的字体是9磅。
  2.CSS作用很大的一方面就是可以用来大量减少网页代码,从而为网页减肥,原理就是在网页中自定义样式表的选择符,然后在网页中大量引用这些选择符。目前大部分网站都是使用class来引用的。
  CSS中,class和id的作用是完全一样的,“class”单词比“id”多3个字母。id的使用方法,在网页<STYLE>和</STYLE>之间定义选择符名,选择符名前加#,这些选择符名可以是字母或数字、或组合,然后在网页的元素中使用id=**来引用它。
  实例3:<STYLE>#8{color:000080}#p2{margin-left:20}#14{font-size:14pt}</STYLE>,然后在网页使用这句引用它:<a id=8>黑蓝色</a>,<a id=14>14磅的字</a>。<p id=p2>段落……
  也就是说,<a id=8>黑蓝色的字</a>等价于<a style=color:000080>黑蓝色的字</a>;<a id=14>14磅的字</a>等价于<a style=font-size:14pt>14磅的字</a>,以此类推。这里的介绍可能有点不太好理解,你可以多实践。
  注意:在一定条件下,使用id来引用可能不起作用或报错、或与javascript的id发生冲突,这种情况下,你可以使用class来引用。class的使用方法与id一样,所不同的是:在网页的<STYLE>和</STYLE>之间定义选择符名,名前加.(即点)。例如<STYLE>.a1{color:FF0000}</STYLE>,然后用class=a1引用它。
  3.样式表语法。样式表的项和它的值应该用冒号连接,例如color:FF00000。样式表也可直接嵌在段落当中,而不用class或id引用,例如<a style=font-size:12pt>12磅字</a>。也就是使用<* style=*:*>的语法。
4.小技巧。可根据需要灵活掌握,同一个选择符名可以多次给它定义,也可以多个选择符名定义同一句。例如<style>#a1{color:FF0000}#a1{font-size:9pt}</style>,它等效于#a1{color:FF0000;font-size:9pt}。多个选择符名定义同一句的方法是,各选择符名之间加逗号,例如<style>#a1,#b1{color:FF0000}#b1{font-size:9pt}</style>这句等效于#a1{color:FF0000}#b1{color:FF0000;font-size:9pt}。可能这里不太好理解,你只要自己稍微实践一下就可以灵活自己定义了。
5.样式表手册。下面列举最常用的样式表语句:
  1)color (颜色,例如FF0000代表红色,000000代表黑色……)
  2)font-size (字体大小)
  3)font-family (字体类型)
  4)width和height (宽度和高度)
  5)line-height (段落行距,建议使用百分比的形式,例如150%)
  6)margin-top表示段前;margin-bottom表示段后。margin-left表示整个段落向右缩进,margin-right表示段落右边距离右边的边框的距离。例如这句<p style=margin-top:30;margin-left:20;margin-right:20>。而且也可直接定义在图片中,例如<img src=**.jpg align=right style=margin-right:9>表示这张图片向右对齐,并且图片再向左移动9像素。
  7)text-align (段落的对齐方式,例如left、center、right)
  8)background-color (背景颜色)
  9)position:absolute;top:30;left:50 表示绝对定位(DW中的层)
  总之,最常用的就是以上这几种了,需要多多实践。
  6.最常用的样式表代码实例。
  实例4:去掉超链接下划线,<style>a{TEXT-DECORATION:none}</style>
  实例5:超链接变色,<style>a{COLOR:000000}a:hover{COLOR:FF0000}</style>
  实例6:超链接变色且去掉下划线,<style>a{TEXT-DECORATION:none;COLOR:000000}a:hover{COLOR:FF0000}</style>
  实例7:超链接变色且鼠标停在超链接上有下划线,鼠标离开下划线消失,<style>a{color:000000;TEXT-DECORATION:none}a:hover{color:FF0000;TEXT-DECORATION:underline}</style>
  实例8,请再翻回头实例1:<STYLE>td{font-size:9pt;line-height:150%}</STYLE>,这句可以让你网页的字体擂打不动,不随IE浏览器的“查看→文字大小”的设置而改变。
  如果您需要从网页中复制代码到FP或DW中,复制请注意:一定要先从这里复制到记事本,然后再从记事本复制到FP或DW的html模式下,切记切记,否则无效。

从基础到精通:CSS实用教程(一)
  CSS(Cascading Stylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一。使用CSS能够简化网页的格式代码,加快下载显示的速度,也减少了需要上传的代码数量,大大减少了重复劳动的工作量。尤其是当你面对的是有数百个网页的站点时,CSS简直象是神对我们的恩赐!^_^
  前言
  CSS(Cascading Stylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一。
  W3C(The World Wide Web Consortium)把动态HTML(Dynamic HTML)分为三个部分来实现:脚本语言(包括JavaScript、Vbscript等)、支持动态效果的浏览器(包括Internet Explorer、Netscape Navigator等)和CSS样式表。
  一.层叠样式表的特点
  且不说过去的网页缺少动感,就是在网页内容的排版布局上也有很多困难,如果不是专业人员或特别有耐心的人,很难让网页按自己的构思和创意来显示信息。即便是掌握了HTML语言精髓的人也要通过多次地测试,才能驾驭好这些信息的排版,过程十分漫长和痛苦。为了Internet的发展,让更多人早日踏

CSS多种居中方式

还有居中最简单的方法就是 margin:auto; 加入 这个属性,再设定宽度就可以了

一、单行内容的居中
只考虑单行是最简单的,无论是否给容器固定高度,只要给容器设置 line-heightheight,并使两值相等,再加上 over-flow: hidden 就可以了

.middle-demo-1{
height: 4em;
line-height: 4em;
overflow: hidden;
}

优点:
1. 同时支持块级和内联极元素
2. 支持所有浏览器
缺点:
1. 只能显示一行
2. IE中不支持<img>等的居中
要注意的是:
1. 使用相对高度定义你的 height 和 line-height
2. 不想毁了你的布局的话,overflow: hidden 一定要
为什么?
请比较以下两个例子:

<p style="background: #900; color: #00f; font: bold 12px/24px Helvertica,Arial,sans-serif; height:24px; width:370px;">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p> <br/> <br/> <p style="background: #090; color: #00f; font: bold 12px/2em Helvertica,Arial,sans-serif; height:2em; width:370px; overflow: hidden;">Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</p>
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

上一个高度是用的绝对单位px,并且没有隐藏溢出,下一个高度用的单位是相对单位em,并且隐藏了溢出。如果你的浏览器支持放大字体,那么尽情地放大字体,看看会出现什么效果。

二、多行内容居中,且容器高度可变
也很简单,给出一致的 padding-bottom 和 padding-top 就行

.middle-demo-2{
padding-top: 24px;
padding-bottom: 24px;
}

优点:
1. 同时支持块级和内联极元素
2. 支持非文本内容
3. 支持所有浏览器
缺点:
容器不能固定高度

三、把容器当作表格单元
提供一系列diplay属性值,包括 display: table, display: table-row, display: table-cell 等,能把元素当作表格单元来显示。这是再加上 vertical-align: middle, 就和表格中的 valign="center" 一样了。

.middle-demo-3{
display: table-cell;
height: 300px;
vertical-align: middle;
}

可惜IE不支持这些属性,不过在其他浏览器上显示效果非常完美。
要注意的是:和一个合法的<td>元素必须在<table>里一样,display: table-cell 元素必须作为 display: table 的元素的子孙出现。

优点:
不用说了吧,就是表格,效果和表格一模一样
缺点:
IE下无效

四、以毒攻毒!用 IE 的 bug 解决 IE 中的绝对居中
先不得不说一句,IE 真的是个很烂的浏览器,CSS1中的定义都不支持,害得要我们转个大圈子来造居中。不过就像我说的,凡是 table 布局可以实现的,CSS 一定可以实现,即使在 IE 里也不例外。我研究 IE layout 模式多年,还是找出了一个可以在 IE 中绝对居中的方法。这个方法就是基于 IE layout 的 bug,也可以算以毒攻毒。至于原理,不要问我,这是独门秘学,何况三言两语也讲不清楚,只要好用就行

.middle-demo-4{
height: 300px;
position: relative;
}
.middle-demo-4 div{
position: absolute;
top: 50%;
left: 0;
}
.middle-demo-4 div div{
position: relative;
top: -50%;
left: 0;
}

五、整合三和四,写出支持所有浏览器的垂直居中容器!
思路是利用 IE 和 非IE 浏览器的 CSS hack, 整合三和四的CSS,写出兼容主流浏览器的垂直居中容器。具体代码就不给出了,大家权当作练习练习。例子可以在下面的附录中找到。
最终实测支持的浏览器:IE6+, Mozilla 1.7, Netscape Navigator 8, Opera 8.0+, 1.0+ 和 Safari 1.0+IE5 下需要加上对合适模型的补正。
推测支持的浏览器:Mozilla 1.5+, Netscape Navigator 7+, Opera 7+
未测试浏览器:Konqueror

图片特效CSS代码

1 加一边框 <center><img
src="图片地址" style="border:3 solid #ff0000(框边颜色)"></center>
2 加双边框
<center><img
src="图片地址" style="border:5 double green"></center>
3 加立体框
<center><img src=图片地址
style="border:25 outset #ff88ff"></center>
4 加立体框(a)
<center><img
src="图片地址" style="border:25 inset #ff88ff"></center>
5 加虚线框
<center> <img src="图片地址" style="border:4 dashed #ff0000"></center>
6 加凹框
<center> <img src="图片地址" style="border:25 groove green" border="0"></center>
7 横向渐变透明
<center><img src="图片地址" style="filter=alpha(opacity=100,style=1,finishopacity=0)">
8圆形
<center><img src="图片地址" style="filter=alpha(opacity=100,style=2,finishopacity=0)"></center>
9 黑白效果
<center><img src="图片地址" style="filter:'gray'"></center>
10 X光效果
<center><img src="图片地址" style="filter:'xray'"></center>
11 上下颠倒
<center><img src="图片地址" style="filter:flipv">
12 左右颠倒

<center><img src="图片地址" style="filter:fliph"></center>
13 粒状
<center><img src="图片地址" style="filter:progidXImageTransform.Microsoft.Glow(color=#cc8888,strength=15)"></center>
14 模糊阴影
<center><img src="图片地址" style="filter:progidXImageTransform.Microsoft.Blur(PixelRadius=3)"></center>
15 倒影
<center><IMG src="图片地址" width="200" height="150"><BR>
<IMG src="图片地址和上边的图片地址相同" style="filter:wave(strength=3,freq=3,phase=0,lightstrength=30) blur() flipv()" width="200" height="150"></center>
16 水面倒影
<center><IMG src="图片地址" width="200" height="150"><BR>
<IMG src="图片地址和上面的一样" style="filter:wave(strength=3,freq=3,phase=0,lightstrength=30) blur() flipv()" width="200" height="150"></center>
17黑白效果
<CENTER><IMG style="FILTER: gray" src="图片地址"></CENTER>
18 浮雕效果
<center><img src="图片地址" style="filter:progidXImageTransform.Microsoft.Emboss()"></center>
19 色彩颠倒
<center><img src="图片地址" style="filter:invert"></center>
20 模糊效果
<center><img src="图片地址" style="filter:progidXImageTransform.Microsoft.Blur(PixelRadius=3)"></center>
21 水波效果、
<center><img src="图片地址" style="filter:wave(freq=11, strength=4, phase=6, lightstrength=10)"></center>

保存CSS 中加载的图片。保存网页CSS图片软件

的ScrapBook插件

ScrapBook 能够帮助您保存网页,并且可以方便的管理您收集的网页。轻巧、迅速、准确和多语言支持。它可以为您:

  • 保存网页
  • 截取网页的部分内容
  • 保存深层链接的网页
  • 类似书签一样组织收集的网页
  • 全文搜索和快速过滤查寻
  • 简单编辑收集的网页
  • 建立 Text/HTML 格式的便签

open_img('attachments/200807/0998061545.png')

 插件下载链接:

http://www.maqie.com/read-1739.html

CSS精简压缩工具

http://www.cleancss.com/

CleanCSS是一个免费的CSS精简压缩工具,通过这个在线工具,可以将你的CSS文件压缩、优化成更精简,这将大大提高你的网站的载入速度。进入CleanCSS后, 你可以输入要压缩的CSS代码或是该CSS文件的所在URL地址, 然后选择代码布局和相应的精简压缩选项, 最后点击生成即可.

当然, 这里所说的压缩并不是像.zip文件那样的压缩, CSS文件的压缩呢, 其实就是指通过对CSS代码中重复的地方进行合并来达到减少代码的效果. 不过, 对于那些需要经常修改到CSS代码的朋友来说, 并不推荐使用这个工具

css 定义图片边框样式

.pic3 /*图片 */
{
border: 4px solid  #ffffff;
filter:progid:dximagetransform.microsoft.glow(color=#000000,strength=3);
}

 

<style>
.out {
  position:relative;
  background:#bbb;
  margin:10px auto;
  width:285px
  }
.in {
  background:#fff;
  border:1px solid #555;
  padding:10px 5px;
  position:relative;
  top:-5px;
  left:-5px;
  }
</style>

<div class="out"> <div class="in" > <img src="http://homepage.yesky.com//imagelist/06/24/k6xq28872yvo.jpg" alt="" /> </div></div>

img {border-color:red} 指四个边框色都是红色

img {border-color:red blue} 指上,下边框是红色,左右边框是蓝色

img {border-color:red blue yellow} 指上边框是红色,左右边框是蓝色,下边框是黄色

img {border-color:red blue yellow green} 指上,右,下,左边框分别是红色,蓝色,黄色和绿色

border-style属性

h1 {border-style:solid} 指边框为实线,none指没有边框,边框不显示,dotted指边框的样式为由短线组成的虚线,double指边框线为双线,双线再加上它们之间的空白部分的宽度就等于border-width设置的宽度,groove指3D沟槽状的边框,inset指3D内嵌边框,outset指3D外嵌边框

h1 {border-style:solid} 指四个边框都是实线

h1 {border-style:solid dotted} 指下,左边框值缺少,则取对边上,右值

h1 {border-style:solid dotted double} 指左边框缺少,则取右侧的边框值

h1 {border-style:solid dotted double ridge} 指四个边框都有值,按上,右,下,左分

 

再看这句话:
<img id=sample src=lu.gif border=9 style="filter:blur(strength=50) flipv()">
上面这句话表示这幅图片使用指定的像素值50设置模糊效果,并且图片垂直翻转

img.framed {
padding: 6px;
border: 1px solid #CCC;
background-color: #FFF; }

open_img('attachments/200806/6664122367.png')

鼠标触显(滑动门)CSS 代码及其使用方法

<SCRIPT language=javascript>
    function show_intro(pre,pree, n, select_n,) {
        for (i = 1; i <= n; i++) {
            var intro = document.getElementById(pre + i);
  var cha = document.getElementById(pree + i);
            intro.style.display = "none";
            cha.className=css + "_off";
            if (i == select_n) {
                intro.style.display = "block";
  cha.className=css + "_on";
            }
        }
    }
</SCRIPT>
/******************************************
  触显CSS代码 以下部分加在css.css中
  图片大小:62×28
*******************************************/
.hot_off {
  BACKGROUND: url(ty1.gif) no-repeat;
  width:62px;
  height:18px;
  padding-top:10px;
}
.hot_on {
  BACKGROUND: url(ty2.gif) no-repeat;
  width:62px;
  height:18px;
  padding-top:10px;
}
/******************************************
  页面代码,以下部分加在index.htm中
*******************************************/
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="dragTable">
  <tr>
    <td class="head">
      <h3 class="L"></h3>
        <div class="hot_on" id=tzm1 onmouseover="show_intro('ytld','tzm',4,1,'hot')" style="float:left;">
          <a href="/list.php?fid=31">工作动态</a></div>
        <div class="hot_off" id=tzm2 onmouseover="show_intro('ytld','tzm',4,2,'hot')" style="float:left;margin-left:6px;">
          <a href="/list.php?fid=27">盐亭新闻</a></div>
        <div class="hot_off" id=tzm3 onmouseover="show_intro('ytld','tzm',4,3,'hot')" style="float:left;margin-left:6px;">
          <a href="/list.php?fid=55">综合新闻</a></div>
        <div class="hot_off" id=tzm4 onmouseover="show_intro('ytld','tzm',4,4,'hot')" style="float:left;margin-left:6px;">
          <a href="/list.php?fid=102">热点新闻</a></div>
      <h3 class="R"></h3>
</tr>
  <tr>
    <td colspan="3" class="middle">
      <div id=ytld1 align="left">$label[a002]</div>
      <div id=ytld2 align="left" style="DISPLAY: none">$label[a003]</div>
      <div id=ytld3 align="left" style="DISPLAY: none">$label[a004]</div>
      <div id=ytld4 align="left" style="DISPLAY: none">$label[a001]</div>
</td>
  </tr>
  <tr>
    <td colspan="3" class="foot">
      <h3 class="L"></h3>
      <h3 class="R"></h3></td>
  </tr>
</table>

使用方法:
    请注意代码中的“红色”部分,这就是你在做另一个触显时需要修改的地方。
    其中的“ytsb”和“tzm”你可以任意定义。
    如:你若再建一个触显,你可以将“ytsb”和“tzm”修改为“ytld”和“yt”等。也就是说:每建一个触显,这两个都要不相同,不然就不会动了。
    另外,你还需要修改的地方是:4,1 4,2 4,3 4,4 这是指你触显个数及序号。
    如:三个触显,就应该是3,1  3,2  3,3
          二个触显,就应该是2,1  2,2
          五个触显,就应该是5,1  5,2  5,3  5,4  5,5
    依次类推。
    还有一个地方应注意,就是其中的“hot”,必须同你的CSS代码中的“hot”开头一致。

CSS定义 鼠标移上去的链接颜色,链接背景颜色,链接样式等

<style>  
  a.demo{background:#F0EBD6;padding:8px;width:240px;text-decoration:none;color:#000000;}  
  a.demo:hover{background:#FFC080;color:#ffffff;}  
  a.demo:active{background:#CCCFFF;color:#aaaaaa;}  
  a.demo:visited{background:#FF3300;color:#555555;}  
  #idCodeDiv{width:100%;padding:4px;font-family:verdana,tahoma;margin:12px   0px   0px   0px;background-color:#EEEEEE;font-weight:bold;}  
  </style>  
   
  <table>  
  <tr><td>  
  <a   class=demo   href="none.html"   onclick="return   false;">  
  aaaaaaaaa  
  </a>  
  </td></tr>  
  <tr><td>  
  <a   class=demo   href="none.html"   onclick="return   false;">  
  bbbbbbb  
  </a>  
  </td></tr>  
  <tr><td>  
  <a   class=demo   href="none.html"   onclick="return   false;">  
  cccccc  
  </a>  
  </td></tr>  
  </table>

上面代码保存 HTML 格式,浏览查看样式