2024年3月25日发(作者:)

div+css网页标准布局实例教程(二)

五、布局页面——头部和导航

有了上边的基础,下面的任务就是要利用html和css制作完成一个完整的网页了。

先从头部开始,第三小节时我们已经把整体框架给搭建好了,就像盖房子一样,整体结构已

经出来了,下面就需要填砖分割空间了。先分析下头部:分为两部分,一个是logo靠左侧

显示,一个是搜索靠右侧显示,那么布局时插入两个div,一个向左浮动,一个向右浮动的

方式来完成。另外还有很多种实现方法,比如logo用h1标签,搜索用span,或者把log

o做为背景图片也是可以的,不管采用哪种方法,要根据页面的需求选用一种最合理的方法。

如果要在logo加上链接的话,那么就不能用背景图片的方法了。

先在header里插入以上两块元素。然后分别插入相应的内容,在logo里插入我们事

先切割好的logo图片,在search里插入一个表单,一个文本框和一个按钮,插入后如下:

接下来定义css吧,在ps里测量,头部的高度是71px,logo距顶部18px,搜索产

品距顶部30px,下面在css里把这些参数都给定义上,看显示的效果和效果图中的效果是

不是一样呢?

#logo { float:left; margin-top:18px;}

#search { float:right; margin-top:30px;}

这两项的位置已经差不多了。预览你会发现,搜索框和按钮跟效果图中的不一样,这

是因为我们还没对它设置样式,接下来把文本框增加一个class为inp_srh样式,按钮增

加btn_srh的样式,然后定义这两个样式的属性。

#search { float:right; height:24px; margin-top:30px; color:#444;}

.inp_srh { width:140px; height:17px; padding-left:20px; background:url(../images/srh_

) 0 0 no-repeat; border:1px solid #cbcbcb;}

.btn_srh { width:58px; height:23px; background:url(../images/btn_) 0 0 no-repe

at; border:none; cursor:pointer; text-indent:-999em;}

#search * { vertical-align:middle;}

我们给search增加了高度和文字颜色,这点不用多解释,但高度为什么是24px,是

为了照顾 IE6,大家去掉测试下就知道了;

inp_srh的宽度和高度并不是实际效果图中的宽高,是因为默认情况下文本框带有内

边距造成的。另外就是padding的值也会算到总宽度上的;

btn_srh就是应用背景图像来实现的,说明一点这里的border的值为none指的是

无边框,cursor定义鼠标样式为手形,之前许多朋友用hand,但这个通不过w3c认证。

text-indent:-999em这个属性许多朋友可能不理解是干什么用的了,它的作用相当于wo

rd中的首行缩进,这里设置成-999,意思是向左侧缩进-999em,这样是不是就看不到文

字啦,所以它的作用是将按钮上的文字隐藏,当然也可以在html代码中插入空格代替文字,

但这样做有点不太好,在不支持css的设备上查看时,用户不知道这个按钮是干什么的了。

所以建议采用这种形式;

有必要解释下最后一行,它的特殊之处在样式名和大括号之间加了一个*号,这里兼容

所用的,属于css hack部分内容,是定义这些元素都垂直居中对齐。css hack本身就是

无意思的东西,所以不做过多解释,知道当需要垂直居中对齐时就采用这种写法就行了,但

是一定不要滥用,这个属性也是有缺陷的,当有英文和中文同时出现时,英文会靠上显示的。

有关css hack更多的内容,请参考/special/css_hack/

这些设置完后,把最初搭建框架时设置的header的背景色和底部外边距给去掉吧。

#header { height:71px;}

至此,头部的样式就完成了,下边该制作导航了。分析一下,导航分为一级导航和二

级导航,所以我需要在nav下再插入nav_main和nav_son两个块元素。