به آموزشگاه مجازی سینا خوش آمدید!

آموزش ویژگی box-sizing در CSS

امتیاز
(0)

ویژگی box-sizing، روش محاسبه ی عرض(width) و ارتفاع(height) یک عنصر را مشخص می کند: اینکه آیا باید در محاسبه، padding و border را نیز در نظر بگیریم یا خیر. به طور پیش فرض، محاسبه ی عرض(width) و ارتفاع(height) یک عنصر به صورت زیر است: 

    width + padding + border =عرض حقیقی یک عنصر
    height + padding + border =ارتفاع حقیقی یک عنصر

این یعنی، وقتی که عرض یا ارتفاع یک عنصر را تنظیم می کنیم، این عنصر اغلب بزرگتر از اندازه ای که برای آن تنظیم کرده ایم، نشان داده می شود(زیرا کادر یا border عنصر و padding به عرض و ارتفاع مشخص شده برای این عنصر اضافه شده اند). در زیر، دو عنصر <div> را مشاهده می کنیم که عرض(width) و ارتفاع(height) یکسانی دارند. اما هر دو <div> سایز های متفاوتی دارند(زیرا برای div2 مقدار padding بزرگتری مشخص شده است). 

این عنصر div عرضی برابر با 300px و ارتفاعی برابر با 100px دارد.

این عنصر div نیز عرضی برابر با 300px و ارتفاعی برابر با 100px دارد.

مثال شماره 1

.div1 {
  width: 300px;
  height: 100px;
  border: 1px solid blue;
}

.div2 {
  width: 300px;
  height: 100px;
  padding: 50px;
  border: 1px solid red;
}
امتحان کنید

با استفاده از ویژگی box-sizing می توانیم این مشکل را حل کنیم. 


راه حل box-sizing در CSS

ویژگی box-sizing به ما امکان می دهد تا مقادیر padding و border را در عرض و ارتفاع کلیِ یک عنصر اضافه کنیم(به حساب آوریم). اگر ویژگی و مقدار box-sizing: border-box; را برای یک عنصر مورد استفاده قرار دهیم، از padding و border در محاسبه ی عرض(width) و ارتفاع(height) آن عنصر استفاده می شود:


اکنون این عناصر div سایز یکسانی دارند!

هوررررا!

در زیر، مثال مشابهی را مشاهده می کنید که در آن از ویژگی و مقدار box-sizing: border-box; برای عناصر <div> استفاده شده است:

مثال شماره 2

.div1 {
  width: 300px;
  height: 100px;
  border: 1px solid blue;
  box-sizing: border-box;
}

.div2 {
  width: 300px;
  height: 100px;
  padding: 50px;
  border: 1px solid red;
  box-sizing: border-box;
}
امتحان کنید

چونکه نتیجه ی استفاده از دستور box-sizing: border-box; بسیار بهتر است، بسیاری از برنامه نویسان، علاقه دارند از این روش برای تمام عناصر استفاده کنند. در مثال زیر، برای تمام عناصر از این روش استفاده کرده ایم. بسیاری از مرورگرها، از قبل، از دستور box-sizing: border-box; برای بسیاری از عناصر استفاده کرده اند(اما نه همه ی آنها-علت اینکه input ها و textarea ها در width: 100%; متفاوت به نظر می رسند همین است). 

اعمال این دستور به تمام عناصر، مطمئن و خردمندانه است:

مثال شماره 3

* {
  box-sizing: border-box;
}
امتحان کنید

منبع: https://www.w3schools.com/css

 

  • بازدید: 82

نوشتن دیدگاه

لطفا نظرات خود را بیان کنید. به سوالات در سریع ترین زمان پاسخ داده خواهد شد.اما به نکات زیر توجه کنید:
1. سعی کنید نظرات شما مرتبط با مقاله ی مورد نظر باشد، در غیر این صورت پاسخ داده نخواهد شد.
2. سوالات خود را به صورت کوتاه بیان کنید و از پرسیدن چند سوال به طور همزمان خودداری کنید.
3. سوال خود را به طور واضح بیان کنید و از کلمات مبهم استفاده نکنید.

ارسال