日期:2014-05-17  浏览次数:20716 次

经典CSS之十一技
CSS之十一技
一、 CSS border的缺省值 通常可以设定边界的颜色,宽度和风格,如: border: 3px solid #000 这位把边界显示成3像素宽,黑色,实线。但实际上这里只需要指定风格即可。如果只指定了风格,其他属性就会使用缺省值。一般地,Border的宽度缺省是medium,一般等于3 到4个像素;缺省的颜色是其中文字的颜色。如果这个值正好合适的话,就不用设那么多了。

二、CSS用于文档打印 许多网站上都有一个针对打印的版本,但实际上这并不需要,因为可以用CSS来设定打印风格。也就是说,可以为页面指定两个CSS文件,一个用于屏幕显示,一个用于打印: <link type="text/css" rel="stylesheet" href="stylesheet.css" media="screen" /> <link type="text/css" rel="stylesheet" href="printstyle.css" media="print" /> 第1行就是显示,第2行是打印,注意其中的media属性。但应该在打印CSS中写什么东西呢?你可以按设计普通CSS的方法来设定它。设计的同时就可以把这个CSS设成显示CSS来检查它的效果。也许你会使用 display: none 这个命令来关掉一些装饰图片,再关掉一些导航按钮。

三、图片替换技巧一般都建议用标准的HTML来显示文字,而不要使用图片,这样不但快,也更具可读性。但如果你想用一些特殊字体时,就只能用图片了。比如你想整个卖东西的图标,你就用了这个图片: <h1><img src="widget-image.gif" alt= "Buy widgets" /></h1> 这当然可以,但对搜索引擎来说,和正常文字相比,它们对alt里面的替换文字几乎没有兴趣这是因为许多设计者在这里放许多关键词来骗搜索引擎。所以方法应该是这样的: <h1>Buy widgets</h1> 但这样就没有特殊字体了。要想达到同样效果,可以这样设计CSS: h1 { background: url(widget-image.gif) no -repeat; height: image height text-indent: -2000px } 注意把image height换成真的图片的高度。这里,图片会当作背景显示出来,而真正的文字由于设定了-2000像素这个缩进,它们会出现在屏幕左边2000点的地方,就看不见了。但这对于关闭图片的人来说,可能全部看不到了,这点要注意。

四、直通到屏幕底部的背景色在垂直方向是进行控制是CSS所不能的。如果你想让导航栏和内容栏一样直通到页面底部,用表格是很方便的,但如果只用这样的CSS: #navigation { background: blue; 150px } 较短的导航条是不会直通到底部的,半路内容结束时它就结束了。该怎么办呢?不幸的是,只能采用欺骗的手段了,给这较短的一栏加上个背景图,宽度和栏宽一样,并让它的颜色和设定的背景色一样。 body { background: url(blue-image.gif) 0 0 repeat-y } 此时不能用em做单位,因为那样的话,一旦读者改变了字体大小,这个花招就会露馅,只能使用px。

五、Block和inline元素对比 所有的HTML元素都属于block和inline之一。block元素的特点是: 总是在新行上开始;高度,行高以及顶和底边距都可控制; 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, < h1>, <form>, <ul> 和 <li>是块元素的例子。相反地,inline元素的特点是:和其他元素都在一行上; 高,行高及顶和底边距不可改变; 宽度就是它的文字或图片的宽度,不可改变。 <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是 inline元素的例子。 用code class="inline"&gt;display: inline 或display: block命令就可以改变一个元素的这一特性。什么时候需要改变这一属性呢? 让一个inline元素从新行开始;让块元素和其他元素保持在一行上; 控制inline元素的宽度(对导航条特别有用); 控制inline元素的高度;无须设定宽度即可为一个块元素设定与文字同宽的背景色。

六、页面的最小宽度 min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把 width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为 div指定一个类: <body> <div class="container“> 然后CSS这样设计: #container { min-;600px; width:expression(document.body.clientWidth < 600? "600px": "auto" ); } 第一个min-width是正常的;但第2行的width使用了Javascript,这只有 IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。 同样的办法也可以为IE实现最大宽度:
#container { min-;600px; max-width: 1200px; width:expression(document.body.clientWidth &lt; 600? "600px" : document.body.clientWidth > 1200? ”1200px“ : ”auto"); }

七、IE与宽度和高度的问题 IE不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使。这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。比如要设置背景图片,这个宽度是比较重要的。要解决这个问题,可以这样: .box { ;80px; height: 35px; } html&gt;body .box { width: auto; height: auto; min-width: 80px; min-height: 35px; } 所有的浏览器都可以使用第一个box设置,但IE不认得第2段设置,因为其中用到了子选择器命令。第2个设置更特殊些,所以它会覆盖掉第1个设置。

八、字体变形命令 text-transform 命令很有用,它有3个值:text-transform: uppercase, text-transform: lowercase 和 text-transform: capitalize。第1个会把文字变成全大写,第2个变成全小写,第3个变成首字母大写。这对拼音文字非常有用,即使输入时有大小写错误,在网页上也看不到。

九、IE中图片文字消失的问题 有时会遇到文字或背景图突然消失的问题,刷新一下又出现了,这在靠近漂浮元素时更容易发生(注:没见过)。此时,可以为消失的元素设定: position: relative ,如果不行,再考虑为这些元素指定一个宽度试试。

十、为手持设备设计专门的CSS 也就是手机/PDA等小屏幕用户,可以专门设计一个CSS来让网页显示更舒服些。为此,可以把浏览器窗口调整到150点宽来看效果。指定专门的手持设备的 CSS的语法是: < link type="text/css" rel="stylesheet" href="handheldstyle.css" media="handheld" /> 也可以阅读专门的手持设备可用性。

十一、3D效果的按钮 以前要想制作带有3D效果,并且点击下去还会变化的按钮,就得用图片替换的方法,现在CSS就可以了: a { display: block; border: 1px solid; border-color: #aaa #000 #000 #aaa; ;8em; background: #fc0; } a:hover { position: relative; top: 1px;