CSS网页设计经验分享:负margin


上个月完成的项目,举个让我纠结N小时的模块,先上图:

默认状态为灰色,不带圆圈,已完成状态为红色,当前进行中显示为黄色,并且圆圈在两个字中间,最后一个状态“成功”如果为灰色,线条要小于文字,但其它部分要连贯。原型代码如下,为了JS结构当然越简单越好:

<ul>
< li class=“status_finished”>选择</li>
< li class=“status_current”>预订</li>
< li>支付</li>
< li>成功</li>
< /ul>

让人纠结的时候到了:圆圈左右线的颜色不同,如果切在一起那最后一个状态就要单独应用没有右侧多余线条的图片,等于要切两套图,方案要放弃;如果每个状态只切到圆圈部分,给右侧留点空白出来它就会显示在两个字中间了,但紧接着的状态怎么延续到左侧?有一个方法:负margin~~~

放大后的效果图:

样式如下:

ul { margin: 36px auto; height: 30px; }
ul li { float: left; width: 164px; margin-right: -6px; padding-top: 15px; text-align: right; background: url(“xxxx.gif”) no-repeat right XXpx; color: #666; }
ul li.status_finished { background-position: right XXpx; }
ul li.status_current { background-position: right XXpx; font-weight: bold; color: #000; }

注意:合并图片的时候圆圈右侧要留出6px(具体值根据实际情况确定)透明空隙,左侧线条为自适应考虑尽可能长一点。


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3