سؤال

هناك قائمة من 'جيدة' نظيفة CSS الخارقة ، والتي من المؤكد أن تكون في المستقبل-دليل ؟

على سبيل المثال ، zoom:1 آمنة طالما انها تخدم إلا أن أي ، و تتذكر انها هناك.شائع جدا هاك استخدام الطفل محددات هو لا آمنة لأن IE7 يعتمد عليها.باستخدام height:1% فقط يشعر القذرة (ولكن هذا قد يكون مجرد لي).

أنا أعرف من ie7-شبيبة, حتى IE6 البق لا تقلق علي كثيرا.أيضا, أنا لا أبحث عن ديني النقاش فقط المصادر.


شكرا على الردود لقد اختار واحد مع أفضل مصادر الجواب.

شكرا أيضا على اقتراحات لاستخدام ملفات CSS منفصلة أو أن لا تقلق بشأن ذلك.وأنا أتفق تماما معك, و بالنسبة لي, هذه المعطيات.ولكن عندما تواجه مشكلة تخطيط أريد آمنة الإصلاح التي من شأنها تقليل المخاطر التي سوف تضطر إلى إعادة النظر في مشكلة في $أي أو $FF + 1.آسف لم أكن جعل هذا أكثر وضوحا.

هل كانت مفيدة؟

المحلول

هذا هو مكان جيد موثقة جيدا واختبارها جيدا المتصفح البق الخارقة تسمح لك للتغلب عليها:

http://www.positioniseverything.net/

نصائح أخرى

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

لقد استعملت بيتر بول كوخ "QuirksMode"الموقع الكثير من القضايا التي تنطوي على CSS و عبر متصفح التوافق.أنه يميل إلى التجهم على المتصفح-أساليب محددة, لكن لديه صفحة على CSS الخارقة.

نيكول سوليفان (ويعرف أيضا باسم Stubbornella) الذي يعمل في ياهو فريق الأداء المقترح في 7 عادات استثنائية Perf أنه يجب استخدام CSS تؤكد الاختراق التصحيح حتى IE6 الأخطاء بسبب:

  • الخارقة يجب أن تكون قليلة ومتباعدة.
  • إذا سيكون لديك فقط 5-6 الخارقة (والذي هو بالفعل الكثير) ثم فإنه لا معنى وضع هذه في ملف خارجي وبالتالي يفصلها عن سياقها.
  • ملف اضافية من شأنه أن يؤدي إلى عقوبات الأداء (ياهو أفضل الممارسات ، القاعدة 1).

وتجدر الإشارة إلى أن هذه ليست صالحة CSS.

لا يوجد شيء مثل نظيفة جيدة/مقبولة [css] هاك - دائما رمز المعايير ، ومن ثم استخدام المتصفح+نسخة محددة صفحات أي الخارقة المطلوبة لجعل الأشياء تعمل.

على سبيل المثال:
default.css
default.ie6-fix.css
default.ie7-fix.css
default.ff2-fix.css
الخ

ثم عندما نسخة جديدة من المتصفح يتم إطلاق نسخ الإصدار السابق الخارقة وإزالة الأجزاء التي لم تعد تنطبق (، إضافة بت جديدة إذا لزم الأمر).

(الحمل الفردية الأنماط باستخدام المشروط تعليق ل أي ، و وكيل المستخدم استنشاق المتصفحات الأخرى.)

تؤكد-هاك IE6-الاشياء يعمل بشكل جيد جدا, على سبيل المثال.

min-height:50px;
_height:50px;

أنها لا تتطلب تحريك الأشياء خارج السياق إلى css-ملفات فقط IE6 يحصل لهم وهم سهلة لتصفية إذا كان عليك أن تقرر التوقف عن دعم IE6.هم أيضا ضئيلة جدا و لا فوضى CSS الخاص بك كثيرا.

تعديل CSS الخاص بك على المتصفح-دعم محددة لا يخطئ أبدا طالما يمكنك بسهولة تحتوي على ذلك.كما ستلاحظ المعايير المتوافقة مع المتصفحات * السعال * كل شيء إلا MSIE, سوف تكسر أبدا مع الإصدارات المستقبلية.الجديدة معايير W3C أيضا لا تكسر المعايير السابقة, وعادة ما استنكر أو تمديد المعايير السابقة على الأكثر.

