Less.js: تتشابك الألوان السداسية ذات التعتيم

تم إنشاؤها على ١٧ يوليو ٢٠١٨  ·  14تعليقات  ·  مصدر: less/less.js

تم التحديث إلى [email protected] وبعد ذلك عتامة الألوان مع تقديم كـ

لون الخلفية: # 55555599 ؛ -> # 55555599 99 ؛ (غير صالح)
لون الخلفية: # 5559 ؛ -> # 5559 9 ؛ (غير صالح)

bug medium priority

التعليق الأكثر فائدة

لقد قمت بتحديث وظيفة color() للتعرف على #RRGGBBAA بالإضافة إلى إجراء بعض التحديثات للحفاظ على الألوان في نفس مساحة اللون. في الماضي ، تم تحويل كل شيء إلى سداسي عشري بسيط (إذا كانت alpha = 1) أو rgba() لتوافق المتصفح. الآن ، يمكننا الحفاظ على تناسق أقل من خلال الحفاظ على قيم اللون كما هو مستخدم. تم بالفعل إنتاج ألوان وكلمات رئيسية سداسية عشرية كما هي ، ولكن مع العلاقات العامة الخاصة بي ، سينتج أقل hsl() و hsla() كما هو (باستثناء عند تثبيت القيم) ، وحتى الحفاظ على مساحة اللون بعد اللون عمليات مثل darken() أو spin() .

ال 14 كومينتر

هل دعم أقل حتى التدوين السداسي rgba من قبل؟

rjgotten ليس بشكل مباشر ، لا. ولكن يجب فقط تخطي (الحفاظ على) القيم غير المعترف بها. ربما هذا هو الانحدار.

rjgottentapsaman لا اعتقد ان هذا الانحدار، لذلك بقدر ما كان غير معتمدة حتى الآن. ومع ذلك ، كان مجرد عدد قليل من التغييرات والتغييرات في regex على عقدة اللون لدعم هذا النموذج. انظر الاختبارات في العلاقات العامة للتحقق منها.

شيء واحد يفعله هذا هو إزالة الألوان "غير الصالحة" من أجل التوافق في المستقبل. لن يؤدي ذلك إلى ظهور خطأ في وقت التقييم حتى تحاول استخدام لون "غير صالح" في عملية اللون. لكن الأقل في 3.0+ هو أكثر تسامحًا مع القيم في الخصائص ، لذلك بدا من المعقول إزالته.

شيء واحد: هل يجب على أقل تحويل #RRGGBBAA للمتصفحات غير المتوافقة؟ اعتبارًا من اليوم ، ليس لدى IE / Edge أي دعم ، وبعض المتصفحات الأخرى لا تدعمها أيضًا. لم تقدم Microsoft أي إشارة إلى أنها ستنفذها في أي وقت قريب. ومع ذلك ، فإن السبب في أنني قمت بتطبيقه هو أنه كانت هناك بالتأكيد مشكلة في التحليل في وظيفة تحليل الألوان. كان يمسك السلسلة بأكملها ويحفظ اللون ، ولكن لا يطور المحلل اللغوي إذا كان اللون 4 أو 8 أحرف ، وهذا هو السبب في أنه كان يكرر الأرقام الأخيرة.

