مشکل با important در CSS

حل شده 

CSS

توسط doctor در 10 ماه پیش
2 33.8k 2 10 ماه پیش
doctor vahid-sm reza-irdev
2

سلام

من یه کتابخونه دارم ازش استفاده میکنم که تو کد هاش که مربوط به استایل میشه important داره و من میخوام اینو تغییر بدم ولی چون imporant داره واسه منو نشون نمیده! چیکار کنم؟

پاسخ ها

1

سلام

اگر شما تو کدهای CSS خودتون یک property مثلا background-color رو red تعریف کرده باشید از نوع !important و برنامه نویس کتابخونه همین پراپرتی رو blue تعریف کرده باشه از نوع !important اینجا باز هم دومورد هست که باید چک کنید.

۱- CSS Specificity

هر چی selector شما دقیق تر باشه اولویتش بیشتره مثال:

*               /* a=0 b=0 c=0 -> specificity =   0 */
LI              /* a=0 b=0 c=1 -> specificity =   1 */
UL LI           /* a=0 b=0 c=2 -> specificity =   2 */
UL OL+LI        /* a=0 b=0 c=3 -> specificity =   3 */
H1 + *[REL=up]  /* a=0 b=1 c=1 -> specificity =  11 */
UL OL LI.red    /* a=0 b=1 c=3 -> specificity =  13 */
LI.red.level    /* a=0 b=2 c=1 -> specificity =  21 */
#x34y           /* a=1 b=0 c=0 -> specificity = 100 */
#s12:not(FOO)   /* a=1 b=0 c=1 -> specificity = 101 */

در صورتی که اولویت ها هم یکی باشند اونوقت ترتیب چک میشه.

۲- ترتیب Rule

هر Rule ای که آخر تعریف شده باشه اولیوت پیدا میکنه یعنی اگر تمام شرایط یکسان باشند در آخر اینمورد بررسی میشه.


پس تو مورد شما اگر نمیتونید ترتیب رو تغییر بدید(اگر کد کتابخونه بعد از کدهای شما اجرا میشن) میتونید Specificity کد رو بیشتر کنید. مثلا اگر .container هست شما میتونید بنویسید div.container.


اطلاعات بیشتر:

https://www.w3.org/TR/selectors-3/#specificity

https://specifishity.com/

https://specificity.keegan.st/

آخرین ویرایش: 18-01-2019 ساعت 19:58، توسط Reza
0

سلام تو css اونی که آخر تعریف میشه ارجعیت داره. یعنی حتما اون کدی که اون نوشته بعد از کد شما میاد بخاطر همین برای اون اعمال میشه. ئسباید کد شما بعد از کد اون باشه تا override بشه

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.

لطفا ابتدا لاگین کنید