Less.js: لا يمكن إنشاء نصف قطر حد بيضاوي

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

باستخدام مواصفات CSS3 المنقحة ، من الممكن إنشاء نصف قطر حد بيضاوي باستخدام الصيغة التالية:
-webkit-border-radius: 40px / 10px؛
-moz-border-radius: 40px / 10px ؛
نصف قطر الحدود: 40 بكسل / 10 بكسل ؛

لكن أقل من تحليل هذا وحساب 40/10 بحيث يصبح في الواقع 5 ، على النحو التالي:
-webkit-border-radius: 5px؛
-موز حدود نصف قطرها: 5 بكسل ؛
نصف قطر الحدود: 5 بكسل ؛

يجب أن تكون هناك طريقة لكتابة هذه الصيغة بدون تقليل تحليلها.

bug medium priority

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

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

border-radius:0 0 100% 100% ~"/" 0 0 24px 24px;

ال 28 كومينتر

كنت أرغب في إضافة مشكلة مشابهة / ذات صلة تحدث مع خاصية الخط عند الإعلان عن ارتفاع السطر

.class {
    font: 13px/1.231 arial, helvetica, clean, sans-serif;
} 

يجب أن تظل دون تغيير ولكنها تصبح:
.صف دراسي {
الخط: 10.560519902518276px arial ، helvetica ، clean ، sans-serif ؛
}

dotless لديها أيضًا هذه المشكلة (https://github.com/dotless/dotless/issues/16). سيكون من الجيد التوصل إلى اتفاق حول كيفية المضي في كليهما.

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

 font: ~"13px/1.231 arial, helvetica, clean, sans-serif";

او حتى

 font: ~"13px/1.231" arial, helvetica, clean, sans-serif;

لقد فهمت أن أحد أهداف الأقل هو التوافق مع بناء جملة CSS العادي. العمل حول كسر هذه القاعدة.

أنا أتفهم إحباطك. لا أرى حلاً سهلاً بين حساب Less وخصائص CSS المحددة. على سبيل المثال ، ماذا لو كنت تريد بالفعل تحديد أن حجم الخط هو نصف الحجم ، أي

 <strong i="6">@example</strong>: 24pt;
 .foo {
     font: normal @example/2 sans-serif;
 }

شيء ما يجب التنازل عنه. باعتراف الجميع ، يمكنك تغيير Less بحيث يتم التفاف أي تحويلات.

 font: normal (@example/2) sans-serif;

ولكن هذا من شأنه أن يكسر ويزيد من الإسهاب في أي أوراق أنماط أقل موجودة لجميع الحالات فقط لتجنب الحالات التي ليست شائعة بالنسبة لإعلانات اختزال الخطوط ونصف القطر. خيار آخر إذا كنت قلقًا بشأن CSS الحالي ، يمكنك استيراد أي CSS موجود إلى ملف Less الخاص بك:

 <strong i="13">@import</strong> "legacy.css";

في هذه الحالة ، ينجح الاستيراد ، لكنه لا يغير CSS أو يحولها.

مرة أخرى ، أفهم تمامًا قلقك من أن Less ليس مجموعة شاملة صارمة من CSS ، لكني أفتقر إلى أي أفكار أفضل بشكل واضح. هل لديك أي حلول محتملة لمشكلة بناء الجملة هذه؟

: +1: بخصوص هذه المشكلة مني ، لكنني أيضًا لست متأكدًا من طريقة أنيقة لحلها لا تتطلب الهروب من CSS أو تتطلب أقواسًا لبدء الحسابات

agatroniccloudhead أنا أعمل على إصلاح هذا ، لكني أرغب في الحصول على مدخلاتك حول الطريقة التي تعتقد أنه يجب التعامل معها قبل أن

لاحظ أن هذا الخطأ يكسر أيضًا اختزال خلفية CSS3 الذي يستخدم الشرطة المائلة لفصل موضع الخلفية (الذي يمكن أن يكون كلمات رئيسية أو أبعادًا) عن حجم الخلفية. على سبيل المثال:

.foo {
    background: url(image.png) center / 1px 100px;
}

أيضا pingingmatthewdl Synchro

كان الاقتراح السابق أن "/" يقسم و "/" نسبة. سيكون من الجيد الحصول على مدخلات من cloudhead لأنه على الرغم من أنه سيكون من الرائع حقًا الترتيب ، إلا أنه مخيف جدًا إذا

رد cloudhead عبر "حل paren يبدو لائقًا"

تكمن مشكلة حل المساحات في أنه لا يزال يكسر CSS الصالحة تمامًا. لسوء الحظ ، فإن الطريقة الوحيدة لمعالجة هذا الأمر بشكل فعال دون كسر السلوك الحالي هي الاستمرار في السماح لـ CSS القديم العادي بفشل التحليل بشكل صحيح.

ماذا عن الخيار "المؤقت" حتى يتمكن الأشخاص من الاستمتاع بكليهما لفترة سماح؟

أو

يجب أن نقوم بإصدار قبل دمج هذا الإصلاح مباشرة ورفع رقم إصدار رئيسي إلى 1.4 (ونأمل أن نضيف متغيرات في التضمين والاستيفاء لأسماء الخصائص وما إلى ذلك.

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

قصدت العلم أن يبقى السلوك الحالي .. لكنني أتفق معك.

هل لديك حقوق ارتكاب؟ حتى لو كان الأمر كذلك قد يكون أفضل كطلب سحب لذلك نحن
يمكن التنسيق مع الإصدارات (ليس لدينا خطط أعرفها)

أنا شخصياً أعتقد أنه يجب علينا ابتلاع حبوب منع الحمل والبدء في سرد ​​العمليات الحسابية غير المحصورة كميزة مهملة. هناك العديد من الحالات التي تتعارض فيها مع CSS الصالحة. agatronic - الأمر يستحق مناقشة Skype مع cloudhead (أو في أي مكان آخر) ، وأنا أكره تدمير مكتبات LESS الخاصة بأي شخص ، ولكن لا ينبغي لـ LESS أن يمزق ويكسر CSS الذي لم

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

ولكن ، كما هو الحال الآن ، تم توثيق LESS كـ "Valid CSS = valid LESS" ، ومع هذا الخطأ ، لم يكن الأمر كذلك. إنها تعيد كتابة CSS بشكل خاطئ ، مما يجعلها خطأ واضحًا. تكمن المشكلة أيضًا في أنها عملية حسابية موثقة بوضوح. يتعارض الاثنان ، ويبدو لي أن الحالة الثانية هي الحالة التي يجب تغييرها ، مع الحفاظ على CSS.

أرى ttfkam و @ mlms13 قال نفس الشيء كثيرًا. أعتقد أن غريزتهم صحيحة ، وسأصوت بشدة على أن LESS يبدأ هجرة بطيئة إلى الأقواس باعتبارها شرطًا للعمليات.

matthewdl +1

agatronic : ليس لدي حقوق الالتزام ، ولكني أوافق على أن يتم ذلك من خلال العلاقات العامة على أي حال لمراجعة الكود وتنسيق الإصدار المحتمل.

matthewdl : لأغراض العلاقات العامة الخاصة بي ، بدأت العمل على السماح بالقسمة بين قوسين فقط. اعتبرها تدبيرًا لسد الثغرات لمنع LESS من كسر CSS الصالحة. لا يقتصر الأمر على قواعد محددة ، لذلك في أي مكان يتم العثور على شرطة مائلة ولا يتم تغليفها بأقواس ، سيتم إخراجها كمُحدد حرفي. بمجرد الانتهاء من ذلك ، سألقي نظرة أكثر قليلاً على كيفية تقييد جميع العمليات ليتم إجراؤها داخل الأقواس فقط.

حسنًا ، لقد ناقشت هذا الأمر مع cloudhead على Skype. إنه موافق ، لذا ها هي الخطة:

1) في الإصدار التالي ، سيتم تحديث الوثائق التي تم إهمال الرياضيات خارج الأقواس. ستوضح الوثائق العمليات الحسابية على أنها بين قوسين. ومع ذلك ، فإن الرياضيات غير المقسمة خارج الأقواس يجب أن تظل مجمعة (لهذا الإصدار).

2) في الإصدار اللاحق بعد الخطوة رقم 1 ، ستتطلب جميع العمليات الحسابية أقواس. ستتغير الوثائق من "مهملة" إلى "غير مدعومة" (أو شيء من هذا القبيل - كيف يمكننا توصيلها يمكن تحسينها).