الناس قد ذكرت المشروط التعليقات التي هي كبيرة في التعامل مع أي.ولكن سوف تحتاج أكثر قليلا من أجل التعامل مع جميع المتصفحات (المحمول, gecko, webkit, opera, وغيرها).وعادة ما عليك تحليل واردة طلب رؤوس لجلب نوع المتصفح وإصداره من وكيل المستخدم المعلمة.على أساس أنه يمكنك البدء في تحميل ملفات CSS.

انا اجد الطريقة الأكثر من ذلك هو:

  • أولا النامية لأحد المعايير المتوافقة مع متصفح (دعونا نلقي FF على سبيل المثال)
  • مرة واحدة CSS كاملة مقاربة providig دعم أي (هذا يمكن القيام به بسهولة مع التعليقات المشروطة ، perviously ذكر)
    • أولا إنشاء ملف CSS التي من شأنها تهذيب كل شيء من أجل IE6 و أي نسخة أخرى أدناه
    • ثم إنشاء ملف CSS التي سوف تتعامل مع كل شيء على IE7
    • وأخيرا إنشاء ملف CSS أنه سيتم التعامل مع كل شيء من أجل أي إصدارات IE8 و أكبر
      • مرة واحدة IE9 يخرج تأكد من تعيين IE8+ المناولة إلى IE8 محددة ، وخلق IE9+ ملف CSS مع الإصلاحات المطلوبة
  • وأخيرا إنشاء ملف CSS إضافي بكت إصلاحات
    • إذا لزم الأمر يمكنك أيضا إنشاء ملفات إضافية خصيصا لاستهداف كروم أو سفاري إذا لزم الأمر

بخصوص المتصفح محددة CSS تطبيقات, أنا عادة المجموعة كل هؤلاء في بلدي الرئيسي css الملف (يمكنك القيام بذلك بسهولة البحث عن تلك واستبدالها في وثيقة واحدة إذا لزم الأمر).حتى إذا كان هناك شيء يجب أن تكون شفافة ، أود تعيين كل من التعتيم و الفلاتر (MSIE) في نفس الكتلة.المتصفحات فقط تجاهل تطبيقات أنها لا تدعم لذا الخاص بك آمنة.تطبيقات محددة كنت تميل إلى تجنب مخصصة تطبيقات (أحب -moz المربع أعلاه W3C واحد, ولكن أنا فقط لا تريد أن تعتمد على ذلك).

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

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

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

Centricle جيد قائمة CSS الخارقة و التوافق.

أنا لا أعتقد أنك سوف تجد قائمة من الخارقة التي سوف تكون في المستقبل ، كما تعرف أحد يمكن أن أقول ما الشيء الغبي الذي سيتم تنفيذه في أي القادم.

هذا المقال هو ملخص جيد CSS الخارقة: http://www.webdevout.net/css-hacks

هنا قائمة جيدة من الفلاتر التي هي مستقرة جدا:

/* Opera */
.dude:read-only { color: green; } 

/* IE6/IE7 */
@media, 
  { 
  .dude { color: silver;} 
  }

/* IE8  \0 */
@media all\0 
  { 
  .dude { color: brown; } 
  }

/* IE9 monochrome and \9 */
@media all and (monochrome: 0) 
  { 
  .dude { color: pink\9; } 
  }

/* Webkit */
* > /**/ .dude, x:-webkit-any-link { color:red; }
    /* 
    * > /**/ 
    /* hides from IE7; remove if unneeded */


/* Firefox */
@-moz-document url-prefix() 
  { 
  .dude { color: green; }
  }

عند تحديد القواعد, أجد أنه من الجيد أن التحلل الطبيعي ، على سبيل المثال ، في CSS3 هناك دعم RGBA نماذج اللون ، ولكن ليس هناك في CSS2, لذا أجد نفسي به:

 background-color: #FF0000; 
 background-color: rgba( 255,0,0, 50% );

حتى عندما في وقت لاحق القاعدة فشل في المتصفحات القديمة التي لا تدعم ذلك ، فإنه سوف تتحلل سابقا تعريف النمط.

أنا أفضل العالمية المشروط التعليق تقنية وصفها هيروكي Chalfant;

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top