内部的层次顺序?

时间:2014-04-13 12:23:00

标签: javascript html

我已经用近3年的时间创建了HTML等网站,但由于我必须自己学习,所以我仍然不会知道一些事情。

现在一个基本问题变得非常重要:我可以在元素中创建组吗?就像这样:

<head>
  <meta ... />
  <group name='global_stylesheets'>
    <link href='...' />
    <link href='...' />
  </group>
  <group>
    ...
  </group>
</head>

如果在普通HTML中无法实现,我可以用javascript以某种方式添加这些组标签吗?我可以禁用旧版本的&#39;样式表并在javascript中加载新的样式:

somelinks = '<link href='...' />\n<link href='...' />';
document.getElementsByTagName('groups')[2].innerHTML = someLinks;

由于

2 个答案:

答案 0 :(得分:1)

AFAIK,HTML没有提供将<head>部分中的元素进行结构排列成组的方法,但您可以使用class属性将它们放入逻辑组中:

<head>
    <link rel="stylesheet" href="style1.css" class="bigtext" />
    <link rel="stylesheet" href="style2.css" class="bigtext" />
    <link rel="stylesheet" href="style3.css" class="smalltext" />       
    ...
</head>

然后你可以做这样的事情来禁用那些你不需要的东西(为了简洁我使用jQuery,但你可以在没有jQuery的情况下做同样的事情):

$(".bigtext").each(function() {
    this.disabled = true;
});

如果由于某种原因您希望使用JavaScript向页面添加新的样式表,则只需创建<link>元素并将其添加到页面的head

function addStylesheet(href) {
    var sty = document.createElement("link");
    sty.rel = "stylesheet";
    sty.href = href;
    document.head.appendChild(sty);
}

addStylesheet("style3.css");
addStylesheet("style4.css");

这是jQuery版本:

function addStylesheet(href) {
    $(document.head).append($("<link rel='stylesheet'>").attr("href", href));
}

答案 1 :(得分:0)

我认为你的整个方法都是非常错误的。

您应该重新考虑样式表的构建方式。样式表的重点在于它们应该在整个页面中是全局的。您应该使用类和ID来限制它们的样式。

同样,像你一样对样式表进行分组没有意义。