推荐阅读

网站地图中样式的控制

  客户需要一个网站地图,尝试了一下网站地图的样式修改。样式效果地址见:http://www.yaoyahu.com/Sitemap.html

  在这个页面中,采用了同一个标签,对同一个标签使用的区块定义不同的CSS样式控制:

<div class="map">
标签
</div>

……

<div class="map2">
标签
</div>

  这里不对包含选择符的定义进行阐述(关于如何利用包含选择符重复使用 CSS 定义的内容请参阅《圆角边框制作及其应用示例 》一文)。这里主要对左右式排列的网站地图的 CSS 定义作一下记录:

  上图片中解析生成的HTML代码为:

<dl>
  
<dt><a href="/Category_7/index.aspx" title="" target="_blank">雁过留声</</dt>
  
<dd>
    
<ul> 

    </ul>
    <div class="clear"></div>
  </dd>
</dl>

<
dl>
dd>
ul>
a>
dl>
  <dt><a href="/yaoyuan/index.html" title="" target="_blank">姚源童画</a></dt>
  <dd>
    <ul>
      <li><a href="/yaoyuan/Fairytales/index.html">童话与童画</a></li>
      <li><a href="/yaoyuan/Words/index.html">童言无忌</a></li>
      <li><a href="/Category_33/index.aspx">我家有儿初长成</a></li>
    </ul>
    <div class="clear"></div>
  </dd>
</dl>
<dl>
  <dt><a href="/Life/index.html" title="" target="_blank">人生陶吧</a></dt>
  <dd>
    <ul>
      <li><a href="/Category_24/index.aspx">管理者</a></li>
      <li><a href="/Life/SHOS/index.html">生活偶拾</a></li>
      <li><a href="/Life/Studying/index.html">书山有路</a></li>
    </ul>
    <div class="clear"></div>
  </dd>
</dl>

  要实现上图的效果,要解决以下几个问题:

  1、以 dl 为一个整体的单位由上而下排列,如何实现一级节点左侧下文的深灰色底线。
  2、使位于 dt 下方的 dd 并列到 dt 的右侧。
  3、要实现二级栏目下方浅色的灰线(定义 dd 的下边框值)与左侧深灰色底线对齐。

  解决上面的问题也并不困难:

  1、如果直接定义 dl 的下边框,按图所示比较短,如果要实现这么短的连线就要定义 dl 的宽度,则所有一级节点都会横向排列,则此不考虑这个方案。直接制作一个1px 高度的灰线图片,定义 dl 的背景图片,左居下不重复即可。由于不为 dl 定义宽度,则所有一级节点(及其里面的dt、dd)就为一个 Flow Model(流动模型)区块作为整体整体的单位由上而下排列(见下面.map dl 的定义内容)。
  2、固定 dt、dd 的宽度,同时将 dd 向上缩进-25px、向左缩进110px(margin: -25px 0px 0px 110px; )让开 dt 的宽度与高度,使位于 dt 下方的 dd 并列到 dt 的右侧。
  3、定义 dd 的底边框(border-bottom: 1px solid #eee;),同时定义dl、ul 的 overflow 属性(overflow:hidden;height: 100%;),使其能随 dd 的内容自动延伸高度,实现实现二级栏目下方浅色的灰线与左侧 dl 的深灰色背景图片(底线)相对齐。

  下面是 CSS 定义,可以进一步研究下:

/* ==网站地图样式1== */
.map {
    font: normal normal normal 13px/24px Arial, "宋体", Helvetica, sans-serif;
    margin: 20px 0px;
}
.map a {
    color: #366E91;
}
.map dl, .map ul {
    overflow:hidden;
    height: 100%;
}
/* 一节节点整体 */
.map dl {
    margin-top: 10px;
    background: url(images/sm_line.gif) no-repeat left bottom;
    display: block;
    min-height: 24px;
}
/* 一节节点标题 */
.map dt {
    padding-left: 20px;
    height: 24px;
    width: 100px;
    background: url(images/sm_f.gif) no-repeat left top;
}
.map dt a {
    color: #666;
}
/* 二节节点标题 */
.map dd {
    margin: -25px 0px 0px 110px;
    width: 160px;
    border-bottom: 1px solid #eee;
    display: block;
}
.map dd li {
    padding-left: 20px;
    line-height: 26px;
    background: url(images/sm_p.gif) no-repeat left 2px;
    display: block;
}

 

作者:yahu 发布时间:2008年09月29日 点击数: 收藏 打印文章
ed hardy nfl jerseys replica handbags christian louboutin louboutin
网站地图  |  关于站长  |  友情链接  |  版权声明top