سؤال

التصميم عنصر مع مجموعة سمة سهل: 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"])
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top