下面详细介绍网站首页的主体内容样式设计过程。
【操作步骤】
第1步,设计网站首页(index.html )的主体布局。
网站首页主体部分HTML结构如下:
<div id="content"> <div class="janeshop"> <div id="jnCatalog"></div> <div id="jnImageroll"></div> <div id="jnNotice"></div> <div id="jnBrand"></div> </div> </div>
第2步,可以使用float浮动方式来达到布局需求,CSS代码如下所示:
/* 主体样式 */ #content { clear: left; margin: 0 auto; position: relative; width: 990px; } .janeshop { height: 560px; overflow: hidden; padding: 10px 0; } /* 商品分类 */ #jnCatalog { float: left; height: 560px; margin: 0 11px 0 0; overflow: hidden; width: 187px; } /* 大屏广告 */ #jnImageroll { float: left; height: 320px; margin: 0 11px 0 0; overflow: hidden; position: relative; width: 550px; } /* 最新动态 */ #jnNotice { float: left; height: 321px; overflow: hidden; width: 230px; } /* 品牌活动 */ #jnBrand { float: left; height: 230px; margin: 10px 0 0; overflow: hidden; width: 790px; }
第3步,往主体结构里面放置HTML代码来充实网页,从而达到前面的设计图效果。首先从左边开始。在前面的设计图中,左侧有一个模块,即“商品分类”。“商品分类”的HTML结构如下:
<!--主体开始--> <div id="content"> <div class="janeshop"> <!-- 商品分类 start --> <div id="jnCatalog"> <h2 title="商品分类">商品分类</h2> <div class="jnCatainfo"> <h3>推荐品牌</h3> <ul> <li><a href="#nogo" >耐克</a></li> <li><a href="#nogo" class="promoted">阿迪达斯</a></li> <li><a href="#nogo" >达芙妮</a></li> <li><a href="#nogo" >李宁</a></li> <li><a href="#nogo" >安踏</a></li> <li><a href="#nogo" >奥康</a></li> <li><a href="#nogo" class="promoted">骆驼</a></li> <li><a href="#nogo" >特步</a></li> </ul> <br class="clear" /> ……后面代码重复省略
第4步,为这个模块添加相应的样式,使之能达到需求。在“商品分类”模块中,有部分商品是热销产品,那么需要为这些元素添加高亮(hot)样式,代码如下所示:
#jnCatalog h2 { height: 30px; line-height: 30px; color: #fff; font-size: 12px; text-indent: 13px; background-color: #6E6E6E; } .jnCatainfo { border: 1px solid #6E6E6E; border-style: none solid solid; border-width: 0 1px 1px; height: 524px; overflow: hidden; padding: 5px 10px 0; width: 165px; } .jnCatainfo h3 { border-bottom: 1px solid #EEEEEE; height: 24px; line-height: 24px; width: 164px; } .jnCatainfo ul { float: left; padding: 0 2px 8px; } .jnCatainfo li { color: #AEADAE; float: left; height: 24px; line-height: 24px; width: 79px; overflow: hidden; position: relative; } .jnCatainfo li a { color: #444444; } .jnCatainfo li a:hover { color: #008CD7; text-decoration: none; } .jnCatainfo li a.promoted { color: #F9044E; } .jnCatainfo li .hot { background: url("../images/hot.gif") no-repeat scroll 0 0 transparent; height: 16px; position: absolute; top: 0; width: 21px; }
应用样式后,页面呈现效果如图1所示。
图1 左侧主体内容设计效果
第5步,左侧完成后,接下来完成首页主体内容的右侧部分的布局。从前面的设计图中可以知道,右侧部分分为上下两个部分,而上面部分又分为左右两个部分。我们先来完成上面的部分,它们的HTML结构如下:
<!-- 大屏广告 start --> <div id="jnImageroll"></div> <!-- 最新动态 start --> <div id="jnNotice"> <div id="jnMiaosha"></div> <div id="jnNoticeInfo"> <h2 title="最新动态">最新动态</h2> <ul></ul> <br class="clear" /> </div> </div>
第6步,在“大屏广告”部分,我们先为它设置固定的高度和宽度,然后使用overflow:hidden来隐藏溢出的部分,接下来为它添加position:relative属性,然后为里面的img元素分别添加position absolute属性。CSS代码如下:
/* 大屏广告 */ #jnImageroll { float: left; height: 320px; margin: 0 11px 0 0; overflow: hidden; position: relative; width: 550px; } #jnImageroll img { position: absolute; left: 0; top: 0; }
第7步,对“大屏广告”下方的缩略图设置样式。可以使用position:absolute和bottom:0的方式让缩略图处于最下方,然后使用float: left的方式让缩略图以水平方式排列。CSS代码如下:
#jnImageroll div { bottom: 0; overflow: hidden; position: absolute; float: left; } #jnImageroll div a { background-color: #444444; color: #FFFFFF; display: inline-block; float: left; height: 32px; margin-right: 1px; overflow: hidden; padding: 5px 15px; text-align: center; width: 79px; } #jnImageroll div a:hover { text-decoration: none; } #jnImageroll div a em { cursor: pointer; display: block; height: 16px; overflow: hidden; width: 79px; } #jnImageroll .last { margin: 0; width: 80px; } #jnImageroll a.chos { background: url("../images/adindex.gif") no-repeat center 39px #37A7D7; color: #FFFFFF; }
应用样式后,网页呈现如图2所示的效果。
图2 大屏广告设计效果
第8步,“最新动态”部分由于也都是一些列表元素,所以布局可以借鉴之前模块的样式设计。CSS代码如下:
/* 最新动态 */ #jnNotice { float: left; height: 321px; overflow: hidden; width: 230px; } #jnMiaosha { float: left; height: 176px; margin-bottom: 10px; overflow: hidden; width: 230px; } .JS_css3 img { -webkit-transition: 1s all; -moz-transition: 1s all; -o-transition: 1s all; transition: 1s all; } .JS_css3:hover img { -webkit-transform: rotate(720deg); -moz-transform: rotate(720deg); -o-transform: rotate(720deg); transform: rotate(720deg); } #jnNoticeInfo { float: left; border: 1px solid #DFDFDF; height: 133px; overflow: hidden; width: 228px; } #jnNoticeInfo h2 { height: 23px; line-height: 23px; border-bottom: 1px solid #DFDFDF; text-indent: 12px; } #jnNoticeInfo ul { float: left; padding: 6px 2px 0 12px; } #jnNoticeInfo li { height: 20px; line-height: 20px; overflow: hidden; } #jnNoticeInfo li a { color: #666666; } #jnNoticeInfo li a:hover { color: #008CD7; text-decoration: none; }
应用样式后,网页呈现如图3所示的效果。
图3 最新动态设计效果
第9步,在首页还有最后一块内容,那就是“品牌活动”部分。它的HTML代码如下所示:
<!-- 品牌活动 start --> <div id="jnBrand"> <div id="jnBrandTab"> <h2 title="品牌活动">品牌活动</h2> <ul></ul> </div> <div id="jnBrandContent"> <div id="jnBrandList"> <ul></ul> </div> </div> </div>
第10步,从代码可知,“品牌活动”部分分为jnBrandTab和jnBrandContent两部分。jnBrandTab是品牌活动分类,而jnBrandContent则是品牌活动的内容。jnBrandTab部分的CSS代码如下所示:
/* 品牌活动 */ #jnBrand { float: left; height: 230px; margin: 10px 0 0; overflow: hidden; width: 790px; } #jnBrandTab { border-bottom: 1px solid #E4E4E4; height: 29px; position: relative; width: 790px; float: left; } #jnBrandTab h2 { height: 29px; line-height: 29px; left: 0; position: absolute; width: 100px; } #jnBrandTab ul { position: absolute; right: 0; top: 10px; } #jnBrandTab li { float: left; margin: 0 10px 0 0; } #jnBrandTab li a { background-color: #E4E4E4; color: #000000; display: inline-block; height: 20px; line-height: 20px; padding: 0 10px; } #jnBrandTab .chos { background: url("../images/chos.gif") no-repeat scroll 50% bottom transparent; padding-bottom: 3px; } #jnBrandTab .chos a { background-color: #FA5889; color: #FFFFFF; outline: 0 none; }
第11步,jnBrandContent的内容比较多,但宽度有限,所以可以使用overflow:hidden来隐藏多余的部分。在后面的内容里,.我们将通过脚本来显示多余的部分。CSS代码如下所示:
#jnBrandContent { float: left; height: 188px; overflow: hidden; margin: 8px 5px; width: 790px; position: relative; } #jnBrandList { position: absolute; left: 0; top: 0; width: 3200px; } #jnBrandContent li { float: left; height: 188px; overflow: hidden; padding: 0 5px; position: relative; width: 185px; } #jnBrandContent li img { left: 5px; position: absolute; top: 0; } #jnBrandContent li span { background-color: #EFEFEF; bottom: 0; color: #666666; display: inline-block; font-size: 14px; height: 24px; line-height: 24px; overflow: hidden; position: absolute; text-align: center; width: 183px; } #jnBrandContent li a { color: #666666; } #jnBrandContent li a:hover { color: #008CD7; text-decoration: none; }
应用样式后,网页呈现如果4所示的效果。
图4 品牌活动设计效果