волшебное имя для подавления XmlSerialization пустого Списка

Большинство ответов верны, когда говорят, что это проблема специфичности, но неверны или неполны в объяснении правил специфичности.

В основном в вашем случае .rightColoumn * «более конкретен», чем td, и поэтому правило побеждает, даже если оно наступает раньше.

Правила CSS 2.1 находятся здесь . Вот эти правила:

  • считать 1, если декларация от является атрибутом 'style', а не правилом с селектором, 0 в противном случае (= a) (В HTML значения стиля "элемента" «Атрибут - это правила таблицы стилей. Эти правила не имеют селекторов, поэтому a = 1, b = 0, c = 0 и d = 0.)
  • подсчитывают количество атрибутов ID в селекторе (= b )
  • подсчитывают количество других атрибутов и псевдоклассов в селекторе (= c)
  • подсчитывают количество имен элементов и псевдоэлементов в селекторе (= d)

Конкатенация четырех чисел abcd (в системе счисления с большой базой) дает специфичность.

Таким образом, в вашем случае у вас есть два правила:

.rightColumn * {} /* a = 0, b = 0; c = 1, d = 0 : Specificity = 0010*/
td {} /* a = 0, b = 0, c = 0, d = 1 : Specificity = 0001 */

0001 ниже, чем 0010, и поэтому первое правило выигрывает.

Есть два способа исправить это:

  1. Используйте !important, чтобы сделать правило более «важным». Я бы избегал этого, потому что это сбивает с толку, когда у вас много правил, распределенных по нескольким файлам.
  2. Используйте селектор с более высокой специфичностью для тд, который вы хотите изменить. Вы можете добавить к нему имя класса или идентификатор, и это позволит вам заменить правило из связанного файла CSS.

Пример:


Редактировать: Исправлены правила специфичности для *. Комментарий Дэвида побудил меня перечитать спецификацию, которая показывает, что селектор * ничего не влияет на оценку специфичности.

7
задан Konamiman 15 June 2015 в 09:40
поделиться

1 ответ

Я думаю, вы имеете в виду соглашение об именах методов ShouldSerialize * PropertyName * , но AFAIK это относится не к сериализации XML, а к сериализации свойств компонентов в Windows Forms (I все равно может ошибаться). См. Здесь: http://msdn.microsoft.com/en-us/library/53b8022e%28VS.71%29.aspx

ОБНОВЛЕНИЕ . Кажется, что это также работает для сериализации XML, но это недокументированная функция: http://horacegoescoding.blogspot.com/2009/04/using-shouldserialize-for-conditional.html

7
ответ дан 7 December 2019 в 07:47
поделиться
Другие вопросы по тегам:

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