代码之家  ›  专栏  ›  技术社区  ›  Kieran Senior

列表项,两个超链接CSS设计

  •  0
  • Kieran Senior  · 技术社区  · 16 年前

    我需要一个单人间 <li> 元素,其中有两个按钮,如下所示:

    <li>
        <a href="#" class="left">The title</a>
        <a href="#" class="right"></a>
    </li>
    

    按钮的布局如下:

     ____________
    |_________|__|
    

    背景将横跨整个按钮, <a> 左边的标签将用文本填充,右边的标签用透明的alpha按钮覆盖 <理工大学; 元素。这是我的CSS。

    #left ul#main-menu li.li-add a {
        display:block;
        padding:4px 6px 6px 6px;
        text-decoration:none;
        color:#fff;
        font-size:12px;
        margin:0;
    }
    
    #left ul#main-menu li.li-add {
      height:25px;
      margin:0;
      padding:0;
      background: url('button_back.gif') no-repeat;
    }
    
    #left ul#main-menu li.li-add a.left {
      width:106px;
      float:left;
      padding:5px 6px 6px 6px;
    }
    
    #left ul#main-menu li.li-add a.left:hover {
      background: url('button_back_hover.gif') no-repeat;
    }
    
    #left ul#main-menu li.li-add a.right {
      float:left;
      text-align:center;
      font-size:16px;
      padding:4px 0 0 0;
      margin:0;
      height:21px;
      width:27px;
      font-weight:bold;
    }
    
    #left ul#main-menu li.li-add a.right:hover {
      background: url('button_back_hover.gif') no-repeat center right;
    }
    

    我对所有其他列表项都做了类似的事情,只是它们右边没有“添加”按钮。我遇到的问题是,一个两像素的间隙被引入,而另一个 <理工大学; 元素向下。我不知道我到底做错了什么。我能做到 margin-bottom:-2px 但所做的只是让一个2像素的区域在下面的元素中是不可点击的。

    编辑

    实际上是浮筒。

    #left ul#main-menu li.li-add a.right {
      float:left;
      text-align:center;
      font-size:16px;
      padding:4px 0 0 0;
      margin:0;
      height:21px;
      width:27px;
      font-weight:bold;
    }
    

    float:left 不应该在那里,因为某些原因,这样做会造成一个额外的差距。 耸肩 .

    1 回复  |  直到 16 年前
        1
  •  0
  •   mixonic    16 年前

    我认为你的问题是一个红鲱鱼。我可以通过添加:

    height: 14px; /* Add to '#left ul#main-menu li.li-add a.left' */
    

    你从未为左边的标签指定高度,它的自动高度比 25px 为指定 .right 标签。您正在对LI标记设置高度,但它们是内联元素,而不是像制作A标记那样阻止元素。只有块元素才能具有指定的高度。希望这有帮助。

    祝你好运!