Какой алгоритм вставки границ CSS является наиболее приемлемым? - PullRequest
7 голосов
/ 25 июня 2011

Я заметил, что каждый браузер отображает свойство border-style: inset; по-своему, поэтому у меня было два вопроса:

  1. Почему браузеры отображают его по-разному? Как может быть так много разных алгоритмов для этого? Более того, некоторые браузеры выглядят неправильно с ним!

  2. Поскольку я не могу полагаться на работающий атрибут inset, мне было интересно, что такое правильный "алгоритм"? Я обычно на 16 светлее сверху / слева и на 16 темнее внизу / справа (т. Е. #666666 - это фон, поэтому #767676 - сверху / слева, а #565656 - снизу / справа)

Мне нужно знать, что использовать (вообще говоря), потому что у меня проблемы с установкой моих стилей, и я явно не могу правильно использовать эту вставку, поэтому мне приходится вручную менять цвета. Иногда, однако, это просто не выглядит правильным (если это слишком темно). Там должен быть хороший алгоритм для этого?

Я искал веб-ресурсы по этому вопросу (например, инструмент «какие цвета должны быть у ваших границ, чтобы сделать этот вид вставками!») Или что-нибудь, что могло бы помочь, и ничего не нашел.

Подумайте об этом так: Если кто-то что-то делал в программе рисования и у него не было кнопки встроенных эффектов, какими цветами будут все четыре его границы, учитывая, что основной цвет _____

Должен быть общий алгоритм для этого, который я не могу найти ...

Редактировать: Я хочу вернуться к своему примеру использования программы рисования, для которой требовался стиль вставки. Может ли кто-нибудь дать мне пример того, что они будут использовать для этого? (Эта часть вопроса лучше направлена ​​на стек дизайнеров?)

Ответы [ 3 ]

5 голосов
/ 25 июня 2011

Цитата: "1. Почему браузеры отображают его по-разному?"

Я уверен, что каждый браузер делает это по-своему, потому что они думают, что их браузер выглядит лучше. IE, вероятно, делает это, чтобы хорошо выглядеть в Windows. Safari делает их совместимыми с внешним видом Mac OS. Firefox соответствует другим элементам этого браузера и т. Д. (И, как сказано в тридцатке, он не был стандартизирован).

Цитата: "2. Поскольку я не могу полагаться на работающий атрибут inset, мне было интересно, что такое правильный" алгоритм "?"

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

Цитата: "Должен быть общий алгоритм для этого, который я не могу найти ..."

Нет, если каждый браузер делает это по-своему. У каждого будет свой алгоритм.


РЕДАКТИРОВАТЬ, чтобы адресовать последующие действия OP:

Цитата: "Редактировать: я хочу указать на мой пример использования программы рисования, для которого требовался стиль вставки. Может кто-нибудь дать мне пример того, что они использовать для этого? (Эта часть вопроса лучше направляет на стек конструкторов?) "

Кажется, вы ищете один конкретный ответ, если его не существует. Я не могу дать вам пример того, что бы я использовал, поскольку современные графические программы (Photoshop) сделают это для меня, а затем предоставят мне достаточно вариантов, которые в сочетании в буквальном смысле дают миллионы результатов; цвет рамки, цвет подсветки, цвет тени, глубина, угол, толщина, профиль и т. д. Спросите 20 человек, что они считают «идеальной» вставкой, и вы получите 20 разных ответов (действительно мнения), а затем мы вернемся к причина, по которой он выглядит по-разному в каждом браузере (см. № 1 выше). Так что да, в контексте вопросов «программирования» эта последняя часть вашего ОП, вероятно, не по теме.

Дополнительные случайные мысли:

Почему border-style не стандартизирован? ИМХО, я думаю, что это свойство просто недостаточно используется, чтобы оправдать какие-либо серьезные усилия по стандартизации, или, возможно, в сообществе стандартов есть много разногласий по этому поводу. Я полагаю, что все свойства CSS, требующие стандартизации, каким-то образом расставлены по приоритетам (популярность, полезность?), И этот просто еще не обрезал или не собрал всех вместе. Лично я считаю, что такая собственность слишком тесно связана с постоянно меняющимися тенденциями. то есть - 10 лет назад мы видели много таблиц с очень толстыми «рельефными» границами. В наши дни многие дизайны используют немного границ или очень тонкие границы, если таковые имеются. Опять же, это только вопрос вкуса и мнения.

3 голосов
/ 25 июня 2011

У меня есть ответ на этот вопрос:

  1. Почему браузеры отображают его по-другому? Как может быть так много разные алгоритмы для этого? Большинство все, некоторые браузеры выглядят неправильно с этим!

См .: http://www.w3.org/TR/CSS21/box.html#border-style-properties

Цвет границ, нарисованных для значений 'канавка', 'гребень', 'вставка' и 'outset' зависит от элемента свойства цвета границы, но UA могут выбрать свой алгоритм рассчитать фактические цвета . За Например, если 'border-color' имеет значение «серебро», то UA может использовать градиент цветов от белого до темно-серый, чтобы указать наклон граница.

По этой причине реализации отличаются - потому что не был стандартизирован .

2 голосов
/ 25 июня 2011

Я бы сказал, что для более светлой стороны добавьте 20% к каждому значению rgb, а для темной стороны удалите 20% от каждого значения RGB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...