XHTML文档类型不允许正文中的元素“样式”

时间:2012-02-17 09:25:38

标签: javascript html xhtml w3c-validation

我有一个使用XHTML Transitional的文档。在正文中,我使用带有<noscript>的{​​{1}}标记。

我知道只有<style type="text/css">允许<style type="text/css">,但我仍然需要在未检测到JavaScript的情况下应用CSS。

如何在仍然通过XHTML验证的同时解决这个问题?

<head>

使用W3进行验证时出现错误

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<body>
  <noscript>
    <div id="section-featured-nojavascript" class="section">
      <style type="text/css">
        #featured, #section-portfolio { display:none; visibility:hidden }
      </style>
    </div>
  </noscript>
</body>

3 个答案:

答案 0 :(得分:4)

不要试图拥有单独的样式表。使用JS将js类添加到<body>(或删除no-js类)。然后将其用作主样式表中后代选择器的一部分。

答案 1 :(得分:0)

你可以设置

#featured, #section-portfolio { display:none; visibility:hidden }

默认情况下在你的css中使用javascript“撤消”它?

来自w3schools: noscript标记用于为在浏览器中禁用脚本或具有不支持客户端脚本的浏览器的用户提供备用内容。

noscript元素可以包含在普通HTML页面的body元素中可以找到的所有元素。

只有在不支持脚本或在用户浏览器中禁用脚本时,才会显示元素内的内容。

答案 2 :(得分:0)

您可以尝试使用javascript更改css文件:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>What ever</title>
<link rel="stylesheet" type="text/css" href="scripting_off.css"  id="client_side_scripting"/>
<script  type="text/javascript">
document.getElementById('client_side_scripting').setAttribute('href','scripting_on.css');
</script>
</head>
<body>

</body>
</html>