电商网站模块化布局整体规划
因为电商类网站内容较多,更新较快,提倡结构及样式的可复用性,因此我采用模块化布局的思路进行构建。预览
制作过程
HTML结构部分
整体结构主要有五部分,分别是:header、nav、search、content和footer。其中,content部分又分为两部分:main 和 sidebar。其中包含各个可复用section、option以及tab组件。
CSS部分
- 初始化样式–reset
- 定义公共样式–public
- 定义整体布局样式–layout
- 定义header部分样式
- 定义nav部分样式
- 定义search部分样式
- 定义content部分样式(其中包含各组件样式)
- 定义footer部分样式
javaScript部分
主要包含7个功能:
切换搜索框功能
切换搜索栏选项,搜索框内文字随之改变。update轮播功能
update内容自动滚动,也可通过上下按钮进行切换。选项卡切换功能
点击或鼠标移入选项卡,切换内容。自动播放焦点图片
自动播放焦点图片,并随之更新描述信息,同时加入鼠标移入暂停播放,移除自动播放功能。日历提醒信息
鼠标移入显示当天活动信息。BBS高亮显示
通过改变class实现样式切换。HOT用户鼠标提示效果
鼠标移入图片,显示相关用户介绍信息。
详细实现过程可查看源代码。
总结
问题及解决方案
问题1:文字和图片同时存在时,使用line-height与height相等,文字为何没有居中?
原因分析:因为浏览器默认vertical-align属性将图片底部与文字的baseline对齐。
解决方案:第一种:只需将图片的vertical-align属性设置为top或middle即可。第二种:将文字或图片浮动。
问题2:如何用CSS绘制三角形?
分析:主要靠巧妙使用border-color属性中的transparent值
代码如下:1
2
3
4
5
6
7.triangle-up {
width: 0;
height: 0;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-bottom: 4px solid #f00;
}
可改变不同的border-width值以及border的方位来呈现不同效果。
另外,也可通过引入字体图标来实现各种icon效果。
问题3:什么时候考虑使用模块化?如何进行模块化?
解决方案:
何时考虑模块化:一般情况出现两次类似的布局及内容结构就可以考虑模块化,出现三次就应该进行模块化。
模块化的思路是:先提取公用样式,私有样式通过命名空间来定义。
心得体会
通过制作电商网站首页,我有以下几点
- 模块化思路贯穿始终:其中包括,结构模块化、布局模块化、JS组件化。
- 要有清晰明确的文件目录规划
- 先着手整体结构及布局,再逐步细化
- 样式精简,公共样式合并。
- 使用CSS Sprite将小图标和背景图像合并到一张图片上,然后利用css的背景定位来显示需要显示的图片部分,来减少网络请求,实现性能优化。