2013-04-08 39 views
2

我有一个CSS样式表在ASP.NET项目中的一个Web窗体中使用。CSS本身的变化

我在Visual Studio 2008中

很多次工作,当我做出一些改变,它改变了我的CSS类之一,导致一些丑陋的边界。

例如:我做了一个修改,保存了样式表,继续在其他页面上工作,然后我发现样式表需要再次保存。我必须回到样式表,按撤消然后再保存它。

我很好奇什么样的变化,所以我复制和前比较,其文字和撤消后,这是什么样的变化:

enter image description here

编辑:眼下,那一刻我打开.css文件通过在解决方案资源管理器中双击它,它会立即改变我的CSS并需要保存。非常讨厌。

+1

我以前从未使用Visual Studio,但是,如果我不得不猜测我会说,也许是因为您使用边框和边框 - raidus它会以某种方式混淆并覆盖边框属性。也许尝试将CS​​S分解为单独的属性,如边框颜色,边框宽度等。 – 2013-04-08 09:00:45

+0

您确定该文件未在另一个可能自动保存的程序中打开吗?或者在像FileZilla那样与服务器同步的地方? – JoRouss 2013-04-23 13:54:30

+0

很确定。这是因为CSS,因为我在其他项目中也使用了相同的css代码,所以我也遇到了同样的问题。 @Somebody – enb081 2013-04-23 13:56:01

回答

3

接下来的事情并不是我的答案,但它是我能找到的最好的事情,现在
我猜想是我发现的吗?是的,这里在StackOverflow的 这里的链接:Visual Studio (2012 and lower) deletes CSS properties 我真的希望它有助于

“ 的存在‘过滤器’的风格是什么导致所有的‘背景图像:’风格,除了消失列出的最后一个,并不是它删除了它不知道的东西,它只是删除除最后列出的“背景图像”样式以外的所有东西。必须是微软(打算)制作过滤器的方式和MS特定的背景图像样式但是它们并没有很好的编码,绝对是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(startCol 

orStr ='#FFFFFF',EndColorStr ='#DAD6E7',gradientType ='1');/* IE6 - IE9 */ 然后选择“Build Style ...”。然后单击“确定”而不更改任何内容,并观看它除去剩下的最后一个背景图像。尝试更改“背景图像样式”的顺序,然后离开webkit,然后看看自己。

您会注意到,如果删除“filter:”样式,问题就会消失,但是我们需要这个例子),所以解决方案似乎是将“filter:”样式移动到所有“background-image:”行之上,一旦这样做,就会让它们独立出来,问题就会消失。这似乎aleviate问题:

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); 

UPDATE:上面唯一的工作解决方法当你使用“Build Style ...” - >“Modify Style”对话框时,VS应用格式化,因为我刚刚在上面的修复程序中看到了它,所以它必须是别的。 “

+0

没有测试过这个答案但是帖子解答来自似乎很好的领导! :) – 2013-04-24 20:08:51

2

我不知道你的环境,所以我不能说别的东西是否改变你的CSS。如果我是你,我会尝试用另一个编辑器打开文件,也许两个,只是为了找出如果责备在Virtual Studio 2008上。

如果事实证明它是虚拟 Studio的故障你没有一个最终的需要坚持使用它,我会建议Sublime Text。它非常强大而且免费。

3

您是否尝试过其他Visual Studio版本。像2010或2012.

这里的问题是,重新排序几行代码,但它似乎在这里是从Visual Studio的其他问题。尝试重新安装。如果你喜欢VS风格,你可以尝试更高版本。优点:修复了很多bug并增加了许多功能。

我的推荐:尝试SublimeText2一段时间,看看你是否喜欢它。我喜欢它,它比VS快很多。试一试。值得。

+0

我在ASP.NET中开发,我不得不使用Visual Studio。 – enb081 2013-04-26 06:45:28

+0

这个问题不仅是重新排序,它还会删除边框属性。 – enb081 2013-04-26 07:07:49

+0

现在我看到它甚至可以删除文字阴影。也许VS 2008不识别文字阴影,但我没有得到边界问题。我会尽力找到问题,但没有任何承诺。同时,您可以尝试重新安装VS 2008或尝试2010或2012. – 2013-04-26 10:22:58

2

试试这个:

toolbar
选项 - > HTML Designer-> CSS样式,改变“自动风格的应用程序”“手动风格的应用程序”