Я создал функцию isColor, которая использует CSS.supports для определения того, является ли некоторый текст цветом HTML или нет. Это идеально подходит для названий цветов, таких как red, и шестнадцатеричных цветов, таких как #3883fa. Однако для текста field функция CSS.supports('color', 'field') также возвращает true. Имя field не упоминается в списке названий цветов CSS, и я ожидаю, что CSS.supports вернет false в этом случае.
Почему это так? Есть ли еще подобные случаи?
@Cybertine — Речь идет о цветах CSS, а не цветах HTML — CSS.supports('color', 'chucknorris') возвращает false.
Я имею в виду, это одна и та же концепция?
Спасибо Cybertine, похоже, что случай chucknorris представляет собой другую категорию ложных срабатываний, но, как объясняет @Alohci в ответе, причина того, что «поле» определяется как число, другая. Обе категории являются «ложными срабатываниями», и мне нужно позаботиться об обеих, чтобы определить, является ли какой-либо цвет допустимым.






Это системный цвет, означающий цвет фона поля ввода, как определено в Поле в последнем проекте CSS Color Module Level 4.
Спасибо, это объясняет это, а также отвечает на вопрос, есть ли еще такие имена. Похожая проблема с другой причиной обсуждается здесь, в общем, теперь я вижу, как придумать более надежную isColor функцию.
Отвечает ли это на ваш вопрос? Почему HTML считает, что «чакноррис» — это цвет?