歡迎光臨LoveB的部落格
垂直三栏布局拥有相同高度的方法
查看( 2874 ) /
评论( 1 )
作者: Alan PearceLUPA开源社区nM3\fO^WBjf
原文: Multi-Column Layouts Climb Out of the BoxLUPA开源社区9\)}/{%_!E-L:t;y
地址: http://alistapart.com/articles/multicolumnlayoutsLUPA开源社区9E,Oe/XIq5^ `
我们都了解拥有相同高度的布局是很麻烦的事,有很多相关资料提到过相关设计方法,所以在这我就不多做解释了。LUPA开源社区 MV/b1K%Mef5n PH%K&d
最近在研究一个两个栏目的动态布局,每个栏目背景不同。我立刻想起了Dan Cederholm的Faux Columns,但我仍然需要一个动态布局的方法。我又看了完美布局的文章One True Layout,但是有很多bug,需要许多注释和程序。甚至考虑用JavaScrip来实现栏目始终保持同一高度,但是不行。绝望之余,几乎要用table布局,不,一定还有更好的方法。我想着一个问题“盒子外面是什么”,border!如果我可以使“sidebar”(或"rail")的div相对与“content”的div浮动,就可以实现多栏目相同高度。这个方法在很多地方介绍过:Douglas Livingstone的introduced ,Holly的extended John Bergevin的Position Is Everything。由one true layout的方法发展而来,用更简洁清楚的代码 实现了两个栏目的动态变化。下面是代码:
0of;zxKddz0HTML:
看看效果。See it in action 。试改变字体大小,布局随之变化。
pA6goh5R'Y(l#t'Ce03个栏目:3个颜色LUPA开源社区 D` J;H!j\#Ch#u9_
3个栏目的布局有点不同:直接给container div加border.LUPA开源社区5f:fs'So-fUg!L
HTML:
原文: Multi-Column Layouts Climb Out of the BoxLUPA开源社区9\)}/{%_!E-L:t;y
地址: http://alistapart.com/articles/multicolumnlayoutsLUPA开源社区9E,Oe/XIq5^ `
我们都了解拥有相同高度的布局是很麻烦的事,有很多相关资料提到过相关设计方法,所以在这我就不多做解释了。LUPA开源社区 MV/b1K%Mef5n PH%K&d
最近在研究一个两个栏目的动态布局,每个栏目背景不同。我立刻想起了Dan Cederholm的Faux Columns,但我仍然需要一个动态布局的方法。我又看了完美布局的文章One True Layout,但是有很多bug,需要许多注释和程序。甚至考虑用JavaScrip来实现栏目始终保持同一高度,但是不行。绝望之余,几乎要用table布局,不,一定还有更好的方法。我想着一个问题“盒子外面是什么”,border!如果我可以使“sidebar”(或"rail")的div相对与“content”的div浮动,就可以实现多栏目相同高度。这个方法在很多地方介绍过:Douglas Livingstone的introduced ,Holly的extended John Bergevin的Position Is Everything。由one true layout的方法发展而来,用更简洁清楚的代码 实现了两个栏目的动态变化。下面是代码:
0of;zxKddz0HTML:
CODE:LUPA开源社区|N*kNw0y+JX
LUPA开源社区Xj
^l6p"l
<div id="container">
rw\*B Ks!gP0 <div id="content">This is<br />some content</div>LUPA开源社区3P*I-}`G#Vs
<div id="rail">This is the rail</div>
o!?Hu,~C0</div>
#M0Zvh"gj5d0CSS:
A a.w9\5i.G0#container{
vk~?I0tD
P!i0 background-color:#0ff;
h+O3Kl&V|4D#{,kG0 overflow:hidden;LUPA开源社区
R Q1n
O%jk%W
width:750px;LUPA开源社区Xj'oC2}'A4K6yK
}
{ \(^~#n
l0#content{
a`A;}@;u%f0 background-color:#0ff;LUPA开源社区"t'Vu*xS{,e
width:600px;LUPA开源社区P#CBS+uIM#k/I w
border-right:150px solid #f00; »
1\0l$E.EFA0 /* The width and color of the rail */LUPA开源社区:a t7s[Tr+[
margin-right:-150px; /* Hat tip to Ryan Brill */
d&E;Ew(l
I1J0 float:left;LUPA开源社区7dY1s7m i$q
}
v MS#~8R8O0#rail{LUPA开源社区%Own2VFj4RS-K3YI
background-color:#f00;LUPA开源社区.X$a4OH"waK8I]
width:150px;
BC:s
HEa?0 float:left;
`C/~m/{1G M0}给content div右加border,颜色宽度和rail一样,并相对与rail浮动。Margin:-150px;使rail div移到margin腾出的空间。如果content div变的比rail div 高,border随content div变高。视觉效果就是好像rail div也在变高。container的颜色设定和content div一样,如果rail div达到最高,container随之变高,这样就给我们content变高的效果。LUPA开源社区!mV@2muH v ^U.X看看效果。See it in action 。试改变字体大小,布局随之变化。
pA6goh5R'Y(l#t'Ce03个栏目:3个颜色LUPA开源社区 D` J;H!j\#Ch#u9_
3个栏目的布局有点不同:直接给container div加border.LUPA开源社区5f:fs'So-fUg!L
HTML:
CODE:
@{#z]ds0A0
CH9m#FE2Cs
b]0<div id="container">LUPA开源社区)TH#Q\*?
KD7n
<div id="center">CENTER<br />COLUMN CENTER</div>LUPA开源社区c%D;S-@r
<div id="leftRail">LEFT RAIL</div>
Qix7p5\{:a.wL5r0 <div id="rightRail">RIGHT RAIL</div>LUPA开源社区[HWG|b U
</div>
QU.\*s y/I0CSS:
C p]%R4[Ss\p{w0#container{
@.E!Qhs$uCH0 background-color:#0ff;LUPA开源社区,a-_%U(YYYd4Y
float:left;
E&t/gN.l;h ?0 width:500px;