css五大秘籍1
[color=#000][font=Verdana][size=9.5pt]6.css[font=宋体]盒模型[/font][font=Verdana]hack[/font][font=宋体]的另一选择[/font][/size][/font][/color][color=#000][font=Verdana][size=9.5pt]css[font=宋体]盒模型[/font][font=Verdana]hack[/font][font=宋体]被用来解决[/font][font=Verdana]IE6[/font][font=宋体]之前的浏览器显示问题,[/font][font=Verdana]IE6.0[/font][font=宋体]之前的版本会把某元素的边框值和填充值包含在宽度之内(而不是加在宽度值上)。例如,你可能会使用以下[/font][font=Verdana]css[/font][font=宋体]来指定某个容器的尺寸:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]QUOTE:[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]#box[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]width: 100px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]border: 5px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]padding: 20px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]}[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]然后在[font=Verdana]html[/font][font=宋体]中应用:[/font][font=Verdana]<div id="box">...</div> [/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]盒的总宽度在几乎所有浏览器中为[font=Verdana]150[/font][font=宋体]像素([/font][font=Verdana]100[/font][font=宋体]像素宽度[/font][font=Verdana]+[/font][font=宋体]两条[/font][font=Verdana]5[/font][font=宋体]像素的边框[/font][font=Verdana]+[/font][font=宋体]两个[/font][font=Verdana]20[/font][font=宋体]像素的填充),唯独在[/font][font=Verdana]IE6[/font][font=宋体]之前版本的浏览器中仍然为[/font][font=Verdana]100[/font][font=宋体]像素(边框值和填充值包含在宽度值中),盒模型的[/font][font=Verdana]hack[/font][font=宋体]正是为了解决这一问题,但是也会带来麻烦。更简单的办法如下:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]QUOTE:[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]css:[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]#box[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]width: 150px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]}[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]#box div {[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]border: 5px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]padding: 20px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]}[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]html:[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]<div id="box"><div>...</div></div>[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]这样一来在任何浏览器中盒的总宽度都将是[font=Verdana]150[/font][font=宋体]像素。[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]7.[font=宋体]将块元素居中[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]假设你的网站使用了固定宽度的布局,所有的内容置于屏幕中央,可以使用以下的[font=Verdana]css[/font][font=宋体]:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]QUOTE:[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]#content[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]width: 700px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]margin: 0 auto;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]}[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]你可以把[font=Verdana]html[/font][font=宋体]的[/font][font=Verdana]body[/font][font=宋体]之内任何项目置于[/font][font=Verdana]<div id="content"></div>[/font][font=宋体]中,该项目将自动获得相等的左右边界值从而保证了居中显示。不过,这在[/font][font=Verdana]IE6[/font][font=宋体]之前版本的浏览器中仍然有问题,将不会居中,因此必须修改如下:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]QUOTE:[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]body[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]text-align: center;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]}[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]#content[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]text-align: left;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]width: 700px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]margin: 0 auto;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]}[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]对[font=Verdana]body[/font][font=宋体]的设定将导致主体内容居中,但是连所有的文字也居中了,这恐怕不是你想要的效果,为此[/font][font=Verdana]#content [/font][font=宋体]的[/font][font=Verdana]div[/font][font=宋体]还要指定一个值:[/font][font=Verdana]text-align: left[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]8.[font=宋体]使用[/font][font=Verdana]css[/font][font=宋体]实现垂直居中[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]垂直居中对表格来说是小菜一碟,只需指定单元格为[font=Verdana]vertical-align: middle[/font][font=宋体]即可,但这在[/font][font=Verdana]css[/font][font=宋体]布局中不管用。假设你将一个导航菜单的高度设为[/font][font=Verdana]2em[/font][font=宋体],然后在[/font][font=Verdana]css[/font][font=宋体]中指定垂直对齐的规则,文字还是会被排到盒的顶部,根本没有什么区别。[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]要解决这一问题,只需将盒的行高设为与盒的高度相同即可,以这个例子来说,盒高[font=Verdana]2em,[/font][font=宋体]那么只需在[/font][font=Verdana]css[/font][font=宋体]中再加入一条:[/font][font=Verdana]line-height: 2em [/font][font=宋体]就可实现垂直居中了![/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]9. [font=宋体]容器内的[/font][font=Verdana]css[/font][font=宋体]定位[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]css[font=宋体]的最大优点之一就是可以将对象定位在文档的任何位置,同样的也可以将对象在某容器内进行定位。只需要为该容器添加一条[/font][font=Verdana]css[/font][font=宋体]规则:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]QUOTE:[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]#container[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]position: relative;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]} [/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]则容器内的任何元素的定位都是相对于该容器的。假定你使用以下[font=Verdana]html[/font][font=宋体]结构:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]<div id="container"><div id="navigation">...</div></div>[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]如果想将[font=Verdana]navigation[/font][font=宋体]定位在容器内离左边界[/font][font=Verdana]30[/font][font=宋体]像素,离顶部[/font][font=Verdana]5[/font][font=宋体]像素,可以使用以下[/font][font=Verdana]css[/font][font=宋体]语句:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]QUOTE:[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]#navigation[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]position: absolute;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]left: 30px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]top: 5px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]} [code]10.[font=宋体]延伸至屏幕底部的背景色[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]css[font=宋体]的缺点之一是缺乏垂直方向的控制,从而导致了一个表格布局不会遇到的问题。假设你在页面的左侧设定了一列用于放置网站的导航。页面为白色背景,但你希望导航所在的列为蓝色背景,使用以下[/font][font=Verdana]css[/font][font=宋体]即可:[/font][font=Verdana][code]QUOTE:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]#navigation[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]background: blue;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]width: 150px;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]} [code][font=宋体]问题在于导航项不会一直延伸到页面的底部,自然它的背景色也不会延伸到底部。于是左列的蓝色背景在页面上被半路截断,浪费了你的一番设计。怎么办呢?很不幸我们现在只能用欺骗的办法,即将[/font][font=Verdana]body[/font][font=宋体]的背景指定为与左列同颜色同宽度的图片,[/font][font=Verdana]css[/font][font=宋体]如下:[/font][font=Verdana][code]QUOTE:[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]body[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]{[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]background: url(blue-image.gif) 0 0 repeat-y;[/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]} [/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]背景图应为宽[font=Verdana]150[/font][font=宋体]像素的蓝色图片。这一办法的缺点是没法使用[/font][font=Verdana]em[/font][font=宋体]来指定左列的宽度,当用户改变文字的大小导致内容的宽度扩张时,背景色的宽度不会随之改变。[/font][/size][/font][/color]
[color=#000][font=Verdana][size=9.5pt]到写这篇文章为止这是对这类问题的唯一解决办法,因此你只能为左列使用像素值来获得能够自动延伸的不同的背景色。 [/size][/font][/color]
页:
[1]