Вопрос по css, html, visual-studio-2010, visual-studio – Visual Studio (2012 и ниже) удаляет свойства CSS

26

У меня действительно странная проблема с 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, похоже, удаляет некоторые атрибуты, которых она не знает. Это действительно раздражает.Any idea how I could stop that?

Это не проблема CSS-комментариев. Так же бывает и без комментариев.

Update

Похоже, что это происходит путем сохранения файлов, которые включены в файл CSS. Когда я редактирую мастер-макет и сохраняю его, Visual Studio удаляет эти свойства, которые я упоминал выше, в связанном файле CSS.

И егоNOT проблема CSS3, потому что она не касается моих классов и идентификаторов границ. Так что, возможно, это свойство фильтра. Однако я хочу остановить Visual Studio, изменяя мои вещи в файле CSS без разрешений.

Update 27. June 2014

Проблема решена в Visual Studio 2013 https://connect.microsoft.com/VisualStudio/feedback/details/782677/visual-studio-is-deleting-css

Привет Рен & # xE9 ;, есть какие-нибудь обновления по этому поводу? Это действительно сводит меня с ума ...? Amila
у меня естьsame problem, После попытки воспроизведения я знаю это очень много: 1) Это происходит, когда я редактирую файл CSS и сохраняю. 2) Это не относится к какому-либо конкретному введенному тексту, потому что я смог воспроизвести его с некоторым текстом, который я скопировал, а затем восстановил, вставил обратно, и это больше не повторилось. johntrepreneur
Кроме того, он отображается только в стиле фонового изображения и в стиле фильтра, но не в фоновом или фоновом цвете. Теперь я могу последовательно это воспроизвести, щелкнув правой кнопкой мыши класс css и выбрав «Стиль сборки ...». и нажатие кнопки «ОК»; без каких-либо правок. Он либо запускает это (нежелательное) форматирование периодически, либо из набора пользовательских действий при работе с CSS. johntrepreneur
Нету. Я извиняюсь. René Stalder
Я испытываю ту же проблему в Visual Studio 2012, но пока не нашел решения. Henrik Andersson

Ваш Ответ

7   ответов
0

Я еще не нашел, как предотвратить это, но есть гораздо более простой способ исправить ошибку CSS:

Как только вы заметите, что VS2010 испортил код CSS, остановите отладку, перейдите на вкладку файла CSS и нажмите кнопку отмены. Ваш код Css вернулся до того, как VS2010 испортил его. Скомпилируйте и все работает.

Я скоро опробую VS2012, кто-нибудь знает, была ли она там решена?

Error: User Rate Limit Exceeded René Stalder
2

Параметры & gt; Текстовый редактор & gt; CSS & gt; Разное выключить Обнаружение ошибок. Я сделал это и использовал файл с вашим примером выше, запустил решение, закрыл файл, закрыл решение, и мой код все еще там :-)

Error: User Rate Limit Exceeded René Stalder
5

The existence of the "filter:" style is what's causing all of the "background-image:" styles to disappear except the last one listed. Он не означает, что он удаляет то, чего он не знает, он просто удаляет все, кроме последнего «background-image». стиль в списке. Должно быть, Microsoft (предполагаемый) способ создания фильтра и особого стиля фонового изображения для 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(startColorStr='#FFFFFF', EndColorStr='#DAD6E7', gradientType='1'); /* IE6 - IE9 */

и затем выберите «Стиль сборки ...». Затем нажмите «ОК». ничего не меняя и смотри, удаляй все, кроме последнего оставшегося фонового изображения. Попробуйте изменить порядок стилей фонового изображения и оставьте веб-набор последним, а затем убедитесь сами.

You'll notice that if you remove the "filter:" style the problem goes away, however we need that (for this example) so the solution seems to be moving the "filter:" style above all the "background-image:" lines. Once you do that, it leaves them alone and the problem goes away.

Изменение вышеупомянутого 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);  

UPDATE: Обходной путь выше работает только в том случае, если VS применяет форматирование, когда вы используете "Стиль сборки ..." - & GT; & quot; Изменить стиль & quot; диалоговое окно, потому что я только что видел его снова с исправлением выше на месте, так что это должно быть от чего-то еще.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededconnect.microsoft.com/VisualStudio/feedback/details/782677/… René Stalder
Error: User Rate Limit ExceededankSVNError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededstackoverflow.com/q/13255807/17447Error: User Rate Limit Exceeded
3

Visual Studio не поддерживает CSS3 и HTML5, и в этом может быть проблема.
Но есть поддержкаHTML5 & amp; CSS3 в Visual Studio 2010 SP1
Итак, почему вы не скачиваетеVisual Studio 2010 SP1 и попробовать?

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded René Stalder
Error: User Rate Limit Exceeded René Stalder
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
2

что проблема не влияет на стили CSS3. Единственный обходной путь, который я могу предложить, - поместить в комментарии копию исчезающей строки над собой, чтобы, по крайней мере, ее было легко скопировать обратно.

/* filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#efefef'); */
filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff', EndColorStr='#efefef');
Error: User Rate Limit Exceeded René Stalder
Error: User Rate Limit Exceeded
0

У меня были установлены инструменты DevX IDE, и удаление, которое, кажется, решило проблему для меня. Я сделал это несколько дней назад, и проблема не повторилась.

Error: User Rate Limit Exceeded René Stalder
1

но, читая информацию из других комментариев и ответов, кажется, что вы можете попытаться отделитьfilter полностью вa repeated selector definition, Вот так:

.someClass {
  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);  
}

.someClass { /* repeated to isolate filter */
  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#FFFFFF', EndColorStr='#DAD6E7', gradientType='1'); /* IE6 - IE9 */
}

Это настоящая боль, но если это решит вашу проблему, пока MS не исправит ошибку ...

Похожие вопросы