【问题标题】:How to suppress specific CSS 2.0 validation errors in Visual Studio 2008?如何在 Visual Studio 2008 中抑制特定的 CSS 2.0 验证错误?
【发布时间】:2011-01-13 08:05:15
【问题描述】:

我经常使用的典型 CSS 属性是 overflow-xoverflow-y。有时我使用 CSS 2.1 或更高版本的属性或选择器。这些(正确)引发验证错误:

Validation (CSS 2.0): 'overflow-y' is not a known CSS property name.

多年来我一直忽略这一点,但感觉有点不对劲。可以为特定的行、块、文件或项目关闭 C# 和其他语言的警告。 CSS(或HTML)错误或警告是否可能出现类似情况?与其将其全部关闭,我更喜欢更精细的解决方案。

【问题讨论】:

  • 不幸的是,在 VS 2008 中要么全有,要么全无……是的,这真的很糟糕。
  • 难道没有像OnReportError 这样的事件接收器之类的东西,或者我可以通过本地插件绑定到然后只忽略特定列表的任何东西?
  • @Nick:很高兴你终于被证明是错误的,请参阅下面 Carl 的新答案;)

标签: asp.net visual-studio-2008 css


【解决方案1】:

如果你愿意花一点时间,你可以得到你想要的。

  1. 转到 Visual Studio 文件夹 \Common7\Packages\1033\schemas\CSS
  2. 将 css21.xml 复制到 css21mod.xml
  3. 找到该部分:

    <cssmd:property-def _locID="overflow" ...
    
  4. 在该部分之后,插入:

    <cssmd:property-def 
        _locID="overflow-x" _locAttrData="description,syntax" 
        type="enum" 
        description="Visibility of content extending beyond element's dimensions in x"
        syntax="One of the overflow values | inherit" 
        enum="inherit auto hidden scroll visible"/>
    
    <cssmd:property-def 
        _locID="overflow-y" _locAttrData="description,syntax" type="enum" 
        description="Visibility of content extending beyond element's dimensions in y" 
        syntax="One of the overflow values | inherit" 
        enum="inherit auto hidden scroll visible"/>
    
  5. 打开注册表,转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\9.0\Packages\{A764E895-518D-11d2-9A89-00C04F79EFC3}\Schemas

    如果是 64 位,则必须转到 SOFTWARE\Wow6432Node\Microsoft

  6. 创建一个名为Schema 5的新键,并用css21mod.xmlCSS 2.1 (mod)填写“文件”和“友好名称”字符串值

应该都准备好了!

【讨论】:

  • 优秀的解决方案!我当然希望可以扩展 CSS 验证,这肯定说明了如何去做。谢谢! (PS:不要复制/粘贴制表符,它们不起作用,用空格替换它们)
  • 如果您只是想关闭无效属性警告,并且您觉得输入错误时不需要通知您,工具->选项->文本编辑器-> CSS->Misc->Uncheck:Detect Unknown Properties - 我不想提交这个作为答案,因为我不希望它取代上述内容,但我确实觉得人们应该知道这个选项。
【解决方案2】:

嗨,我刚刚发现了这个。在 Visual Studio 2010 SP1 中支持 HTML5 验证。

Tools -&gt; Options -&gt; Text Editor -&gt; HTML -&gt; Validation

现在我个人因为我讨厌 VS 告诉我我有重复的 ID(这对于非服务器控件来说很好),我关闭了所有警告并将我的验证设置为 XHTML5(这是一个选项)。

不过,您可以调整设置,直到心满意足为止。遗憾的是,这不是特定于项目的,其他团队成员也需要这样做。

【讨论】:

  • 我没有 XHTML5 的选项。但无论如何,其他选项不允许您抑制特定的 CSS 2.0 验证错误,只能抑制所有(某种类型的)或无。而且很多类型根本无法抑制,只能完全开启或关闭。
  • 我不确定我的 XHTML5 验证是从哪里来的,但它解决了我收到警告的 CSS3 验证问题。是的,可悲的是,它要么开要么关。
  • 如果您对自己的 xhtml / css 功能感到满意,那么关闭这些功能非常安全。
【解决方案3】:

【讨论】:

  • 谢谢,但这个问题是相关的,但不等于这个问题:我想忽略特定的警告(就像你可以在 C# 中做的那样,例如警告)。完全关闭 CSS 的警告不是我想要的(请参阅我的 q 中的最后一行)。
【解决方案4】:

与 Jeremy Child 建议的类似,但特定于 Visual Studio 2008(如原始问题中所述):

工具 -> 选项 -> 文本编辑器 -> CSS -> CSS 特定:取消选中 “检测未知属性”

这会删除所有 CSS 验证。如果您需要问题快速消失(我没有时间/有点懒惰地手动在 xml 文件中添加每个属性并检查 Windows 注册表...)并且您擅长 CSS(验证不是真的),这是一个很好的解决方案当您使用内置智能感知或您确信可以工作的样式时需要 - 例如取自您以前做过的网站-)。

【讨论】:

    【解决方案5】:

    获取对 CSS 3.0 的支持以抑制某些警告:

    how to make visualstudio 2008 support css v3 & html v5

    CSS 3 Intellisense Schema

    【讨论】:

      【解决方案6】:

      所以这就是发生在我身上的事情。我有一个成功的项目。我制作了一份副本并开始进行一些标签更改。我开始得到 “验证 (CSS 2.0): 'overflow-y' 不是已知的 CSS 属性名称。”

      即使重新打开项目后,上述错误仍然出现。

      所以我回到我原来的项目,打开,开始调试,看看我是否在那个项目中也遇到了这个错误。该项目成功。停在那里。来到我的新错误抛出项目,现在错误不再存在。

      想一想导致它消失的原因。记忆里的东西。可能是

      【讨论】:

      • 对我来说,如果相关文件未在编辑器中打开,CSS 错误就会消失。当您看到错误并关闭文件时,CSS 错误就会消失。
      猜你喜欢
      • 2011-04-14
      • 2016-04-19
      • 2012-02-08
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多