CSS-布局样式之筛选条件右边线的处理方法(no CSS3)

先上图:

这个地方的竖线,首先他不用css3的nth-child或last-child的选择器来解决的话,还有什么更好的方法呢?

如果我还用上次优惠券那种,加一个<b>的话,类似如下

以后不可能就三个标签,以后程序往里边传东西肯定又会改变了,

于是鄙人开始寻找大型网站的相同效果的处理方法

找到三种处理方法

1:易车惠:http://www.huimaiche.com/   底部的外网链接

他的处理方式是a+em,em包含竖线。

但这种的布局,首先a是独立的内联元素,没有固定搭档的说法,不像li和ul,dd和dt。所以他可以和span做兄弟。

其次,他的兄弟数量是固定下来的,不用后台再传进来东西。

而我这种页面布局,最终数目都是看用户的心情,到底几个都是随机的,不可能会有固定数目的。

 

2:天猫首页侧边导航栏这个斜线:

处理方法是几个文字用a标签包裹,而斜线写在a标签之间,作为li标签的内容文本。

人家这种处理方式适合,文字与装饰线条都是统一颜色,另外文字用一个链接就行了很单纯。

不像现在面临的这种布局——其特点在于:

(1)有一个需要dt标签来存放的一级目录;

(2)二级目录和斜线的颜色不一样;

(3)二级目录之间,除了不变的汉字,还有需要更改的数值,如图:

  

全部和5要分开标签吧。结构很零碎,想做到简单很麻烦。

 

 

 

3:天猫首页搜索栏下边的热点导航条:

他这种,竖线使用border写的,很符合我的要求。更惊喜的是:其实现方法也打开了我的新思路,有句话怎么说来着,茅厕顿开。哈哈哈:

看到这种布局,像我这种菜鸟,第一时间想到的肯定是用border-right实现吧!但是!他用border-left实现的。。

我想我看到他border-left后,瞬间恍然大悟他的处理方式了。

我还在想,难道第一个li要用css3的first-child?那和last-child 没有什么不同吧。

结果我看第一个li,还有啊!border-left还在啊!没有用border:none处理掉啊!

经过盒模型的显示,我才看懂他使用了margin的负边距布局这个经典方法啊。

如下:盒模型图

Ul的爹地div

ul

就是,让ul的margin-left为负值,把第一个li左边的border给推出去啊。

关键点是,div还要设置overflow:hidden;不然这个魔术是变不成功的啊。

另外,这种做法中,border是加在li上边的,li的line-height:1.1;没有单位,这样的话,竖线和文字的高度是一样的,不会出现那种冒出头的雨后春笋。

我后来自己设计的时候,把border给了dd内部的a标签,然后让第一个a 的margin-left为-2,让dd的overflow:hidden,然后把line-height给了dd,

bug接踵而至,三个dd就和dt变得在一个高度上了,

行高给了a却没用,竖线还是出头,于是我就给了dd也给了dt,这样,高度就想通了。

最后,上代码:

 1 <!DOCTYPE html>
 2 <html>
 3 
 4     <head>
 5         <meta charset="UTF-8">
 6         <meta name="author" content "郭菊锋,702004176@qq.com"/>
 7         <title>list</title>
 8         <style type="text/css">
 9             * {
10                 margin: 0;
11             }
12             
13             a {
14                 text-decoration: none;
15             }
16             
17             a:hover {
18                 cursor: pointer;
19             }
20             
21             li {
22                 list-style: none;
23             }
24             
25             .clearfix:after {
26                 visibility: hidden;
27                 display: block;
28                 font-size: 0;
29                 content: "";
30                 clear: both;
31                 height: 0;
32             }
33             
34             .clearfix {
35                 *zoom: 1;
36             }
37             
38             .menu {
39                 width: 1100px;
40                 margin: 130px auto;
41                 padding: 10px;
42                 background: #DFE9F6;
43                 font-size: 16px;
44                 border-bottom: 1px dashed #DB7093;
45             }
46             
47             .menu dt {
48                 float: left;
49                 color: #999;
50                 line-height: 1.1;
51             }
52             
53             .menu dd {
54                 float: left;
55                 overflow: hidden;
56                 line-height: 1.1;
57             }
58             
59             .menu dd a {
60                 padding: 0 12px;
61                 color: #333;
62                 border-left: 2px solid #DB7093;
63             }
64             
65             .menu dd.menu_active a,
66             .menu dd a:hover {
67                 color: #DB7093
68             }
69         </style>
70     </head>
71 
72     <body>
73         <dl class="menu clearfix">
74             <dt>品牌:</dt>
75             <dd class="menu_active">
76                 <a href="#" title="" style="margin-left: -2px;">全部</a>
77             </dd>
78             <dd>
79                 <a href="#" title="">第一</a>
80             </dd>
81             <dd>
82                 <a href="#" title="">第二</a>
83             </dd>
84             <dd>
85                 <a href="#" title="">第三</a>
86             </dd>
87             <dd>
88                 <a href="#" title="">第四</a>
89             </dd>
90         </dl>
91     </body>
92 </html>

 

posted @ 2017-03-29 17:21  xing.org1^  阅读(883)  评论(0编辑  收藏  举报