dodolook论坛 » 社会万象 » IE与Firefox通用的三则网站重构实用技巧

页: [1]

日夏清2007-12-17 06:50
IE与Firefox通用的三则网站重构实用技巧

使用zoom、overflow解决IE6、IE7、[url=http://www.clearold.cn]Firefox[/url]下嵌套容器清除浮动问题 hc@U:`X5MJkk
n)e_r(V;l

q6Qu m}3Xd+N-{   我们经常遇到一个容器外面套一个边框,边框高度随容器高度变化,但是当边框内容器设置了浮动属性后,外框就不跟随变化,这时就需要清除浮动。给外边框容器加上overflow:auto的属性,可以解决IE7和[url=http://www.clearold.cn]Firefox[/url]下的清除浮动问题,但是IE6下不生效,我们需要使用IE的一个私有属性zoom使IE5.5 的浏览器达到外框跟随变化的效果。
"F)]6b{'A U1_ Co ,D*~ fE&K y;w
]v1F\4{h(Y.o
  需要注意的几个细节问题,例如我们建立一个样式为text的容器,宽200象素,高度自适应,外面包一个样式为content的10象素的外框。(如图1)#a G bm {
pT6EdIx
5a'Qc{6y$Us7H
4w T"T$pN6t4G9f
9vPy|,c1x@7^(E[
图12g @7Hp*ppl:sh
[img]http://i2.sinaimg.cn/IT/cr/2007/1122/1795428078.jpg[/img]
:q?z4F N3S
e$x%R p ZJ I,Ma!P)[U$w)f!e;q
      代码如下:
2lJ:zS,GD_pQk 以下是引用片段:2@Y2_/P(Z7E!M
<style type="text/css">
:}$j-G G Ke!k A .content{ border:10px solid #F00;}
(f|NJh .text{ width:200px; height:300px; background:#000;}
u'D_)f{{ </style> Xm3@ ~ CBJ

I c:QCXi&R'b <body bgcolor="#[url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url]">
?.O7U$yR,`9} <div class="content"> b-vP2B,ON,V
    <div class="text"></div>
o hK7|$Ce^(Xa </div>
0C)RyIW[DWP9h&R </body>
!Y\b5F+Dt!{
i? IE,SkS .Z2PU;g)`1C]X!_
  如果我们为text容器设置了左浮动的属性,并将content容器定义了200象素的宽,就需要为content容器增加overflow:auto属性,以清除text容器的浮动。否则[url=http://www.clearold.cn]Firefox[/url]下则会出现问题。(如图2)]| hLi1we!~ @

/Z8H g^5qW cT\F%_"^t
'QDY'}a y}g
图2p#]0jrXo
[img]http://i1.sinaimg.cn/IT/cr/2007/1122/1146394640.jpg[/img]
oI5s*n t$TU p.U {:i;ZS.Y \B P8[H
      代码如下:
Nxzo*}j)T~{N~#X 以下是引用片段: uP`6E!N
<style type="text/css"> s;@|w1W}
.content{ border:10px solid #F00; width:200px; overflow:auto;} ynai$pVI:S
.text{ width:200px; height:300px; background:#000; float:left;}
;j%r2w ?6z6w\,I </style> ;l$l7CG A
/a j6C;nNz
<body bgcolor="#[url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url]">
"vRwL"@yC(E <div class="content"> _Rn.P%k Y HD*{
    <div class="text"></div>
9Ls,Bd r </div>
a'wW8abA| </body> 8l,T{'^8k6d
  
rg?9W"A   除此之外还有一种比较特殊的情况,如果在不设定content宽度的情况下,仅仅使用overflow:auto,在IE5.5 下是无法实现清除浮动的效果的。为此我们需要使用一个IE的私有属性zoom来使IE下达到所需效果。'L]gBH2z0O

4`5g:z1b+o(?(n4M       代码如下:
"G$dy8{d:s\ L;@1E4T\d:V
以下是引用片段:
b&`9e*s5u <style type="text/css"> `8AK t*{,q
.content{ border:10px solid #F00; overflow:auto; zoom:1;}
F-c9o.g)S5Rs .text{ width:200px; height:300px; background:#000; float:left;}
6`f}}8cUw:? </style> 'H:T S(J,e
wEpe i5O
<body bgcolor="#[url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url]"> OG5xXXV"?
<div class="content"> &[3BWA3M3L7?/x
    <div class="text"></div> %o7U\Tq%XD
</div> {(}Q&\#{X Z&DC#t
</body> m0f7gwX D a
l{+\]v$Z

&zJ$M~w,xo$t-B       使用链接样式模拟图片热区ZrF#I#m Xy
Dk&X0H&J Y&Mn
  如果为一副不规则图片添加区域链接,很多朋友都会考虑使用Dreamweaver的热区功能,其实如果需要添加链接的区域是规则的矩形形状,我们可以使用样式表控制链接的样式来模拟热区的效果,代码少,易于维护和修改。
2m+R+x{0r$G
+`~@,T\BA
E)V^A$n&l8B   例如我们要在一张400×100的背景图片上建立一个100×50大小和200×80大小的矩形热区。(如图3)0V3|^x7o
;jNrO H0t)B @_
b$tT7y v:kr*xf
?Kz'[9Kt ]
图3H:|p/Y:N-XY:V
[img]http://i0.sinaimg.cn/IT/cr/2007/1122/3719869774.jpg[/img]
zKN2bx*D-Py       代码如下:g[AR@w
以下是引用片段:
/T^`\`+`F/pu <style type="text/css"> 3M&zN,C/n}
#banner{ width:400px; height:100px; background:#959595;} vGo'a r};G#s
#banner a{ float:left;} 7V0}9hg BC
#banner a.link1{ width:100px; height:50px; background:#F00; margin:20px 0 0 20px;} ;p'F@_F+uDLE*_a
#banner a.link2{ width:200px; height:80px; background:#F00; margin:10px 0 0 50px;} +h+qO'Yq4Z
</style> .w/Rq @ dq
4i2@I(b5]~\b
<body bgcolor="#[url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url]"> w)~W8i3O5Q
<div id="banner">
Mp Y p*~i8^@&I^$f*V     <a href="#" class="link1"></a> /pRA n@-j \
    <a href="#" class="link2"></a> .y&A M!N:MS~c*N4tr
</div> W f\f6WGy]%z
</body> GaI7iBu
  
AI+}6Nd)e l4UJ k+M4x X8XWM+YrR

` _ m[nNr;IE,j7G   通过这种将链接变成块属性的方法,可以方便的定义矩形热区,并通过样式控制每个区域的位置,并且代码清晰,修改方便。!T?0Rccu!U5QxX
p-HM*{&cyh
      使用列表实现图片排版自动更新排列/Ue2J%k2i5@\
a?%j$G4y-w rv3Q3S

]0Y{O2zA   在制作图片站点的时候,经常会用到图片排版,并且最新更新的图片显示在最前面,后面依次类推。使用表格可以实现这样的效果,但是略显复杂,下面分享一下我使用列表完成的效果。
G,nQ I&x%e2~[t
3m"@T` @p-N
W5R_9o'M&`a1xaV   图片尺寸为100×80象素,每行3列。(如图4)
3K+w"~W a
6T+{$E8zB r,tV#c
%l&uz#q5i
(f z^r&Y+r { 图4@2N2k*gP$S(^
[img]http://i0.sinaimg.cn/IT/cr/2007/1122/2957973874.jpg[/img]
G8gH?$Ab(MXu$h       代码如下:8^2cV w fv$b#S Vg2?6K
以下是引用片段:
A ~_@ ?%rqR <style type="text/css">
{E9J9v:Y ^ ul{ margin:0; padding:0 0 20px 0; list-style:none; width:380px; overflow:auto; background:#959595;}
/iB3D'tS ul li{ float:left; display:inline; width:100px; height:80px; background:#F00; margin:20px 0 0 20px;} 4qW"C y(d thu0~b
</style>
V;yE wPx9y2\ 7v+pV~qj$u
<body bgcolor="#[url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url][url=http://www.clearold.cn]Firefox[/url]">
w*qa;{ {Bu@"s <ul> K#i:[&c~s:t-R2`
    <li>4</li> *ztB"kk9Y+d\
    <li>3</li>
uW}Yy?!V9F/M     <li>2</li> :kro`$Wp
    <li>1</li> NG2~ mq9~ V
</ul>
#y;q%fbL1U </body>
*BO ZJHG+c!Ei   
t p~+_7E`G
`!V'lw0Fbh7I ]#Z P7{*m,FC;\*o#l
  这样只要每次增加一行列表,就可以完成图片的自动更新排版。这里需要大家注意两点:
Gv1M4o I#[1j o9zxn#qGh
  一、和第一个例子讲的一样,<li>使用了浮动属性,所以<ul>需要使用overflow:auto来清除浮动;
2YB&m&R3^"ow $sRS?S2H
  二、示例代码中对<li>使用了display:inline属性,是为了解决IE6下左浮动双倍边距的bug,这个小技巧希望朋友们注意。 Gpr.T2Y

rG1C o0j,J'L   注:以上示例在IE6、IE7、[url=http://www.clearold.cn]Firefox[/url]浏览器下测试通过。


查看完整版本: IE与Firefox通用的三则网站重构实用技巧


© 2006 Dodolook.org.cn. Powered by Discuz! Archiver
沪ICP备06041501号 发展/技术支持:爱之动力