يبدو جيدا؟ هذا يعني أنه يجب علينا البدء في التخطيط لماهية المعالم للإصدارين التاليين ، ولكن هذا خارج نطاق هذا الموضوع هنا.

في الواقع ، للتوضيح ، يمكن تحديث الوثائق الآن لتقول إن الرياضيات خارج الأقواس مهملة ، لأن الرياضيات IN بين قوسين تعمل بشكل جيد. هذه هي الخطوة 0: نقوم بتحديث المستندات الآن لإخبار الناس أ) يجب أن تكون الرياضيات بين قوسين ، وعدم القيام بذلك قد ينكسر في المستقبل ، ب) أظهر كل الرياضيات بين قوسين.

يعمل لدي! : +1:

لذلك يفترض أن dmcass يجب أن يقوم بطلب سحب ضد
https://github.com/cloudhead/lesscss.org

ومن ثم يجب علينا متاعب cloudhead لالتزام أو منحنا حقوق الالتزام بهذا المشروع؟

صحيح. نعم ، سأحاول أن أتذكر أن أزعجه اليوم بشأن هذا الأمر.

في 2012-08-21 ، في 5:19 صباحًا ، كتب Luke Page [email protected] :

لذلك من المفترض أن يقوم dmcass https://github.com/dmcass بإجراء طلب سحب
ضد
https://github.com/cloudhead/lesscss.org

وبعد ذلك يجب أن نواجه مشكلةcloudhead https://github.com/cloudhead إلى
أن نلتزم أو تعطينا حقوق الالتزام بهذا المشروع؟

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو اعرضه على
Gi tHubhttps: //github.com/cloudhead/less.js/issues/146#issuecomment -7899194.

لقد فتحت PR لتحديث المستندات على cloudhead / lesscss.org # 29

ثابت على ماستر 1.4.0

سيكون الأمر كذلك في 1.4.0

تحقق من ألفا على less2css.org

لا يزال هذا الخطأ يحدث في 1.4.1 إذا كنت تستخدم CSS التالية:
نصف قطر الحدود

ينتج:
نصف قطر الحدود: 0 0 100٪ إنفينيتي٪ 0 24px 24px ؛

(جربته على http://less2css.org)

rubious هل قمت بتشغيل الرياضيات الصارمة في قائمة الخيارات؟ يتم إيقاف تشغيله بشكل افتراضي وبالتالي يعطي السلوك القديم.

حسنًا ، هذا يعمل ، ولكني أستخدم LiveReload ولا يبدو أن هذا الخيار قيد التشغيل هناك.

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

border-radius:0 0 100% 100% ~"/" 0 0 24px 24px;
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات