ویژگی انتخابگر CSS چیست و چگونه کار می کند؟
مرورگر بر اساس ویژگی قوانین CSS تعیین می کند که چه استایل هایی را روی یک عنصر نمایش دهد. ما فرض می کنیم که مرورگر قبلاً قوانینی را که با یک عنصر خاص مطابقت دارند، تعیین کرده است. در میان قوانین منطبق، ویژگی، چهار مقدار جدا شده با کاما، a, b, c, d برای هر قانون بر اساس موارد زیر محاسبه می شوند:
- a این است که آیا استایل های درون خطی استفاده می شوند یا خیر. اگر اعلان ویژگی یک استایل درون خطی روی عنصر باشد، a برابر با 1 است، در غیر این صورت 0.
- b تعداد انتخابگرهای ID است.
- c تعداد کلاس ها، ویژگی ها و انتخابگرهای شبه کلاس است.
- d تعداد تگ ها و انتخابگرهای شبه عناصر است.
ویژگی حاصل یک امتیاز نیست، بلکه یک ماتریس از مقادیر است که می تواند ستون به ستون مقایسه شود. هنگام مقایسه انتخابگرها برای تعیین کدام یک بالاترین ویژگی را دارد، از چپ به راست نگاه کنید و بالاترین مقدار را در هر ستون مقایسه کنید. بنابراین یک مقدار در ستون b مقادیر در ستون های c و d را نادیده می گیرد، مهم نیست که چه باشند. به همین ترتیب، ویژگی 0,1,0,0 بیشتر از 0,0,10,10 خواهد بود.
در موارد ویژگی برابر: آخرین قانون، قانونی است که شمارش می شود. اگر شما همان قانون را دو بار در شیوه نامه خود (بدون در نظر گرفتن داخلی یا خارجی) نوشته اید، سپس قانون پایین تر در شیوه نامه شما به عنصری که باید استایل دهی شود، نزدیک تر است، خاص تر تلقی می شود و بنابراین اعمال خواهد شد.
من قوانین CSS را با ویژگی کم می نویسم تا در صورت لزوم به راحتی قابل نادیده گرفتن باشند. هنگام نوشتن کد کتابخانه کامپوننت UI CSS، مهم است که آنها ویژگی های کمی داشته باشند تا کاربران کتابخانه بتوانند آنها را بدون استفاده از قوانین CSS بسیار پیچیده فقط به خاطر افزایش ویژگی یا توسل به !important نادیده بگیرند.