1. Block和inline元素对比 3 h6 c1 ~/ t: [, n4 x所有的HTML元素都属于block和inline之一。, h- }8 G- T! t8 c7 D
block元素的特点是:$ I6 W- ~$ h, |" R! z- R, W% p
总是在新行上开始;& ?2 S H% [* `. V6 F
高度,行高以及顶和底边距都可控制; , B* F1 ?6 i1 s( b宽度缺省是它的容器的100%,除非设定一个宽度 5 \6 q& k: A9 d0 R/ l6 m<div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。& k V `8 F' }% }
相反地,inline元素的特点是: 2 d* K$ V3 a: i! {* B2 D$ I2 e
和其他元素都在一行上;! Y; y ^, s% C% J) A7 e
高,行高及顶和底边距不可改变; ) ] b& g6 L! t1 q* b" w# N$ D宽度就是它的文字或图片的宽度,不可改变。8 q+ @# h# s4 d1 I3 M
<span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。 _- ~1 {) r0 f# {2 a6 u% [; G用display: inline 或display: block命令就可以改变一个元素的这一特性。什么时候需要改变这一属性呢? 2 G4 e" Y. {0 ]/ F V n8 V; F
让一个inline元素从新行开始; 8 Z ]1 O% O' Q3 |8 s, a让块元素和其他元素保持在一行上; ' M. j9 \' G" k2 _5 \控制inline元素的宽度(对导航条特别有用); 7 @5 \: k, p- S控制inline元素的高度;- i6 T) F* G6 d) K
无须设定宽度即可为一个块元素设定与文字同宽的背景色。# n) A+ B$ H4 F5 |) A; r+ j" ]0 { 2. 再来一个box黑客方法 ( B; z ^: h, A, C& `. x之所以有这么多box黑客方法,是因为IE在6之前对box的理解跟别人都不一样,它的宽度要包含边线宽和空白。要想让IE5等同其他浏览器保持一致,可以用CSS的方法:
padding: 2em;
border: 1em solid green;
width: 20em;
width/**/:/**/ 14em;
复制代码
第一个宽度所有浏览器都认得,但IE5.x不认得第2行的宽度设置,只因为那一行上有空白的注释符号(多么蠢的语法分析!),所以IE5.x就用20减掉一些空白,而其他浏览器会用14这个宽度,因为它是第2行,会覆盖掉第1行。7 R; r F1 u$ V; M 3. 页面的最小宽度1 k8 m) V6 r4 ~
min-width是个非常方便的CSS命令,它可以指定元素最小也不能小于某个宽度,这样就能保证排版一直正确。但IE不认得这个,而它实际上把width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个<div> 放到 <body> 标签下,然后为div指定一个类:
7 g, E. P' O% j8 `
也可以阅读专门的手持设备可用性。% e$ `+ t" L$ a2 a, q1 h 9. 3D效果的按钮2 G& \3 _' Y, O! X5 U, }" y
以前要想制作带有3D效果,并且点击下去还会变化的按钮,就得用图片替换的方法,现在CSS就可以了: 3 g# r9 D/ O! i8 I: @" F( N
a
{
display: block;
border: 1px solid;
border-color: #aaa #000 #000 #aaa;
width: 8em;
background: #fc0;
}
a:hover
{
position: relative;
top: 1px;
left: 1px;
border-color: #000 #aaa #aaa #000;
}
复制代码
& ?0 ^# z' ?5 B7 `4 J# a
至于效果,还可以自己调整了。 5 D1 D Q3 ^- n. N: v10. 在不同页面上使用同样的导航代码8 Z4 |6 [ F( c2 V
许多网页上都有导航菜单,当进入某页时,菜单上相应这一项就应该变灰,而其他页亮起来。一般要实现这个效果,需要写程序或专门为每一页做设计,现在靠CSS就可以实现这个效果。6 Y, f' s5 D5 ?7 l0 n' A7 c
首先,在导航代码中使用CSS类:! u' t# h0 o9 n- a4 _, {8 w' M