javascript - 设置CSS的背景图片:before tag programatically

标签 javascript jquery html css

我的网站上有一个菜单,它使用 :before 标记设置按钮的图标。这对于可以在 CSS 中设置的静态元素效果很好。一些按钮将从网站上的特定用户设置加载。有没有办法在 CSS 中设置这些,如下所示:

.nav-team:before{ background-image:url(attr(src)); }

<li class="nav-team" src="assets/images/profile.png"><a href="#">Team Name</a></li>

显然这不起作用,也不是 supported well如前所述here

我可能是错的,但就我而言,:after 标签无法在 javascript/jquery 中定位或更改。

我愿意接受任何建议,JavaScript、CSS 或 PHP。

HTML:

<li class="nav-btn nav-team" src="assets/images/profile.png"><a href="#">Team Name</a></li>

CSS

li{
    border-top: solid 1px rgba(0, 0, 0, 0.125);
    margin: 0.5em 0 0 0;
    padding: 0.5em 0 0 0;
    position: relative;
}
.nav-btn{
        text-indent:1.5em;
     }
    .nav-btn:before {
        font-family:'FontAwesome';
        position:absolute;
        top:50%;
        -ms-transform:translateY(-50%);
        -o-transform:translateY(-50%);
        -moz-transform:translateY(-50%);
        -webkit-transform:translateY(-50%);
        transform:translateY(-50%);
        left:-2em;
        background-size: auto 1.5em;
        background-repeat: no-repeat;
        background-position: 1.5em center;
        width: 3.5em;
        height: 1.5em;
        content:' ';
    }
.nav-team:before{ background-image:url(attr(src)); }
.nav-home:before{ background-image:url(../icons/feed.svg); }
.nav-envelope:before{ background-image:url(../icons/messages.png); }

最佳答案

首先,background-image 属性不支持 css 中的 attr() 函数。

作为Answer Question ,您可以编写javascript来设置背景图片。

你可以通过 Jquery 来做到这一点

    var count = 0;
    $('.nav-team').each(function(){
        var nav_team = $(this);
        var data_id='nav_team'+count
        nav_team.attr('data-id',data_id);
        var srcPath = nav_team.attr('src')
        $('head').append('<style></style>');
        $('head style:last').append('[data-id="' + data_id + '"]{  background-image: url("' + srcPath + '"); }');            count++;
    });

关于javascript - 设置CSS的背景图片:before tag programatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37002634/

相关文章:

javascript - 将数据属性的副本传递给 Vue JS 中的函数

jquery,克隆问题并保持唯一的ID!

html - Bootstrap 布局页脚与其他元素发生碰撞

javascript - 为什么这个innerhtml的东西会返回?

javascript - 如何在javascript中使div可点击

javascript - Highcharts.js 带有平均线的子图

javascript - 仅允许在经过设定的时间后调用函数

javascript - 为图像加载添加类 - 确定是否为横向

javascript - 如何多次使用时间选择器

java - Wicket 中的嵌套表单 : form "breaks"