查看完整版本: 14个常见的CSS技巧及常见问题

snowfox373 2007-10-27 15:13

14个常见的CSS技巧及常见问题

1、善用css缩写可以减少页面文件大小,提高下载速度,同时使代码简洁可读。D q#R$caoA
.C!a'Mxp9V#R
      如:[code]div{
R"OD`:Wy^C     border-top:1px solid #cccccc; 7]wP#QaJj&N x/F
    border-left:1px solid #cccccc; !tDI*y1i ~$p~
    border-right:1px soli #cccccc; pB)~ p]
    border-bottom:1px solid #cccccc;
Z"J3R U0V*P1Cj| }[/code]可以写为:[code]p{border:1px solid #cccccc}[/code]再如:[code]div{
JR4~#q| rz6Qc     margin-top:10px; `K9J [vR
    margin-right:20px;
BHL}7Zv7\gZ     margin-bottom:30px;
p'b7e+F*Vm%\)H     margin-left:40px;
)R.W*j$CFO }[/code]可以改写为:[code]/*注意上、右、下、左的书写顺序*/
2VA!Sn ]RyW"a'l(r div{margin:10px 20px 30px 40px} ds*t3T}#V)y?M
/*注意,数值与单位不能有空格,每个值之间用空格隔开*/[/code]2、可以同时为一个html元素的class属性设定多个规则(多重class定义)。
/L-pn&iQ@
Z S^nt;U       通常我们写法为:<p class=”a”></p>Il8uaB:tG
:Y Qt%YJ)P XD
      实际上我们可以为p元素指定多个规则,如:[code]CSS:
"u Ih/Zf Z@Q .a{…}
3lj9?-J NJr.J*g .b{….}
H"_7Kmc ` HTML:
"u,sW*HQ K;d(J <p class="a b">该元素同时包括a和b中设定的样式</p>[/code]注意:多个规则之间用空格分开。
}|Jdk%z[q Xw3q:M4[y4J+K`+A}
      3、明确定义单位,除非值为0
NW{5a~ Bu#?)m H,OP&} l*Z)o
      忘记定义尺寸是css初学者新手普遍存在的问题。在html我们可以写width=”100”,但在css中应该给出一个准确的单位。如:width:100px;height:50px;font-size:9pt ,0值除外,因为不论对于任何单位。0值的大小都是相等的。
6]Yl7b [G
(f@*I)h Z M       注意:不要在数值和单位之间加空格。
n,h;}-O6? o2}(H [C)rr&j*Rc6@$N
      4、区分大小写
$x&V-j{$kp.U nW5ZZF$B)ljw`
      在xhtml中,css定义的元素名称是区分大小写的,class和id的值在html和xhtml中也是区分大小写的,所以为了避免错误,推荐一律使用小写。如#aaa,与#AAA是不同的,在xhtml中,p和P也是不同的.他们之间不会覆盖。如果在css中定义了#aaa,在html元素中使用AAA来应用将不能得到#aaa中定义的样式。
#Y"kHBh ax;g
NV-S/Yz9@kAY       示例代码:[code]CSS:
"cp2Dp#? w #aaa{border:1px solid #ccc}   
z*~5_1iQ1C d5zit HTML: ~7mr]/`,o
<div id="AAA">显示不出来1个像素的边线</div>[/code]5、CSS的最近优先原则
9|v,^nt#q }m#o
H-w\v}0B#|       如果对一个元素定义了多次样式,则以最近的一级优先,最近一级的样式将覆盖其他的样式定义。
'WD$U)]it g(B 1q'z${_Q |
      如:[code]CSS: &RE-|*H7p%|7\W
p{color:red}
"x4?2r-I(P]z9z7H .blue{color:blue}
%B+m;`z'~ X6? .yellow{color:yellow} O/r'\s[No
HTML:
$Y9X+l%zY@;J4_ <p>此处显示为红色</p> ,p"p4OK7Sph3jw
<p class="blue">此处显示为蓝色</p>
(v;v bB1l"N:} <p class="blue" style="color:green">此处显示为绿色</p>
\] D(fx[G4f <p class="blue yellow">此处显示为黄色</p>[/code]注意:$tnvU"?-D

p-~*["J3M       (1)注意样式的几个优先顺序(优先级由上至下递减):)yV5cQsq)V

(lb G.? QW       --元素style设定 :z_*R{ gd ^2H

l/~4P-r@tT       --head区<style></style>中的设定 lmW,H)Ja:M
%i }l| {}"`*F
      --外部引用css文件
@3Ut ooZ*U [y-b3HDA.K_"p`%A4d
      (2)优先级不是按访问顺序来设定的,而是又css中的声明顺序来设定的。
Q*{;|Q$H(M
4z0R-J7Bs ldr       如上例中<p class="yellow blue">此处显示为黄色</p>也显示为黄色,因为在css定义中.yellow在.blue的后面。*PaLr-A(bl
$b1d-~cmN
      6、使用子选择器减少id和class的定义wa+vV;}8{o

;t$lfz9r8l7cYs       例如:[code]#contain{..} n.Dlt[cP/d
#contain_ul{...} yTVx+\]%o
.contail_li{...} iM.Ux~9d%~\W
<div id="contain"> 5P2X/v7N8j]4v6eUL
    <ul id="contain_ul"> 5Q9](R'X/I v!k8C
        <li class="contain_li"></li>
Y @ CxI'bV/B         <li class="contain_li"></li>
_E1drM;D     </ul> fQ h7A,L.pA'v8r'An
</div>[/code]可以更改为:[code]#contain{..} c3@|-B)_
#contain ul{...} U pf`hq{n
.contain ul li{...}
~*n n8j ` N <div id="contain"> 0Cgo1id-q
<ul>
:O/au"gko#z Mz     <li></li> $wusxMa/Y d
    <li></li>
X.r5e-YR.Tl3l(gD </ul>
K1t}9g `*x </div>[/code]7、不要给背景图片路径加引号4}8@QD_+y3P
7E T8f?$T$r(f
      将background:url("xxx.gif")改为background:url(xxx.gif),因为对于部分浏览器加引号反而会引起错误。
h xt G;zbP
Ks8a$~8WIunP'Fe       8、背景图片的路径是相对与当前css页面的路径。
9xo*ow6w-y Z.Y
5ivb:c-_5rhMP       例如:
G]/renV6{
^+}D@k-_UK       有如下目录结构
*xw x4}uH9O -l ~ w:Lfi%~m
      |--images
f(SIf$z,hp|%\          |--xxx.gifgpCvFuR`)Nf
      |--css
)| B.^rBs          |--xx.css
oZ(m2hC4J(y       |--index.htmlDf| @}~
]d"o|Ce
      代码内容[code]index.html引用xx.css文件。<link rel="stylesheet" href="css/xx.css" /> w#`R.W$V4_2~ kmL
xx.css要引用xxx.gif图片其写法为:background:url(../images/xxx.gif)[/code]9、使用组选择器为不同元素应用相同的样式U;[3qx N+E^w
l1N9K7DZ3?9l2MX{,I:I
      如h1,h2,h3,div{font-size:16px;font-weight:bold}
d Bu*~dQb8cGR wcI4z!y
      则h1,h2,h3,div元素的样式都为字体16像素,字体粗体
y1gOHa8I$Y PZS+Q}rT[:a6g
      10、书写正确的链接样式
(N8Hd3[#{;q %v+j.jq7c*UUs
      当用css定义链接的各种状态时,一定要注意其书写顺序,即::link :visited :hover :active。如果不按照该顺序书写可能无法达到自己希望的效果。为了记忆该顺序我们抽取每个单词的首字母:L V H A,你可以通过记忆LoVe,Hate,两个单词来记住其顺序。
0yA\+s3t3MEb {
F9m*kM9`:g       11、禁止内容换行与强制内容换行
9];B`e,C A@.ls
:k'WNKcx[       在表格或层中我们可能希望内容不换行或强制换行,我们可以通过一些css属性来达到这些要求。
W_c qQROu1U ,c!^c @;~ R ~ c$b|;X
      禁止换行:white-space:nowrap
4@j9yX(G/J
Cp6?)pD_N       强制换行:word-wrap: break-word; word-break: normal; A%}dr%R+tn

:X(DU.p6]cN3em       12、区别relative和absolute
vu i%dQM
fnTU~O*W2Lt       Absolute,CSS中的写法是:position:absolute; 他的意思是绝对定位,他是参照浏览器的左上角,配合TOP、RIGHT、BOTTOM、LEFT(下面简称TRBL)进行定位,在没有设定TRBL,默认依据父级的做标原始点为原始点。如果设定TRBL并且父级没有设定position属性,那么当前的absolute则以浏览器左上角为原始点进行定位,位置将由TRBL决定。2[{OgR3TXt

2L9JU GmS3UIN       Relative,CSS中的写法是:position:relative;  他的意思是绝对相对定位,他是参照父级的原始点为原始点,无父级则以BODY的原始点为原始点,配合TRBL进行定位,当父级内有padding等CSS属性时,当前级的原始点则参照父级内容区的原始点进行定位。ed CTA
J ~)~y.la2S?*t];f
      13、区别div和span
F\8m?.F oo
"YT1[(C/r       div是一个块级元素,可以包含段落,表格等内容,用于放置不同的内容。一般我们在网页通过div来布局定位网页中的每个区块。 KeOa1e ?G K

4aEaO Q E       span是一个内联元素,没有实际意义,它的存在纯粹是为了应用样式,给一段内容加上<span></span>标记可以通过在span上定义样式来设定其内容的样式。 P E7N8lj gW
5iSi-Y%CC2k5Y
      14、区别display和visibility c-w*Rx6xr4w
-A }&e/Qn
      display:none和visibility:hidden都可以隐藏一个元素U7X+qzz KX

U)vwW.x s-V       但visibility:hidden只是隐藏了元素的内容,但其使用的位置空间仍然被保留。而display:none则相当把元素从页面中去除,其占用位置也将被删除。
页: [1]
查看完整版本: 14个常见的CSS技巧及常见问题