一尘不染

Visual Studio(2012及更低版本)删除CSS属性

css

我在Visual Studio 2010中遇到了一个非常奇怪的问题。当我在样式表中添加渐变的CSS属性时,Visual Studio将在调试几次后将其删除。

我添加到样式表中的代码示例:

.button
{
    /* Firefox */
    background-image: -moz-linear-gradient(top, #fff, #efefef);
    /* Chrome, Safari */
    background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #fff),color-stop(1, #efefef));
    /* Modern Browsers*/
    background-image: linear-gradient(top, #fff, #efefef);
    /* IE */
    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#efefef'); 
}

有时,当我开始调试时,Visual Studio会编辑CSS:

.button
{
    /* Firefox */
    background-image: linear-gradient(top, #fff, #efefef);
    /* Chrome, Safari */
    /* Modern Browsers*/
    }

因此,Visual Studio似乎删除了一些未知的属性。真烦人。 知道我该如何阻止吗?

这不是CSS注释的问题。没有评论也可能发生。

更新资料

似乎是通过保存包含css文件的文件来实现的。当我编辑主版面并将其保存时,Visual Studio将删除上面在链接的CSS文件中提到的该属性。

而且这 不是 CSS3问题,因为它不涉及我的border-radius类和id。所以也许是filter属性。但是我想停止Visual
Studio未经许可而更改css文件中的内容。

更新27.2014年6月

在Visual Studio 2013中解决的问题
https://connect.microsoft.com/VisualStudio/feedback/details/782677/visual-
studio-is-deleting-
css


阅读 371

收藏
2020-05-16

共1个答案

一尘不染

好的,我为此找到了一个临时解决方法:

“ filter:”样式的存在是导致所有“ background-image:”样式消失的原因,除了最后列出的一种。
不是删除了不知道的内容,而是删除了除最后列出的“背景图像”样式以外的所有样式。必须是使过滤器和特定于MS的背景图像样式完美配合的Microsoft(预期)方式,但是他们并没有很好地编写代码。绝对是MS
VS缺陷。要进行复制,只需右键单击具有类似于以下代码的CSS类:

background-color: #EBEBEB; /* Fallback background color for non supported browsers */  
background-image: -webkit-gradient(linear, left top, right top, from(#FFFFFF), to(#DAD6E7));  
background-image: -webkit-linear-gradient(left, #FFFFFF, #DAD6E7);  
background-image: -moz-linear-gradient(left, #FFFFFF, #DAD6E7);  
background-image: -ms-linear-gradient(left, #FFFFFF, #DAD6E7);  
background-image: -o-linear-gradient(left, #FFFFFF, #DAD6E7);  
background-image: linear-gradient(left, #FFFFFF, #DAD6E7);  
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFFFFF', EndColorStr='#DAD6E7', gradientType='1'); /* IE6 - IE9 */

然后选择“构建样式…”。然后,单击“确定”,不进行任何更改,然后将其删除,除去最后一个背景图像。尝试更改“背景图像样式”的顺序,最后保留webkit,然后亲自查看。

您会注意到,如果删除了“ filter:”样式,问题就消失了,但是(在此示例中)我们需要这样做,因此解决方案似乎是将“ filter:”样式移至所有“
background-image:”之上。线。 一旦执行此操作,就让他们独自一人,问题就消失了。

将上述CSS更改为此似乎可以缓解问题:

filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFFFFF', EndColorStr='#DAD6E7', gradientType='1'); /* IE6 - IE9 */
background-color: #EBEBEB; /* Fallback background color for non supported browsers */  
background-image: -webkit-gradient(linear, left top, right top, from(#FFFFFF), to(#DAD6E7));  
background-image: -webkit-linear-gradient(left, #FFFFFF, #DAD6E7);  
background-image: -moz-linear-gradient(left, #FFFFFF, #DAD6E7);  
background-image: -ms-linear-gradient(left, #FFFFFF, #DAD6E7);  
background-image: -o-linear-gradient(left, #FFFFFF, #DAD6E7);  
background-image: linear-gradient(left, #FFFFFF, #DAD6E7);

更新:
以上解决方法仅适用于当您使用“构建样式…”->“修改样式”对话框时VS应用格式时的情况,因为我刚刚在上面的修复中再次看到它,因此它一定来自别的。

2020-05-16