【问题标题】:Why would the existence of a CSS rule cause another not to match?为什么 CSS 规则的存在会导致另一个不匹配?
【发布时间】:2012-08-16 07:12:55
【问题描述】:

我尝试在 Chrome 中创建以下 HTML 文件:

<style>
br {
}​

[required] {
  border-width: 3px;
  border-color: red;
}

</style>
<input required />

这是文件的完整内容。 [required] 规则不匹配,&lt;input&gt; 保持无样式。

如果空 br 规则被遗漏,文件读取:

<style>

[required] {
  border-width: 3px;
  border-color: red;
}

</style>
<input required />

效果很好!

为什么在[required] 之前存在&lt;br&gt; 规则会导致[required] 不匹配?

谢谢。 (它工作正常是 jsfiddle,你需要实际创建文件。)

【问题讨论】:

  • 我在 jsFiddle 中看不到这种行为:jsfiddle.net/xvcAL 对我来说很好。你能在我们能看到的地方复制吗?
  • 创建文件放到网上能正常吗?

标签: html css google-chrome


【解决方案1】:

我认为 br 正在帮助欺骗浏览器 - 因为它们是更多的括号......

我认为你错过了什么......

.required{} and
<input class="required">  


or 
#required{} and
<input id="required">

让我们来拉小提琴吧!

【讨论】:

  • 他不使用名为“required”的class或id,而是使用property“required”w3schools.com/html5/att_input_required.asp
  • 哎呀——没听懂——谢谢——我现在明白了。从我的角度来看似乎工作正常。也许只是忘记了一个括号>?
【解决方案2】:

你的新行不知何故无效。删除代码后,代码按预期执行。

我已将问题追溯到 br 的右括号之后。这是我在 vim 中得到的:

<style>
br {
}<200b>

[required] {
  border-width: 3px;
  border-color: red;
}

</style>
<input required />

显然&lt;200b&gt; 是Unicode 零宽度空间。我不熟悉这个角色,也不知道为什么它会出现在这个文件中。删除它可以解决问题。

【讨论】:

  • 我已将问题中的代码输入到我的编辑器中,并创建了文件。我和亚当有同样的问题。
  • @MiljanPuzović 我知道有一个问题,我已经追查过了。问题是这个奇怪的角色是如何开始的。
  • 这太奇怪了。我不知道那是怎么到那里的。很棒的收获!
  • @matt3141 你说得对,在上次编辑你的答案之前我没有得到它。
  • 根据zero width space 上一个问题的回答,它可能是由 Chrome Inspector 生成的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多