两列布局实例
作者:nov99 日期:2009-05-30
<div style="width:200px; float:right;">这是右侧的内容</div>
<div style=" margin-right:210px;">这是左侧的内容,自适应宽度</div>
</div>
<div style="width:150px; float:left;>这是左侧的内容 固定宽度</div>
<div style=" margin-left:160px;>中间内容,自适应宽度</div>
</div>
<div style="width:200px; float:right; >这是右侧的内容 固定宽度</div>
<div style="width:150px; float:left; >这是左侧的内容 固定宽度</div>
<div style=" margin-left:160px;margin-right:210px;>中间内容,自适应宽度</div>
</div>
*{ margin:0; padding:0}
#content{overflow:hidden}
#content #left,#content #center,#content #right{margin-bottom:-10000px;padding-bottom:10000px;width:300px;float:left;}
#content #left{background:#f00;}
#content #center{background:#0ff}
#content #right{background:#f0f}
</style>
<p id="left">left<br />left<br />left<br />left<br />left<br />left</p>
<p id="center">center</p>
<p id="right">right</p>
</div>
中文排版的9则技巧
作者:nov99 日期:2009-05-30
一、如何设定文字字体、颜色、大小 — 使用font
font-style设定斜体,比如font-style: italic;
font-weight设定文字粗细,比如font-weight: bold;
font-size设定文字大小,比如font-size: 12px;(或者9pt,不同单位显示问题参考CSS手册)
line-height设定行距,比如line-height: 150%;
color设定文字颜色(注意不是font-color),比如color: red;
font-family设定字体,比如font-family : "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif;(这是通用的写法)
以上都可以写在一行font属性里(除了color属性需要单独写):
font: italic bold 12px/150% "Lucida Grande", Verdana, Lucida, Arial, Helvetica, 宋体,sans-serif;
二、如何控制段落排版 — 使用margin,text-align
中文段落使用<p>标签,左右(相当于缩进)、段前段后的空白,都可以用margin。比如:
p{
margin: 18px 6px 6px 18px; /*分别是上、右、下、左,十二点开始的顺时针方向*/
}
文字的对齐方式用text-align,比如:
p{
text-align: center; /*居中对齐*/
}
对齐方式还有left、right和justify(两端对齐)
PS.谈起margin,我习惯于在写CSS的时候为所有的标签定义margin: 0; 因为时而出现由于默认的margin值导致页面排版问题,而自己找不到原因(特别注意的是ul/ol/p/dt/dd等标签)
三、竖排文字 — 使用writing-mode
writing-mode属性有两个值lr-tb和tb-rl,前者是默认的左-右、上-下,后者是上-下、右-左。
比如:
p{
writing-mode: tb-rl;
}
可以结合direction排版。
四、项目符号的问题 — 使用list-style
在CSS里项目符号有disc(实心圆点)、circle(空心圆圈)、square(实心方块)、decimal(阿拉伯数字)、lower-roman(小写罗马数字)、upper-roman(大写罗马数字)、lower-alpha(小写英文字母)、upper-alpha(大写英文字母)、none(无)。比如设定一个列表(ul或ol)的项目符号为方块,如:
li{
list-style: square;
}
另外list-style还有一些值,比如可以采用一些小图片作为项目符号,在list-style下直接写url(“图片地址”)就可以了。注意如果一个项目列表的左外补丁(margin-left)设为零的时候,list-style-position: outside(默认是outside)的项目符号不会显示。可惜的是上述的项目符号似乎并不能设定大小,圆点和方块始终是那么点。并且不能设定垂直方向上的对齐。
五、首字下沉 — 使用:first-letter
伪对象:first-letter配合font-size、float可以制作首字下沉效果。
比如:
p:first-letter{
padding: 6px;
font-size: 32pt;
float: left;
}
六、首行缩进 — 使用text-indent
text-indent可以使得容器内首行缩进一定单位。比如中文段落一般每段前空两个汉字。可以这么写:
p{
text-indent: 2em; /*em是相对单位,2em即现在一个字大小的两倍*/
}
如果font-size是12px的话,那么text-indent: 2em则缩进24px。
七、关于汉字注音 — 使用ruby标签和ruby-align属性
比如说<ruby>注音<rt style="font-size: 11px;">zhu yin</rt></ruby>,可以利用ruby-align设置对齐方式。这是在CSS手册里面看到的,具体可以自行查阅ruby-align项。
八、固定宽度汉字截断 — 使用text-overflow
用后台语言可以对从数据库里的字段内容做截断处理,比如说截12个汉字(之后用省略号)。但是有时还需要html标签的过滤等,而用CSS来控制则没有这个问题。比如对列表应用以下样式:
li{
overflow:hidden;
text-overflow:ellipsis;
white-space:nowrap;
}
不过只能处理文字在一行上的截断,不能处理多行。
九、固定宽度汉字(词)折行 — 使用word-break
举个例子,比如说要在一个固定宽度容器里面显示很多地名(假设以空格分隔),为了避免地名中间断开(即一个字在上面而另一个字折断到下一行去了)。则可以使用word-break。比如:
<div style="width:210px;height: 200px;background: #ccc;word-break:keep-all">
南京上海 上海上 南 上海上海 南京 上海上海上海 南京上海 上海 南京上海 上海 南京 上海 南京 上海 南京 上海 南京 上海 南京 上海 南京上海 上海 南京上海 上海
</div>
值得注意的是里面的空格不能以 代替(最少要有一个软空格)。
CSS网页布局小技巧
作者:nov99 日期:2009-05-28
1、如果一组要嵌套的标签之间需要些间距的话,那就留给位于里面的标签的margin属性吧,而不要去定义位于外面的标签的padding
2、li标签前面的图标推荐使用background-image,而不是list-style-image。
3、如果你给一个标签设置了一个深色调的背景图片和亮色调的文字效果。建议这个时候给你的标签再设置一个深色调的背景颜色。
4、定义链接的四种状态要注意先后顺序: Link Visited Hover Active
5、与内容无关的图片请使用background
6、完美的单象素外框线表格(在IE5、IE6、IE7及FF1.0.4以上中均可通过测试) 以下是引用片段:
table{border-collapse:collapse;}
td{border:#000 solid 1px;}
7、如果文字过长,则将过长的部分变成省略号显示:IE5,FF无效,但可以隐藏,IE6有效
<DIV STYLE=”width:120px;height:50px;border:1px solid blue;overflow:hidden;text-overflow:ellipsis”>
<NOBR>就是比如有一行文字,很长,表格内一行显示不下.</NOBR>
8、在IE中可能由于注释带来的文字重复问题时可以把注释改为:
<!–[if !IE]>Put your commentary in here…<![endif]–>
CSS属性的缩写
作者:nov99 日期:2009-05-25
色彩缩写
color:#113366 可以简写为color:#136
所有用到16进制色彩值的地方都可以使用简写,比如background-color、border-color、text-shadow、box-shadow等。
盒子大小
margin和padding,以margin为例,padding与之相同。
margin-top:1px; margin-right:1px; margin-botton:1px; margin-left:1px;可以简写为 margin:1px 1px 1px 1px;
缩写的顺序是上->右->下->左。顺时针的方向。相对的边的值相同,则可以省掉:
margin:1px;//四个方向的边距相同,等同于margin:1px 1px 1px 1px; margin:1px 2px;//上下边距都为1px,左右边距均为2px,等同于margin:1px 2px 1px 2px margin:1px 2px 3px;//右边距和左边距相同,等同于margin:1px 2px 3px 2px; margin:1px 2px 1px 3px;//注意,这里虽然上下边距都为1px,但是这里不能缩写。
边框(border)
border是个比较灵活的属性,它有border-width、border-style、border-color三个子属性。
border-width:数字+单位; border-style: none || hidden || dashed || dotted || double || groove || inset || outset || ridge || solid ; border-color: 颜色 ;
制作网页气泡状文本框
作者:nov99 日期:2009-05-25
div+css布局"精简代码"!
作者:nov99 日期:2009-05-25
怎样做到最精简的代码,极限提升网站速度的目的
1、css样式尽量合并成一个外部文件,采用link方式导入到网页中来,可以减少不少内嵌在网页中的css代码。
2、多用全局样式,比如网页中只有一个h1标签,那么直接在css文件中定义h1的样式,如h1{......},而不要给h1标签加class或者id来定义样式,这样一来就可以省略class=""或id="",整个网页精简下来就可以简洁不少代码。
3、多采用父级继承样式控制,在div中尽量使用不同标签来控制网页表现形式,比如一个div中需要有3个不同颜色的文字,这样做同样可以减少不少的class和id。
--------------------------------------------------------
<div>
第一种文字
<span>第二种文字</span>
<font>第三种文字</font>
</div>
css样式可以这样写:
div { color: #000}
div span { color: #f00}
div font { color: #0f0}
--------------------------------------------------------
tl.gif,左上方的圆角。
tr.gif,右上方的圆角。
bl.gif,左下方的圆角。
br.gif,右下方的圆角。
angle.gif,突出的三角形。


