التصميم مع CSS2 عندما لم يتم تعيين ATT
-
20-09-2019 - |
سؤال
التصميم عنصر مع مجموعة سمة سهل: E[attr]
.
هل هناك أي طريقة لتصميم عنصر مع CSS2 بناء على عدم وجود سمة، شيء مثل هذا E[!attr]
ب (حل JavaScript ليس خيارا).
على سبيل المثال، هناك عدة قواعد فئة تليها قاعدة المعرف:
.abc {padding:1em;}
.def {padding:2em;}
#n a {padding:0;}
رمز HTML هو:
<div id="n"><a href="" class="abc">.</a><a href="" class="def">.</a></div>
الطبقات abc
و def
لديك أولوية أقل ضد قاعدة معرف إد a
لديك الحشو 0. لا يمكنني تغيير تسلسل القواعد أعلاه، لكن يمكنني تغيير قاعدة معرف إد إضافة قواعدي الخاصة. أريد تجنب كتابة قواعد مثل #n a.abc
لكل فصل (هناك الكثير). بدلا من ذلك أنا بحاجة إلى شيء مثل #n a[!class]
للحفاظ على جميع الدرجة a
سليمة سليمة.
المحلول
للأسف، وليس في CSS2. أفضل ما يمكنك فعله هو تجلوس تصريحاتك:
E {color: red}
E[attr] {color: blue}
ولكن حتى هذا لا يمكن الاعتماد عليه حقا، لأن IE6 لا يكرم مختومات السمة.
في CSS3، رغم أن هناك محدد ": غير"http://www.w3.org/tr/css3-selectors/#negation.).
تعديل
شكرا للتوضيح. ماذا عن:
.abc {padding:1em; !important} .def{padding:2em; !important}
#n a{padding: 1em}
نصائح أخرى
لا أعتقد أن هذا يمكن القيام به في CSS2. في CSS3، كنت تستخدم "لا" بناء الجملة:
input:not([type="file"])