代码之家  ›  专栏  ›  技术社区  ›  Stefan Kendall

将CSS背景图像与前面的元素居中?

  •  0
  • Stefan Kendall  · 技术社区  · 14 年前

    http://jsfiddle.net/ksHuz/

    我想用背景图像 <a>

    HTML格式:

    <table>
        <tr>
            <td>
               <select>
                   <option>1</option>
                                  <option>33</option>
                                  <option>c</option>
                                  <option>a</option>
                                  <option>aaef</option>
                </select> 
                text
                <a href="#"></a>
            </td>
        </tr>
    </table>
    

    CSS:

    a{
     background-image: url(http://stefankendall.com/files/excel.png);   
        width: 16px;
        height: 16px;
        display: inline-block;
    }
    
    2 回复  |  直到 7 年前
        1
  •  2
  •   theazureshadow    14 年前

    添加 vertical-align: middle; 对于基于标准的浏览器,锚元素的css将使其居中。你可能需要使用一些类似于本页的黑客来让它在IE6和IE7中工作: http://foohack.com/2007/11/cross-browser-support-for-inline-block-styling/

    编辑: a img { vertical-align: middle; } 同样的效果(而且它应该跨浏览器工作,因为img已经是内联块)。理想情况下,背景图像应该只用于装饰,而按钮是实际内容。例如,如果某人没有启用css怎么办?图像标记允许 alt

        2
  •  0
  •   Tom    14 年前

    我认为你需要重新考虑一下方法。您的背景图像在 <a> 但这个元素与 <td>

    你可以把文本和链接放在 <span> 例如,或将文本放在 <a> 别让它看起来像一个链接。您还可以使用定位和/或浮动将两者放置在一起。