تحرير: ما فعلته هو السماح بتحويل المؤلف إلى تنسيق rgba() عبر rgba(#55555599) .

فيما يلي قائمة بالأفكار التي لدي تتعلق بهذا.

  • لست متأكدًا من أن مهمة ليس هي أن تكون مدركًا لدعم المتصفح.
  • إن الخلط بين وظيفة أقل ووظيفة CSS "يبدو" أمرًا خطيرًا ، لكن لا يمكنني تحديد السبب.
  • لدينا _DO_ بالفعل الدالة argb() تهدف إلى إخراج #AARRGGBB .
  • لدينا أيضًا وظيفة color() . هل يدعم #AARRGGBB ، #ARGB ؟
  • color: #AA334455; و color: #A345; هي CSS صالحة (أو مقبولة) ، حتى لو لم يكن هناك العديد من المتصفحات التي _ تفهم_ هذا النموذج.
  • أتساءل عما إذا كان الصب rbga() منحدر زلق. rgb() و hsl() و hsla() كلها وظائف CSS أيضًا.
  • من ناحية أخرى ، نظرًا لأن Less هو مجموعة شاملة من CSS ، فإن rgba() له معنى كبير.

tl ؛ dr: أعتقد أن انطباعي العام الأول هو أننا يجب أن نضمن أن الدالة color() تدعم سلاسل ARGB المكونة من 8 و 4 أرقام ، حيث يبدو أن هذا هو الغرض على أي حال.

إن الخلط بين وظيفة أقل ووظيفة CSS "يبدو" أمرًا خطيرًا ، لكن لا يمكنني تحديد السبب.

لقد أبحرت السفينة. rgba() كدالة أقل لفترة طويلة. لكن السبب الرئيسي هو أنه يمكنك تمرير الألوان إلى شيء مثل lighten() . وهذا يعني أن rgba() يحتاج إلى إرجاع لون داخليًا. لذا فإن وظائف مثل rgba() _have_ ستكون وظائف أقل إذا كنت تريد بالفعل استخدام وظائف ألوان Less. (على سبيل المثال lighten (rgba (50،50،50،0.5)، 50٪)) وإلا فسيكون مجرد استدعاء دالة غير معروف. علينا أن نعرف ما هو اللون في الواقع _is_ من أجل التلاعب باللون المذكور.

أتساءل عما إذا كان rbga () cast منحدرًا زلقًا. rgb () و hsl () و hsla () كلها وظائف CSS أيضًا.

نعم ، أعتقد. لكن الاختيار هو طريقة خاطئة للتفكير في الأمر. كما أنه يمكّن هذا النموذج: rgba(#777777, 0.5) ، وهو مسموح به أو سيسمح به في المتصفحات. لا يمتد إلى hsla() ، هذا صحيح ، لكن التنفيذ الداخلي أصعب بكثير وليس ضروريًا أيضًا إذا كان لديك طريقة تعمل.

لدينا أيضًا وظيفة color (). هل يدعم #AARRGGBB ، #ARGB؟

لا ، شكرا لتوضيح هذا. يمكنني أن أضيف ذلك. على الرغم من أنني في حيرة من أمري لماذا توجد هذه الوظيفة على الإطلاق؟

كما أنه يمكّن هذا النموذج: rgba (# 777777، 0.5) ، وهو مسموح به أو سيسمح به في المتصفحات.

لإعادة الصياغة ، هذا النموذج لون صالح في CSS: rgba(<Color> [, opacity]) . لذلك لا يوجد سبب لعدم السماح بذلك.

لدينا _DO_ بالفعل الدالة argb() تهدف إلى إخراج #AARRGGBB .

يتم استخدام طلب ARGB خصيصًا لمرشحات DirectShow القديمة في Internet Explorer.
بناء الجملة المكون من 8 أو 4 أرقام في CSS هو ترتيب afaik RGBA.

كما أن دعم كلاهما يجعل من المستحيل بشكل مباشر معرفة ما إذا كان حرفيا #000000FF يمثل أزرق شفاف بالكامل (ARGB) ، أو أسود معتم بالكامل (RGBA).

نصيحتي: إسقاط دعم الألوان ARGB. لن تحتاجه إلا لمتصفحات IE من العصر الحجري والتي أصبحت خارج الخدمة لفترة طويلة.

نصيحتي: إسقاط دعم الألوان ARGB. لن تحتاجه إلا لمتصفحات IE من العصر الحجري والتي أصبحت خارج الخدمة لفترة طويلة.

لا نختبر الدعم على أي شيء أقل من IE11 ، لذا فهذه فكرة جيدة.

rjgotten هل هناك أي وظائف مرشحة (أو ميزات) أخرى color() . يبدو أنه تمت إضافته منذ 4 سنوات.

ما زلت في حيرة من أمري لماذا يحتاج أي شخص إلى كتابة لون كسلسلة في Less ثم تحويله إلى لون باستخدام وظيفة color ().

الشيء الوحيد الذي يمكنني تخيله هو سيناريوهات الاستخراج الآلي.
على سبيل المثال ، مكون إضافي معقد يتعمق في صور خلفية SVG ويستخرج تعريفات الألوان منها لمطابقة استخدام الألوان في قواعد أخرى ، أو شيء من هذا القبيل.

حالة متطرفة عميقة للغاية ، على ما أعتقد.

rjgotten للأسف لم أتمكن من العثور على أي سجل في المشكلات التي

لقد قمت بتحديث وظيفة color() للتعرف على #RRGGBBAA بالإضافة إلى إجراء بعض التحديثات للحفاظ على الألوان في نفس مساحة اللون. في الماضي ، تم تحويل كل شيء إلى سداسي عشري بسيط (إذا كانت alpha = 1) أو rgba() لتوافق المتصفح. الآن ، يمكننا الحفاظ على تناسق أقل من خلال الحفاظ على قيم اللون كما هو مستخدم. تم بالفعل إنتاج ألوان وكلمات رئيسية سداسية عشرية كما هي ، ولكن مع العلاقات العامة الخاصة بي ، سينتج أقل hsl() و hsla() كما هو (باستثناء عند تثبيت القيم) ، وحتى الحفاظ على مساحة اللون بعد اللون عمليات مثل darken() أو spin() .

اللحاق بالركب ، أنا على متن المركب. أعتقد أن الدالة argb() تلبي أي حاجة للتنسيق القديم. هذا هو خطوة جيدة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات