css设置块元素在div内竖着排列

html-css010

css设置块元素在div内竖着排列,第1张

<div id="main" style="float:leftwidth:100pxheight:500px">

<div id="left" style="float:left width:20pxheight:20px padding-right:10px">

<div id="l1"></div>

<div id="l2"></div>

<div id="l3"></div>

</div>

<div id="middle" style="float:left width:20pxheight:20px padding-right:10px">

<div id="m4"></div>

<div id="m5"></div>

<div id="m6"></div>

</div>

<div id="right"style="float:left width:20pxheight:20px padding-right:10px">

<div id="r7"></div>

<div id="r8"></div>

<div id="r9"></div>

</div>

</div>

思路,一个大div main里面放三个小div 左中右

左边放三个div 左1左2左3,float左浮动。一定要设置长宽,这样才能浮动。

同理 中间放三个,右边放三个。。

方法有很多:

1.浮动(float:left),这个样式就可以让这3列都脱离文档流,然后竖向排列,至于每一列的大小宽高可以通过设置(比如:width:90pxheight:200px),但是,这个方法有个缺点,因为脱离文档流,所以需要这些标签的父级标签清除浮动;方法如下

加一个clear的 类

.clear{zoom:1}

.clear:after{content:''display:blockclear:both}

2.display: inline-block每一列都加上这个样式,最好是能够也加上vertical-align: top避免排列出错

一、使用writing-mode属性

语法:writing-mode:lr-tb或writing-mode:tb-rl

参数:

1、lr-tb:从左向右,从上往下

2、tb-rl:从上往下,从右向左

运行代码发现,IE显示正常,火狐却不行,所以不建议使用writing-mode属性,下面使用模拟方法实现。

 二、模拟文字竖排

代码:

ul{width:100pxheight:80pxoverflow:hiddenlist-style:none}

ul li{float:rightdisplay:inlinemargin-left:4pxwidth:14pxheight:100pxfont-size:14pxword-wrap:break-wordword-break:nomal}

此方法让li右浮动,设置li宽度和字宽度一样都是14px,这样就自动换行了。另外,“word-wrap:break-wordword-break:nomal”这句实现标点自动换行(连续字符自动换行)。