CSS «цвет» против «цвет шрифта»


136

Кто-нибудь знает, почему CSS предоставляет colorтекст, но не имеет font-colorили text-color?

Кажется очень нелогичным, вроде как, text-decoration: underlineа не font-styleили что-то, связанное со шрифтами.

Кто-нибудь знает, почему / как W3C создал такой широкий набор имен CSS, как этот?


1
Я начал petion, чтобы ввести свойство "font-color". Может быть, некоторые из вас хотели бы подписать это. change.org/p/…
— tsuma534

Вы можете сделать это в теге <font>. например, <font color = "red"> Hello World! <font>
— airider74

@ airider74 В каком году вы живете? Элемент <font> устарел в течение многих лет.
— kojow7

Да, есть ... но все еще работает
— airider74

Ответы:


111

Я думаю, что одной из причин может быть то, что цвет применяется к вещам, отличным от шрифта. Например:

div {
    border: 1px solid;
    color: red;
}

Выдает как красный цвет шрифта, так и красную рамку.

В качестве альтернативы, это может быть просто то, что стандарты CSS W3C являются полностью отсталыми и бессмысленными, как доказано в другом месте.


4
Попробуйте добавить следующее в CSS на этой странице: .post-text { color: blue; border: 1px solid red; }Вы увидите, что цвет текста синий, хотя цвет границы красный.
— Робусто

тогда по определению цвет шрифта быстрее, чем цвет, поскольку он должен выполнять меньше работы.
— КТА

193

Точно так же Бостон придумал свой план улиц. Они уже шли по коровьим тропам и строили дома там, где не было улиц, и через некоторое время было слишком много проблем, чтобы измениться.


10

Я знаю, что это старый пост, но, как сказал MisterZimbu, colorсвойство определяет значения других свойств, таких как border-colorи, с помощью CSS3 currentColor.

currentColor Это очень удобно, если вы хотите использовать цвет шрифта для других элементов (например, фона или пользовательских флажков и радио внутренних элементов).

Пример:

.element {
  color: green;
  background: red;
  display: block;
  width: 200px;
  height: 200px;
  padding: 0;
  margin: 0;
}

.innerElement1 {
  border: solid 10px;
  display: inline-block;
  width: 60px;
  height: 100px;
  margin: 10px;
}

.innerElement2 {
  background: currentColor;
  display: inline-block;
  width: 60px;
  height: 100px;
  margin: 10px;
}
<div class="element">
  <div class="innerElement1"></div>
  <div class="innerElement2"></div>
</div>


Я думаю, что это дает еще больше оснований иметь отдельное font-color/ text-colorдоступное свойство. Таким образом, вы можете иметь много частей элемента с одним конкретным цветом по умолчанию, а текст - с другим, если хотите. В противном случае он связывает цвет по умолчанию с цветом текста.
— Бен Джей

@BenJ Привязка цвета по умолчанию к основному цвету, вероятно, была целью на заре Интернета. Сегодня вы можете использовать переменные css ( developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_variables ) и / или использовать препроцессор css в качестве Sass, Less, Stylus и т. Д., Где легко работать с переменными.
— квази
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.