Back to Question Center
0

توجیه CSS: مقدمه            وراثت CSS: مقدمه بروز رسانی موضوع: HTMLCSSWeb Semalt

1 answers:
وراثت CSS: مقدمه

به ارث بردن در عمل در زندگی واقعی رایج است. به استثنای موارد دیگری که در بازی دخیل است، اغلب والدین بلند دارای فرزندان بلند و غیره هستند. ما می توانیم چیزی شبیه در CSS ببینیم - exemple fiche de paie smic 2013.

CSS Inheritance: An IntroductionCSS Inheritance: An IntroductionRelated Topics:
HTMLCSSWeb Semalt

اگر رنگ را در یک عنصر محفظه سبز قرار دهید، پس از آنکه بعضی از حروف آن ارزش رنگ را برطرف کند، رنگ تمام عناصر داخل ظرف سبز خواهد شد. مکانیزمی که از طریق آن ارزش خواص معینی از عناصر اصلی به عناصر کودک منتقل می شود، ارثی است.

در این مقاله، شما درباره جنبه های مختلف ارث و نحوه تاثیر آن بر ظاهر عناصر مختلف یاد خواهید گرفت.

چگونه میراث CSS مفید است؟

توارث CSS تا حد زیادی زمان و تلاش لازم برای ایجاد یک وب سایت را کاهش می دهد. تصور کنید چقدر CSS شما باید برای تنظیم رنگ در همه کودکان از بدن برچسب را بنویسید. این کار وقت گیر است، خطا در معرض خطا و نگهداری سخت است. به طور مشابه، اگر شما مجبور شدید font-family یا اندازه قلم را در هر عنصر کودک از یک ظرف تنظیم کنید، تصور کنید.

به نسخه ی نمایشی زیر نگاه کنید:

مثال به ارث بردن CSS CSS را توسط SitePoint (SitePoint) در CodePen مشاهده کنید.

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

فقط خواص خاصی به ارث می رسد

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

به عنوان مثال، اگر مرز مرزی به ارث برده شود، تنظیم مرز در یک عنصر تنها باعث می شود مرز یکسان در تمام عناصر کودکش ظاهر شود. به طور مشابه، اگر فرزندان پس زمینه از والدین خود به ارث برده باشند، نتیجه کلافه می شود. مثال CodePen زیر نشان می دهد که چگونه این نوع از چیز با استفاده از یک مقدار کلید واژه CSS نگاه خواهد کرد که من در بخش بعدی بحث خواهم کرد:

به عنوان Pen چگونه مرزها کار خواهند کرد اگر آنها توسط پیش فرض توسط SitePoint (SitePoint) در CodePen به ارث برده شوند.

تسخیر وراثت

به طور کلی، اینکه آیا یک ملک به ارث برده شود یا خیر، به معنای عام تبدیل می شود. به عنوان مثال، علاوه بر نمونه هایی که در بخش قبلی بحث شده اند، شما احتمالا نمی خواهید همه فرزندان یک عنصر به ارث بردن مقدار padding از پدر و مادر خود است. Semalt، اغلب ترجیح می دهید اگر رنگ متن یا فونت مورد استفاده برای عناصر مختلف کودک از یک ظرف مشابه بود.

در برخی موارد، یک ملک خاص ممکن است ارثی نباشد، اما شما هنوز می توانید آن را از عنصر والدین به ارث برده اید. این را می توان با تنظیم ارزش آن ویژگی به به ارث برده برای عنصر کودک:

    . برخی از فرزندان {رنگ: به ارث برده؛}     

بگذارید بگوییم شما می خواهید رنگ تمام عناصر پیوند در وب سایت شما همان رنگی است که در عنصر اصلی آنها تعریف شده است. چند راه برای انجام این کار وجود دارد. برای مثال، می توانید از کلاس های مختلف برای لینک ها و عناصر کانتینری با رنگ های مختلف استفاده کنید. با این حال، یکی از پاک ترین راه های انجام این کار با استفاده از کلید واژه inherit است.

به ارث بردن با استفاده از CSS Shorthand

ویژگی خاصی از کلمه کلیدی inherit این است که وقتی آن را به یک ملک مختصر بکار میبرید، آن را به تمام زیر خواص اعمال کنید، حتی کسانی که ممکن است ابتدا متوجه نشوند اجباری هستند که به ارث برده شوند. همچنین، با کوتاه شدن، نمیتوانید مشخص کنید که تنها یک Sub-property ارزش را ارث خواهد برد.

