DIV+CSS设计网页布局时,如何将菜单导航部分背景自适应屏幕宽度,而让导航内容居中?

html-css013

DIV+CSS设计网页布局时,如何将菜单导航部分背景自适应屏幕宽度,而让导航内容居中?,第1张

这是由两个div来实现的,首先建立一个外层div并设置宽高,要使宽度随屏幕宽度变化(即浏览器宽度变化),那么宽度就得设置100%,高度设置为你需要的高度即可,具体属性为 width:100%height:你自己的高度background:你需要的颜色这样就让该div随屏幕(浏览器)宽度变化而变化了。然后在这个div里面再嵌套一个div给定一个宽高属性,就是你导航的宽高,要使之居中,各人使用的方法也有所不同,但是常用的还是margin属性,具体属性如下 width:你导航的宽度height:你导航的高度margin:0 auto 这样就实现了,如果背景是图片的话就更改background属性即可,还有不明白的随时Hi我。

用div+css的ul、li结合script脚本实现下拉列表菜单,全部代码如下,复制在DW中预览即可看到效果,细节样式可以自行修改:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />

<title>DIV+CSS实现下拉列表菜单</title>

<style type="text/css">

<!--

ul {

margin: 0px

padding: 0px

list-style-type: none

}

li{

float:left

width:160px

margin-left:1px

}

ul li a{

display:block

font-size:12px

border:#CCCCCC 1px solid

padding:3px

text-decoration:none

color:#777777

margin-top:1px

text-align:center

}

ul li a:hover{

background-color:#0099CC

color:#FFFFFF

}

li ul{

display:none

top:20px

margin-top:1px

}

li:hover ul,li.over ul{

display:block

}

-->

</style>

</head>

<script type="text/javascript"><!--//--><![cdata]//><!--

startlist = function() {

if (document.all&&document.getElementByIdx) {

navRoot = document.getElementByIdx("nav")

for (i=0i<navRoot.childNodes.lengthi++) {

node = navRoot.childNodes[i]

if (node.nodeName=="li") {

node.onmouseover=function() {

this.className+=" over"

}

node.onmouseout=function() {

this.className=this.className.replace(" over","")

}

}

}

}

}

window.onload=startlist

//--><!]]></script>

</script>

<body>

<ul >

<li><a href="">文章</a>

<ul>

<li><a href="">CSS 教程</a></li>

<li><a href="">DOM 教程</a></li>

<li><a href="">XML 教程</a></li>

<li><a href="">Flash 教程</a></li>

</ul>

</li>

<li><a href="">参考</a>

<ul>

<li><a href="">XHTML</a></li>

<li><a href="">XML</a></li>

<li><a href="">CSS</a></li>

</ul>

</li>

<li><a href="">Blog</a>

<ul>

<li><a href="">全部</a></li>

<li><a href="">网页技术</a></li>

<li><a href="">UI 技术</a></li>

<li><a href="">Flash 技术</a></li>

</ul>

</li>

<li><a href="">摇滚</a>

<ul>

<li><a href="">纯音乐</a></li>

<li><a href="">古典金曲</a></li>

<li><a href="">UI 技术</a></li>

<li><a href="">Flash 技术</a></li>

</ul>

</li>

</ul>

</body>

</html>

两个DIV用的一个样式规则,自然是在一行里了 你可以为第二个DIV专门设置一个附加的规则,比如 .newline{ clear:both} 然后第二个div改成 <div class="top newline">或者直接把第二个DIV改成 <div class="top" style="clear:both">