CSS只影响容器内的元素吗?

时间:2015-02-23 19:07:32

标签: javascript html css

我有一个CSS文件,简而言之就包含这样的块:

%container .grass {
    position:fixed;
    bottom:0px;
    height:3%;
    background-color:#4CAF50;
    width:105%;
    margin-left:-10px;
}

%container是容器,其中所有带有.grass类的元素都应该受到影响,%container总是一个id,如#container或#appcontent

但是我认为我错了,因为它不起作用,而且它可能也很简单,所以它在哪里?

我有更多内容,例如:

%container .subcontainer:not(.ui-draggable-dragging) {
    cursor:grab;
}
%container .numbercontainer > .number, %container .signcontainer > .sign {
    display:block;
}

好的,这是预处理器,我绝对肯定它会正确生成内容,因为我检查了它的输出和给出的结果,但由于某种原因它不起作用。

App.prototype.getMainCSS = function(url) {
    console.log("GET: " + url);
    if (App.dependenciesLoaded.indexOf(url) === -1) {
        $.get(url,(function(data){
            var cssfile = document.createElement("link")
            cssfile.rel = "stylesheet";
            cssfile.type = "text/css";
            cssfile.innerHTML = data.replace(/%container/g,"#" + this.element.id);
            App.dependenciesLoaded.push(url);
            document.getElementsByTagName("head")[0].appendChild(cssfile);
        }).bind(this));
    }
}

1 个答案:

答案 0 :(得分:0)

这解决了它。

App.prototype.getMainCSS = function(url) {
    console.log("GET: " + url);
    if (App.dependenciesLoaded.indexOf(url) === -1) {
        $.get(url,(function(data){
            var cssfile = document.createElement("style") //not link
            //cssfile.rel = "stylesheet"; useless line
            cssfile.type = "text/css";
            cssfile.innerHTML = data.replace(/%container/g,"#" + this.element.id);
            App.dependenciesLoaded.push(url);
            document.getElementsByTagName("head")[0].appendChild(cssfile);
        }).bind(this));
    }
}