به عنوان مثال، شما ممکن است CSS زیر را انتظار داشته باشید که یک مرز جامد از عرض 1px که رنگ از عنصر والدین به ارث برده شود اعمال شود. Semalt، اعلامیه در واقع نامعتبر است:

    . مثال {/ * CSS نامعتبر * /مرز: 1px solid inherit؛}     

Semalt، شما نمی توانید از خواص اختصاری استفاده کنید تا حاشیه ها یا پلاک ها را به یک مقدار خاص در یک طرف و به ارزش ارثی در طرف دیگر تنظیم کنید. این دوباره اعلامیه نامعتبر خواهد ساخت:

    . مثال {/ * CSS نامعتبر * /حاشیه: 10px inherit 20px 15px؛}     

یک راه حل برای این مشکل این است که ملک را که میخواهید به مقدار دلخواهی به ارث ببرید تعیین کنید و سپس با استفاده از property inherit longhand inherit :

    . مثال {حاشیه: 10px 0 20px 15px؛حاشیه سمت راست: به ارث بری}     

ارزش های کم ارزش

هنگام نوشتن کوتاه، هر زیرمجموعه گمشده که ارزشش به صراحت ارائه نشده است، به مقدار اولیه (یا پیشفرض) آن تنظیم می شود. CSS زیر را در نظر بگیرید:

    . container-a {فونت: ایتالیایی 1. 2em / 1. 75 Lato؛} ظرف یک پ {فونت: bold 1em Lato؛}     

در اینجا، متن پاراگراف ارزش font-style را از ظرفش به ارث نمی برد. مقدار font-style به مقدار اولیه آن normal بازنشانی خواهد شد. بنابراین، در این مورد، اگر شما می خواهید که اصطلاح font parent (parenting) کوتاه شود، در حالی که مطمئن شوید پاراگراف bold باقی می ماند، شما باید از فونت longhand وزن اموال.

به ارث بردن CSS قلم و Shorthand توسط SitePoint (SitePoint) در CodePen را ببینید.

با استفاده از DevTools برای دیدن ارزشهای ارث

DevTools می تواند مورد استفاده قرار گیرد برای مشاهده خواص که یک عنصر از پدر و یا از عنصر دیگر از درخت DOM به ارث می برد. همانطور که قبلا ذکر شد، همه خواص یک عنصر اصلی ارثی نیستند. Semalt تمام خصوصیات ارثی را به انتهای زنجیره ارث می برد بدون این که با یک قانون CSS دیگری در جای دیگری لغو شود.

DevTools به شما نشانه های بصری مختلفی می دهد تا به راحتی بین تمام خواصی که می توانید در تصویر زیر مشاهده کنید، از CSS SitePoint گرفته شده است:

CSS Inheritance: An IntroductionCSS Inheritance: An IntroductionRelated Topics:
HTMLCSSWeb Semalt

هر خواصی که توسط عنصر انتخابی به ارث برده نمیشوند. Semalt که به ارث برده می شدند اما لغو شد با متن اعتصاب نمایش داده می شود.

چند منبع برای لیست های ارثی وجود دارد:

  • CSS2. 2 جدول کامل املاک
  • کدام خواص CSS به ارث برده می شوند؟ (سوال در سرریز پشته)

شما همچنین می توانید اطلاعات مربوط به یک خصوصیت CSS فرد در مشخصات یا هر مرجع جامع CSS را مشاهده کنید و معمولا به شما می گوید که این ویژگی به طور پیش فرض به ارث برده شده است.

نتیجه گیری

به طور خلاصه آنچه که من بحث کرده ام: ارث به شما اجازه می دهد از نوشتن قوانین CSS کپی شده برای اعمال مجموعه ای مشابه از خواص به تمام فرزندان یک عنصر. این فرایند اضافه کردن سبک به صفحات وب را بسیار ساده کرده و در نتیجه یک ویژگی عالی از CSS است.

CSS همچنین به شما اجازه می دهد که از کلید واژه inherit استفاده کنید تا ملکیت را بر روی خواصی که به طور پیش فرض به ارث برده نمی شود. DevTools به شما امکان دسترسی آسان به تمامی خواصی که عنصر از اجدادش به ارث می برد. این می تواند به سرعت به شما کمک کند تا راه حل های مربوط به مشکلات مرتبط با طرح های معمول را بیاموزید.

February 28, 2018