Отступы: начальный против отступов:0
Есть ли padding:initial
иметь какое-либо преимущество перед padding:0
? Пример:
<style>
textarea {
padding: 0;
}
</style>
<textarea>Hello, world!</textarea>
2 ответа
Они означают то же самое, что и начальное значение padding
фактически равен нулю со всех сторон. Вы можете найти это в propdefs для padding
и его длинные руки в этом разделе спецификации.
В этом случае, учитывая характер padding
свойство, и тот факт, что его начальное значение является в основном общеизвестным на данный момент, нет особого преимущества установки padding: initial
над padding: 0
,
На самом деле, есть один недостаток, и это его пока еще не полная поддержка браузера из-за того, что это относительно новое ключевое слово. А именно, если padding
не был уже нулевым для этого элемента, браузеры, которые не поддерживают ключевое слово, полностью игнорировали бы объявление, в результате чего свойство не сбрасывалось в ноль.
initial
Ключевое слово наиболее полезно при использовании с новыми свойствами, определенными в модуле CSS3 Cascading (ни одно из которых еще не реализовано AFAIK, и где само ключевое слово определено). Его также можно использовать, когда вы просто хотите сбросить свойство к его начальному значению, не заботясь о том, что это значение на самом деле, что особенно полезно для свойств, которые либо наследуются по умолчанию, например: color
(хотя начальное значение в этом случае будет currentColor
) или в тех случаях, когда "начальное" значение может отличаться в зависимости от макета и, следовательно, не может быть определено как фиксированное значение. Такие случаи, однако, по общему признанию довольно редки.
Наконец, обратите внимание, что "начальное значение" и "значение по умолчанию в браузере" не совпадают; начальное значение определяется спецификацией, которая отличается от того, какое значение браузер назначает определенным свойствам определенных элементов как часть своей таблицы стилей по умолчанию. Не существует надежного способа вернуть свойству свойства браузера по умолчанию для данного элемента, не используя предварительные знания или даже JavaScript для определения этого значения по умолчанию. Смотрите этот ответ для иллюстрации.
На самом деле оба одинаковы, но Initial
дает разработчику больше свободы (комментарий Симона). Он не может быть всегда нулевым, это может быть любое начальное значение.
Таким образом, нет большого преимущества использования отступов: начальный по сравнению с отступом: 0
Начальное ключевое слово CSS применяет начальное значение свойства к элементу. Это разрешено для каждого свойства CSS и заставляет элемент, для которого это указано, использовать начальное значение свойства.
Другой пример
<p style="color:red">
this text is red
<em style="color:initial">
this text is in the initial color (e.g. black)
</em>
this is red again
</p>
прочитайте https://developer.mozilla.org/en-US/docs/Web/CSS/initial