css进阶:彻底弄懂CSS盒子模式之二
* {
margin: 0px;
padding: 0px;
}
* {
margin: 0px;
padding: 0px;
}
* {
margin: 0px;
padding: 0px;
}
* {
margin: 0px;
padding: 0px;
}
* {
margin: 0px;
padding: 0px;
}
* {
margin: 0px;
padding: 0px;
}
* {
margin: 0px;
padding: 0px;
}
2.组装最外边的大盒子nav,宽200px,高为自动auto或者干脆不要,背景图片为bj.jpg,背景纵向重复,用到样式:
.nav {
background: url(bj.jpg) repeat-y;
width: 200px;
overflow: hidden;
}
.nav {
background: url(bj.jpg) repeat-y;
width: 200px;
overflow: hidden;
}
.nav {
background: url(bj.jpg) repeat-y;
width: 200px;
overflow: hidden;
}
.nav {
background: url(bj.jpg) repeat-y;
width: 200px;
overflow: hidden;
}
.nav {
background: url(bj.jpg) repeat-y;
width: 200px;
overflow: hidden;
}
.nav {
background: url(bj.jpg) repeat-y;
width: 200px;
overflow: hidden;
}
.nav {
background: url(bj.jpg) repeat-y;
width: 200px;
overflow: hidden;
}
3.组装每条导航的盒子lanList,这个盒子与“勾月”图形等高,并把“勾月”图形以背景形式放在这个盒子的左边,并让这个盒子靠左边对齐(因为这个盒子的宽度比外边的大盒子小,如果相等则可以不用考虑对齐方式),这里用到样式float的属性,本人没有写入样式中则取其默认值,样式代码如下:
.lanList {
background: url(lan.gif) no-repeat left center ;
height: 50px;
width: 190px;
}
4.组装比每条导航栏稍小的内部盒子lanBoxIn,这个盒子让它右对齐,并与其父级盒子lanList内容边界上边形成15px边界,目的是让内容块看起来居中(当然你也可以用到下边界来实现,达到目的就可以),样式代码如下:
.lanBoxIn {
float: right;
height: 20px;
width: 170px;
margin: 15px 0px 0px 0px;
}
5.组装黄色修饰块盒子span,这个盒子与父级盒子lanBoxIn等高,并在lanBoxIn盒子内左对齐,样式代码如下:
.lanBoxIn span {
float: left;
height: 20px;
width: 10px;
background-color: #ff9900;
}
6.组装链接盒子a,这里用到样式: display: block;让链接以块状方式呈现,并为链接安排背景图片,为了安全起见设置背景不重复,垂直居中(如果浏览器出错解释错误,而你的背景又不是纯色的,那么盒子过大导致的背景重复将会影响网页美观),链接文字样式去除下划线,样式如下:
.lanBoxIn a {
background: url(lanbj2.gif) no-repeat left center;
text-decoration: none;
height: 20px;
width: 155px;
display: block;
float: right;
padding: 0px 0px 0px 5px;
font-weight: bold;
font-size: 9pt;
line-height: 20px;
color: #663300;
}
.lanBoxIn a {
background: url(lanbj2.gif) no-repeat left center;
text-decoration: none;
height: 20px;
width: 155px;
display: block;
float: right;
padding: 0px 0px 0px 5px;
font-weight: bold;
font-size: 9pt;
line-height: 20px;
color: #663300;
}
7.最后简单为鼠标移到链接上时,链接风格的改为指定一个样式:
.lanBoxIn a:hover {
background-image: url(lanbj3.gif);
color: #FFFFFF;
}
至此完成样式代码编写,下面给出内容部分的结构代码,当然我们并不是先把样式代码都写好了再写结构代码的,一般是由外到里,一边写样式一边组织内容结构的,本人只是为了讲解方便而先全部给出样式代码。
像这种列表式导航栏用无序列表(ul/li)来实现更科学,结构代码如下:
<ul class="nav">
<li class="lanList">
<div class="lanBoxIn">
<span></span><a href="#">彻底弄懂CSS盒子模式1</a>
</div>
</li>
<li class="lanList">
<div class="lanBoxIn">
<span></span><a href="#">彻底弄懂CSS盒子模式2</a>
</div>
</li>
<li class="lanList">
<div class="lanBoxIn">
<span></span><a href="#">彻底弄懂CSS盒子模式3</a>
</div>
</li>
<li class="lanList">
<div class="lanBoxIn">
<span></span><a href="#">彻底弄懂CSS盒子模式4</a>
</div>
</li>
<li class="lanList">
<div class="lanBoxIn">
<span></span><a href="#">彻底弄懂CSS盒子模式5</a>
</div>
</li>
</ul>



