为什么我不从CSS文件中获取CSS类intellisense?

时间:2013-11-02 04:00:33

标签: visual-studio-2012 visual-studio-2013

VS2012 的一个不错的功能是,当我编辑HTML(或.cshtml)文件时,它提供了很好的智能感知。

当我开始输入:

<a href="

编辑器会打开一个提示,其中包含“Pick URL ...”以及基于该文件当前目录的可能选项列表。

Pick URL example

^ Visual Studio 2012

此外,在VS2012中,编辑器检测任何引用的CSS文件,如下所示:

<link rel="stylesheet" type="text/css" href="bootstrap.css" />

并且会提供该文件中所有CSS类的自动完成。

所以,如果我输入:

<div class="

我会自动提示所有Bootstrap3类。像这样:

CSS class intellisense

^ Visual Studio 2012

然而,在 VS2013 中,这些功能似乎都缺失了。

现在,当我查找CSS类时,我只获得了我已在文件中使用过的类:

VS2013 CSS completion

^ Visual Studio 2013

根据微软的文章HTML Editing Features in Visual Studio 2013 PreviewHTML Editing Features in Visual Studio 2013 RC,这些问题似乎已被触及,但更多的是针对VS2013的候选版本或测试版本。我正在使用VS2013 Ultimate 12.0.21005.1 REL以及我所知道的所有最新更新。

为什么VS2013在编写href=时没有检测到类自动完成的CSS文件并且没有提示我输入URL?

7 个答案:

答案 0 :(得分:13)

除非样式嵌入页面本身,否则Html编辑器不会为我显示css intellisense。对我有用的是使用Html表单编辑器打开html文件。右键单击该文件并选择打开方式,然后选择Html表单编辑器。这适用于Visual Studio 2013 Community Edition。

答案 1 :(得分:6)

这是 Visual Studio 2012和Visual Studio 2013之间的变化

以前,只需在Visual Studio 2012中打开文件(不是解决方案,只是HTML文件)并使用

<link rel="stylesheet" href="bootstrap.css" />
HTML文件中的

意味着Visual Studio将读取CSS文件并给出CSS类intellisense。微软放弃了这种方法,因为:

  

在动态包含文件或使用ASP.NET Bundling和Minification的情况下,它无法正常工作

[Source]

在Visual Studio 2013中,现在将自动解析项目/解决方案中包含的CSS文件,并且所有HTML文档都将获得CSS类智能感知。

答案 2 :(得分:4)

智能感知工作好几周之后,我遇到了和OP一样的问题。使用NuGet卸载和重新安装软件包无法解决问题。

从项目中删除 bin obj 目录,并从解决方案目录中解析 .suo 文件。

答案 3 :(得分:3)

当我在Visual Studio 2013中创建一个Web应用程序时,这也发生在我身上,VS在头文件中自动创建了这个代码但是intellisense肯定不适用于css类。

<webopt:bundlereference runat="server" path="~/Content/css" />

我所做的只是逐个手动链接我的所有CSS,并且可能在开发后删除它们。

<link href="Content/bootstrap.css" rel="stylesheet" />
<link href="Content/bootstrap.min.css" rel="stylesheet" />
<link href="Content/Site.css" rel="stylesheet" /

确实可以解决问题,但我希望他们能够解决下一次更新问题。

答案 4 :(得分:2)

我遇到了同样的问题。

我有一个母版页面,其中包含指向bootstrap的链接 -

<link href="../css/bootstrap.css" rel="stylesheet" /> 

以前工作过,这就是为什么这令人费解,而且网站成功使用了bootstrap CSS - 它只是智能感知功能无效。

我打开使用Master页面的页面,然后单击VIEW,然后单击MANAGED STYLES。它显示了bootstrap.css,旁边有一个警示标志。当我将鼠标悬停在它上面时说它找不到../ css / bootstrap.css。

因此,要解决此问题,我更改了母版页中的链接以使用代字号而不是句号:

<link href="~/css/bootstrap.css" rel="stylesheet" /> 

现在所有的bootstrap CSS项都出现在Manage Styles中,我的intellisense正在工作。

答案 5 :(得分:2)

正如Rowan Freeman所写:

  

在Visual Studio 2013中,现在将自动解析项目/解决方案中包含的CSS文件,并且所有HTML文档都将获得CSS类智能感知。

可是:

  

使用旧版编辑器的ASPX和其他WebForm文件无法从VS 2013中的此实现中受益,但可能会在将来的版本中采用新系统。

但您仍然可以按照以下方式使用此功能:

  1. 右键单击解决方案资源管理器中的“default.aspx”文件
  2. “open with”
  3. 选择“HTML编辑器”
  4. “OK”

答案 6 :(得分:0)

上面针对VS2012确定的解决方案将略有不同。您必须在样式表的css参考中包含这样的文件夹。添加此页并保存页面后,智能感知将起作用。这不是解决捆绑问题的正确解决方案