CSS: body { }选择器不起作用

14

这是整个文档:

<!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>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Title</title>

    <style type="text/css">
        body‌ {
            font-family: Tahoma;
            font-size: 8px;
            background: #f00;
        }
    </style>
</head>

<body>
    Sample Text
    <p>Another Text</p>
</body>
</html>

在jsfiddle中:http://jsfiddle.net/HDBqZ/

为什么它不能工作?我有遗漏什么吗?


有趣的是,html{...}可以工作。你试过使用外部样式吗? - John Dvorak
你的代码非常完美,我只是删除了一些空格就可以运行了。 - Hussain Akhtar Wahid 'Ghouri'
3
body 后面有一个奇怪的字符:U+200c - Felix Kling
1个回答

15

你的 body { 选择器中,在 y 后面似乎有一些垃圾字符

>>> u'body‌'
u'body\u200c'

删除body标签并手动重新编写。 你的文本编辑器也应该有一些工具可以自动去除这些东西。


3
@Natasha:这是有效的。问题在于您的选择器正在寻找<body>标签。 - Blender
3
这段话的意思是:Junk 是一个看不见的控制字符,它的 Unicode 编码是 U+200C ZERO WIDTH NON-JOINER。在 CSS 语法中,任何非 ASCII Unicode 字符都是合法的标识符。因此,CSS 验证器无法捕获这个错误,因为在 CSS 规范中它并不是一个错误!选择器是一个由五个字符组成的标识符,“body” 后面跟着 U+200C,但该选择器并没有匹配到任何元素。 - Jukka K. Korpela
@JanDvorak:我在本地尝试了一下,它可以工作。我将零宽度字符复制粘贴到<body>标签中的body后面。 - Blender
@Jan:foo {...}将匹配具有标签foo的元素,这也是无效的HTML;)CSS和HTML是独立的。 - Felix Kling
1
@Jan Dvorak:“浏览器需要将未知标签解释为未经样式化的内联元素”,然后可以应用样式规则。这并不使其与CSS更相关,我们在这里讨论的是CSS,而不是HTML。 - BoltClock
显示剩余8条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接