لا توجد العديد من المقالات التي تتناول حالات عدم التوافق ، أو اختلافات CSS في Firefox وحده - ولسبب وجيه.
لقد عمل فايرفوكس دائمًا بعمل ممتاز في دعم كل من CSS وجافا سكريبت بطريقة متوافقة مع المعايير دون الكثير من الأخطاء البالية.
ومع ذلك ، هناك بعض الخصائص والمتخصصات في CSS التي لا يتم دعمها بواسطة واحد أو أكثر من الإصدارات التي تم إصدارها منذ الإصدار 3.0 ، والتي سأغطيها هنا.
ستغطي هذه المقالة الخلل ، عدم الاتساق ، وعدم الدعم . لذلك ، إذا كنت تواجه مشكلة في خاصية CSS أو محدد في Firefox ولم يتم سردها هنا ، فربما يتعين عليك إعادة التفكير في التصميم وإعادة النظر في ما قد يكون عليه السبب.
منذ فايرفوكس 2 هو تقريبا غير موجودة ، لن أفكر في هذا الإصدار على وجه التحديد ، ولكن سيتم تطبيق هذه المعلومات بشكل عام على هذا الإصدار بشكل افتراضي.
وأود أن أشير إلى أن مادة لهذا المنصب أخذت في المقام الأول من حديثا المحدثة، SitePoint مرجع CSS ، والتي هي أفضل مرجع CSS وأكثرها شمولاً في أي مكان.
في الإصدار 3.x من Firefox ، عندما يتجاوز عنصر حدود أحد الأبوين الأم outline
تعيين الخاصية ، سيتم توسيع المخطط لتلائم عنصر يحتوي على ، كما هو موضح في التقاط الشاشة أدناه:
يظهر التنفيذ الصحيح في التقاط الشاشة التالي الذي تم التقاطه من Chrome:
كما هو موضح أعلاه ، يجب أن يشمل المخطط العنصر الذي يتم تحديده ، ويجب ألا يتأثر بأي عناصر متدفقة. لضمان عدم وجود ارتباك ، لاحظ أن هذا خطأ في تنفيذ outline
الملكية ، وليس border
خاصية.
مرجع: SitePoint CSS Reference: مخطط تفصيلي الخاصية
في Firefox ، عندما يكون للجدول حدوده collapse
باستخدام border-collapse
الخاصية ، أعلى هوامش الجدول واليسار الأيسر بالنسبة إلى العناصر المجاورة 1 بكسل. يظهر هذا في لقطة شاشة مكبرة في الصورة أدناه ، والتي تعرض الحد السفلي لعنصر مستوى الكتلة (أحمر) لمس الحد العلوي لجدول مطوي (أزرق):
في ما يلي التنفيذ الصحيح لزوج الخاصية / القيمة هذا ، كما هو موضح في Chrome:
كما هو موضح أعلاه ، نظرًا لأن الحدود "مطوية" ، ولأن الجدول ليس عنصر كتلة ، يجب أن يكون هناك تخالف طفيف في الهامش الأيسر ، ويجب أن يكون الهامش العلوي حتى مع الحد السفلي للعنصر فوقه.
مرجع: SitePoint CSS Reference: border-collapse Property
هذه قيمة خاصية لا يتم تنفيذها بشكل صحيح من قبل أي متصفح ، بما في ذلك Firefox. عندما لا يحتوي صف الجدول على محتوى مرئي وكل الخلايا الخاصة به empty-cells
تم تعيين الخاصية على hide
، يجب أن يتصرف الصف بأكمله كما لو تم تعيينه على "display: none" ، بدون حدود أو خلفيات مرئية.
لا يعالج المتصفح هذا بشكل صحيح ، لذلك لا يزال صف الجدول مرئيًا ، كما هو موضح في الصورة أدناه.
مرجع: SitePoint CSS Reference: خصائص الخلايا الفارغة
في Firefox 3.x ، قيمة سالبة على word-spacing
سيتم التعامل مع الخاصية صفر على العناصر المضمنة المجاورة. يجب أن تتسبب القيمة السالبة في تداخل العناصر المضمنة مع بعضها البعض ، كما هو الحال مع النص ، ولكن هذا لا يحدث. بدلاً من ذلك ، يتم إعطاء العناصر صفر فصل المسافة البيضاء بدون تراكب.
تعرض الصورة أدناه كل من التطبيقات الصحيحة وغير الصحيحة:
في الأمثلة الموضحة أعلاه ، يتم تغليف الكلمات الثلاث "Fruits" و "Vegetables" و "Other Foods" بشكل فردي في العناصر ، في حين أن الفقرة التي يلتف عليها لديها
word-spacing
تم تعيين الخاصية إلى قيمة سالبة.
المثال الثاني (Firefox) يفشل في تطبيق المسافات بين الكلمات السالبة ، باستثناء ما بين الكلمتين الأخيرتين لأن هذه الكلمات لا يتم تغليفها بشكل فردي بواسطة امتدادات ولكنها عناصر نصية طبيعية.
كنقطة جانبية ، يحدث هذا الخطأ بشكل مشابه في IE8 ، ولكن ليس في الإصدارات السابقة من IE.
مرجع: SitePoint CSS Reference: خاصية تباعد الكلمات
عندما يحتوي عنصر ما على قيمة مجموعة زخرفة نصية ، لا يجب أن تكون هذه القيمة موروثة بواسطة أحفاد عائمة. في فايرفوكس 3.x ، يتم إعطاء أحفاد العائمة نفس قيم زخرفة النص مثل الأصل ، على الرغم من أن هذا لا ينبغي أن يكون عليه الحال.
في الصورة أعلاه ، السطر الأول عبارة عن لقطة شاشة من IE8 ، يعرض عنصر طرحت داخل مرساة. النص داخل
ليس لديه زخرفة نص واضحة ، وهي الطريقة الصحيحة لعرضه. في Firefox (كما هو موضح في المثال الثاني) ، يتم تطبيق زخرفة النص بشكل غير صحيح على الطفو
.
قد تكون لاحظت هذا الخطأ في Firefox عند محاولة إزالة زخرفة النص من الصور العائمة داخل المراسي.
مرجع: SitePoint CSS Reference: خاصية زخرفة النص
باستخدام white-space
الخاصية في فايرفوكس 3.5 ، يمكنك تحديد ما إذا كان يجب تصغير أحرف المسافات المتعددة إلى مسافة واحدة أم لا. بشكل افتراضي ، ستنهار مستندات HTML بمسافات متعددة لأسفل إلى مسافة واحدة. في بعض الحالات ، يمكنك التقدم بطلب white-space: pre
لمنع المساحة البيضاء من الانهيار ، وهو ما يشبه استخدام علامة HTML. في وقت لاحق ، قد ترغب في إزالة هذا الإعداد باستخدام
white-space: pre-line
(لطي الفضاء الأبيض).
لا يدعم Firefox 3.0 هذه القيمة ، لذا سيتم الاحتفاظ بالمساحة البيضاء. فايرفوكس 3.5 ينهار الفضاء بشكل صحيح. توضح الصورة أدناه كلا المثالين:
وبالمثل ، عند تعيين فقرة نص white-space: pre-wrap
يجب أن يحافظ هذا على المسافات البيضاء بين الكلمات ، ولكن يجب أن يتضمن فواصل الأسطر بشكل طبيعي. فشل فايرفوكس 3.0 في تنفيذ ذلك بشكل صحيح ، بينما تتضمن الإصدارات الأحدث (وجميع المتصفحات الأخرى) فواصل الأسطر الطبيعية. يتم عرض كلا المثالين أدناه.
ضع في اعتبارك أنه يتم إعطاء العنصر الخارجي white-space: pre
بينما الداخلية يحاول تجاوز عدم استخدام فواصل الأسطر
pre-wrap
. من تلقاء نفسها، pre-wrap
لن يكون لها أي تأثير.
فايرفوكس 3.x يعامل أيضا بعض من white-space
القيم بشكل مختلف عن المتصفحات الأخرى عند تطبيق تلك القيم على جزء. على سبيل المثال ، تطبيق
white-space: nowrap
يجب أن يسبب كل النص المكتوب في لتشكيل خط واحد ، ولكن لا يقوم Firefox 3.x بذلك.
مرجع: SitePoint CSS Reference: الخاصية white-space
يتيح CSS للمطورين تحديد مكان أو عدم حدوث فواصل الصفحات باستخدام الخصائص الثلاثة page-break-before
، page-break-inside
و page-break-after
. Opera هو المتصفح الوحيد الذي يدعم هذه الخصائص تمامًا ، بينما توفر المتصفحات الأخرى دعمًا جزئيًا أو بدون دعم.
ال page-break-inside
تحدد الخاصية ما إذا كان يمكن أن يحدث فاصل صفحات داخل عنصر واحد على مستوى الكتلة. لا يوفر Firefox الدعم لهذه الخاصية. باستخدام بناء الجملة page-break-inside: avoid
، يمكنك منع عنصر من أن يتم تقسيمه أثناء الطباعة. توضح الصورة أدناه ، من معاينة الطباعة في أوبرا 10 ، كيف يمكن لهذه الخاصية منع تقسيم قائمة غير مرتبة على صفحتين:
على النقيض من ذلك ، انظر إلى الصورة أدناه ، مأخوذة من خيار معاينة الطباعة في فايرفوكس 3.5:
مرجع: SitePoint CSS Reference: خصائص وسائط Paged
ال orphans
و widows
يتم دعم خصائص CSS فقط بواسطة Internet Explorer 8 و Opera منذ الإصدار 9. يتم استخدام هذه الخاصية لتحديد الحد الأدنى لعدد الأسطر من فقرة واحدة يمكن أن تظهر على صفحة مطبوعة ، إما في الجزء السفلي (الأيتام) أو الأعلى (الأرامل) ). بناءً على العدد المختار ، سيتم نقل الخطوط من صفحة إلى أخرى (أو السابقة) لمنع طباعة سطر واحد في أعلى أو أسفل الصفحة.
حتى مع orphans
الخاصية التي تم تعيينها إلى قيمة "3" ، كما هو موضح في الصورة أدناه ، تعرض معاينة الطباعة في فايرفوكس سطرًا واحدًا في الجزء السفلي من إحدى الصفحات القابلة للطباعة:
مشابهه ل page-break-inside
الخاصية ، فشل فايرفوكس أيضا لدعم القيم avoid
، left
و right
لكل من page-break-before
و page-break-after
الخصائص.
المراجع: SitePoint CSS Reference: خاصية orphans | SitePoint CSS Reference: Property widows
ال يقوم Internet Explorer 8 و Chrome و Safari بتنفيذ هذه الميزة بشكل صحيح ، مما يمنع تداخل عناصر الكتلة من كسر التصميم ، كما هو موضح في الصورة أدناه: في الفقرة أعلاه ، يكون النص داخل a مرجع: SitePoint CSS Reference: Pseudo-Element first-line أضاف Firefox بشكل تدريجي دعمًا أفضل لـ CSS3 منذ إصدار الإصدار 3.0. فيما يلي وصف لكيفية معالجة فايرفوكس لميزات مختلفة من CSS3. بعض هذه قد لا تزال في مشروع العمل أو توصية مرشح المرحلة ، لذلك لا يمكننا أن نكون العقائديين حول ما ينبغي وينبغي أن لا تكون مدعومة حتى وصلت توصية المسرح. تمت مناقشة بعض الأخطاء الأكثر أهمية وعدم التوافق أعلاه ، ولكن هناك عدد قليل آخر جدير بالملاحظة. بعد الاطلاع على هذه المادة ، يمكنك أن ترى بوضوح أن نقص دعم ميزات CSS في فايرفوكس هو الحد الأدنى ، وفي كثير من الحالات غير ذي صلة تمامًا نظرًا لأن العديد من الخصائص التي نوقشت هنا ليست شائعة الاستخدام. ومع ذلك ، آمل أن يوفر هذا مرجعًا جيدًا لأهم الأخطاء والتناقضات في فايرفوكس. إذا كنت تواجه مشاكل مع ميزة معينة لـ CSS في Firefox غير مدرجة هنا ، فمن المحتمل أنك تقوم بشيء خاطئ أو قد لا تفهم بشكل كامل مفاهيم ومبادئ CSS معينة. لذا ، في هذا الصدد ، يجب أن تعمل هذه الإشارة بشكل جيد كمرجع معكوس ، حيث يمكن الوثوق بالأشخاص غير المدرجين هنا للعمل بشكل جيد إذا تم تنفيذها بشكل صحيح مع التركيب الصحيح. بالطبع ، إذا كان هناك أي شيء فاتني ، أو أي أخطاء ، يرجى التعليق وسأبذل قصارى جهدي لإجراء أي تصحيحات وإضافات ضرورية. فايرفوكس الصورة المقدمة من قبل Rakaz تمت كتابة هذه المقالة حصريًا لـ Webdesigner Depot بواسطة Louis Lazaris ، كاتب مستقل ومطور على الويب. يدير لويس شبكة رائعة حيث ينشر مقالات ودروسًا حول تصميم الويب. يمكنك اتباع لويس على تويتر أو الاتصال به من خلال موقعه على الانترنت . :first-line
يسمح عنصر pseudo-first السطر من أي كتلة نص معينة أن يكون تنسيق مختلف عن باقي النص. على سبيل المثال ، يمكن تغيير السطر الأول من فقرة من النص إلى أحرف كبيرة أو إلى لون مختلف. لكي يعمل عنصر CSS هذا بطريقة عملية ، يجب أن يسمح بإمكانية وجود عناصر متداخلة على مستوى الكتلة. على سبيل المثال ، عنصر يجب أن تسمح
:first-line
عنصر زائف لتغيير تصميم السطر الأول من النص داخل العنصر ، الذي يوجد داخل
لديه
:first-line
تم تعيين عنصر pseudo-to color: blue
الذي فشل في فايرفوكس بسبب تداخل الفقرة داخل دعم CSS3 في Firefox 3.x
text-shadow
خاصية box-shadow
الخاصية ، إلا عند استخدام بادئة الملكية -moz-
box-sizing
الخاصية ، إلا عند استخدام بادئة الملكية -moz-
-moz-
يستخدم border-image
خاصية ، ولكن 3.5 يدعم ذلك باستخدام -moz-
بادئة الملكية ميزات CSS الأخرى غير مدعومة
run-in
ل display
خاصية ::selection
شبه عنصر استنتاج
مزيد من المراجع