2015-12-25 4 views
3

Итак, я читаю эту книгу Программирование в HTML5 с помощью JavaScript и CSS3 от Microsoft и выполняется это упражнение с использованием таблиц, существует правило css для отображения и скрытия некоторых элементов, но только скрытых или фактически css display: none свойство работает, а дисплей: normal говорит о своем недопустимом значении в css.Значение по умолчанию для CSS по умолчанию

.hidden { 
    display: none; 
} 
.visible { 
    display: normal; 
} 

Возможно ли, что эта книга действительно неверна в отношении отображения: нормальное свойство или я что-то не так?

+2

'display': normal' * is * invalid ... https: //developer.mozilla.org/en-US/docs/Web/CSS/display Это то, что вы просите? –

+0

Попробуйте 'display: initial' – Sam

ответ

8

Да, display: normal недействителен.

Значение по умолчанию display может зависеть от того, что вы имеете в виду под «значением по умолчанию».

  1. Initial value:

    Каждое свойство имеет начальное значение, определенное в таблице определения свойства. Если имущество не является inherited property, и cascade не приводит к значению, то specified value - его initial value.

    Начальная величина display: inline.

  2. Inherited value, в случае, если свойство является наследуемым

    Inheritance распространяется значение свойств от родительских элементов к своим детям. Значение inherited value свойства на элементе - это вычисленное значение свойства на родительском элементе элемента.

    display не наследуется, поэтому это не имеет отношения к делу.

  3. User agents style sheets:

    Conforming user agents должен применить таблицу стилей по умолчанию (или ведут себя, как если бы они сделали). В таблице стилей по умолчанию для пользовательского агента должно быть , которые представляют элементы языка документа способами, которые удовлетворяют ожиданиям представления представления для языка документа (например, для визуальных браузеров ), элемент EM в HTML представлен с использованием курсивного шрифта ). См. HTML user agent style sheet.

    В этой таблице стилей, браузеры стиль некоторые элементы с display: block, display: table и т.д.

  4. User style sheets,

    Пользователь может иметь возможность указать информацию о стиле для конкретного документа.

  5. Author stylesheets

    Это ваши таблицы стилей.

каскад приведет к последнему применимо (на самом деле все гораздо сложнее, потому что есть такие вещи, как специфика, сферы охвата и !important).

Если вы хотите установить некоторые свойства в значение по умолчанию, вы можете использовать

  • initial (введено в CSS Cascade 3)

    свойство-й initial value становится его specified value.

    Тогда display: initial будет эквивалентно display: inline.

  • inherit (введено в CSS2)

    inherited value становится собственностью-х specified и computed values

    Затем display: inherit будет использовать значение родительского элемента (или начальное значение для корневой элемент).

  • unset (введен в CSS Каскад 3)

    , если это наследственное свойство, это трактуется как inherit, и если это не так, это трактуется как initial.

    Поскольку display не наследуемый, display: unset будет эквивалентен display: initial, то есть, display: inline.

  • revert (введен в CSS Каскад 4)

    При использовании в качестве автора таблицы стилей,

    Откатывает каскад на пользовательском уровне, так что specified value вычисляется, как если бы не Автор- были определены правила уровня .

    Возможно, это именно то, что вы хотите.

+0

1+ Отличный ответ. Я не понял, что «initial» установил значение 'inline' .. это довольно бесполезно для свойства' display'. –

+0

Ключевое слово 'inherit' было введено в CSS2. В то время IE был точкой боли, потому что он не реализовал его до IE8 (версия, совместимая с CSS2). Кстати, я недавно опубликовал [вопрос] (http://stackoverflow.com/questions/34441499/is-there-a-way-to-say-use-the-current-font-weight-without-making-it -lighter-bo), чей ответ заключался в использовании ключевого слова 'inherit'. – BoltClock

+0

@Josh Crozier: Начальное значение не имеет смысла указывать на каждое свойство и каждый элемент. Это действительно так, что любой элемент (даже неизвестные элементы) гарантированно имеет вычисленное значение для каждого свойства. В противном случае браузеру необходимо будет указать значения для каждого свойства для каждого отдельного элемента в своих таблицах стилей UA. Это означает 'display: inline' для * all *, который не обязательно должен быть блоком или таблицей или чем-то еще, например. – BoltClock

Смежные вопросы