【问题标题】:Background image as anchor icon - positioning left of text背景图像作为锚图标 - 位于文本左侧
【发布时间】:2013-11-13 06:46:08
【问题描述】:

我正在使用以下代码设置锚图标:

.iconed{
    padding-left:22px;
    background-position: 3px center;
    background-repeat: no-repeat;
}

.iconed.selected{
    background-image:url(images/selected.png);
}

<a href="#" class="iconed selected">Some link</a>

当锚具有自动宽度或/和 text-align 设置为左​​时,效果很好。 当锚宽度设置为 100% 并且文本对齐为中心时,有什么方法可以使此图标从文本中显示 -5px?我不想用 :before 伪类,但是如果没有别的办法...

需要在 IE9+ 上工作

用另一个元素包裹不是解决方案

【问题讨论】:

    标签: css


    【解决方案1】:

    我认为伪元素可能是您唯一的选择。 http://jsfiddle.net/2rRDE/

    第一个会将文本推到右侧,因为它是正常文档流的一部分。

    第二个看起来没有,但我只是应用了相对定位和负边距来将文本拉回精确的中心。

        a {
            display:block;
            width:200px;
            border:1px solid orange;
            text-align:center;
        }
    
        .a1:before {
            content:"☺";
        }
    
        .a2:before {
            content:"☺";
            position:relative;
            left:-15px;
            margin-right:-15px;
            width:15px;
            display:inline-block;
        }
    

    编辑:对评论的回应

    您的原始帖子从未提到垂直对齐的要求。但这里有一个修改后的版本,它是最低限度的,并且使用的是实际图像。 http://jsfiddle.net/2rRDE/1/

    a {
        display:block;
        width:100%;
        border:1px solid orange;
        text-align:center;
        line-height:50px;
    }
    
    
    a:before {
        content:url("http://benjinyap.com/system/asset.png");
        display:inline-block;
        margin-right:5px;
    }
    

    您不能将伪设置为块元素。图标应跟随文本的垂直位置。但是,如果您希望它居中而不管锚的线高/高度/填充,那么我目前没有答案。

    【讨论】:

    • 不确定如何将图像图标拆分为定义图像文件的不同单行 css。
    • .iconed:before{ display:block; width:22px; height:100%; background:red; left:-22px; } 根本不起作用...没有红色方块...
    • 我相信你需要设置 content 属性才能显示伪元素,即使它只是空引号。
    • 好的,我将内容设置为'',仍然 height:100% 不起作用,当我将其设置为固定时,图标不在垂直中心并且文本位置被搞砸了。您能否举一个带有图像图标的适当示例,因为现在您的答案不是我问题的答案。
    猜你喜欢
    • 2020-02-29
    • 1970-01-01
    • 1970-01-01
    • 2020-01-30
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 2013-12-03
    • 1970-01-01
    相关资源
    最近更新 更多