۱ emad ta
خلاصه انواع display
جامعه Html & CSS ایجاد شده در ۰۲ آبان ۱۳۹۹

انواع display‌ها و توضیحات کامل آن‌ها (  سعی شده مهم ترین‌ها و کاربردی ترین‌های آن‌ها گفته شود ) 

 

 

 مفهوم inline Element و block Element

 

 inline Element  : تگ هایی هستند که به اندازه خودشون میان و فضا میگیرند و اگر اندازه اون محتوای داخلشون کم باشه فضای کمتری میگیرند و اگر زیاد باشه زیاد میگیرند مثل تگ‌های a که اگر ازشون استفاده بکنیم به صورت متوالی میان و در یک سطر قرار میگیرند

 

 block  Element : این تگ‌ها علاوه بر محتوای خودشون به اندازه یک سطر هم میان و فضا اشغال میکنند و محتوای تگ بعدی رو به لاین بعدی میفرستن

 

 

 

1 -  display : inline  » 

عناصر inline   می توانند margin  و /  یا padding  داشته باشند اما نمی‌توانند width و  height  داشته باشند. تعیین عرض و ارتفاع برای اینگونه عناصر اندازه آنها را تغییر نخواهد داد. نکته دیگر اینکه زمانی که به این عناصر padding و margin می‌دهید عناصر مجاورشان را در راستای افقی هول می‌دهند اما در راستای عمودی تاثیری بر روی آنها ندارند. در تصویر زیر متن مشخص شده عنصر span است که از همه جهت padding و margin گرفته است 

<body>
  <p>
    Lorem ipsum dolor sit amet consectetur adipisicing elit. Sint, repudiandae
    eveniet. Aliquam nisi nostrum <span>emad</span> iusto aut veritatis, eum obcaecati.
    Obcaecati eligendi temporibus quas officia quis <span>taghipour</span> eaque. Possimus magnam sed
    sint.
  </p>
</body>
  span {
    padding: 10px;
    margin: 10px;
   background-color: red;
  }

 

--------------------------------------------------------------------------------------------------------------------------------

 

2- display : inline-block » این ویژگی هم شبیه به inline است با این تفاوت که مقادیر عرض و ارتفاع اندازه آن را تغییر خواهند داد و همینطور margin و padding آنها بر روی عناصر مجاور آنها در هر دو راستای عمودی و افقی تاثیر خواهد گذاشت.  استایل بالا رو در با پایین جایگزین کنین 

--------------------------------------------------------------------------------------------------------------------------------

 

3- display : block  » 

در مقابل عناصر خطی, عناصری که چارچوب block دارند در حالت پیشفرض در یک خط با عناصر دیگر قرار نمی‌گیرند و کل فضای افقی را می‌گیرند (یعنی در حالت پیشفرض کل فضایی که عنصر نگهدارنده آن داشته باشد را اشغال می‌کند یا به معنای دیگر عرض بیشینه خواهد داشت). عناصر block در مقابل با عناصر inline می توانند هر نوع عنصری (block و inline) را درون خود داشته باشند.

  span{
    display: inline-block;
    padding: 10px;
    width: 100px;
    height: 100px;
    margin: 10px;
    background-color: red;
  }

--------------------------------------------------------------------------------------------------------------------------------

 

4- display : none  »  با استفاده از این ویژگی  میاد و کل اون عنصر رو برای ما حذف اش میکند و جای اون رو بقیه عناصر پر میکنند حال اگر بخاهیم بیایم و جای خالی عنصر باقی مانده باشد از ویژگی visibility : hidden  استفاده میکنیم که یک لاین خالی رو  برای ما درست میکند و اون فضای اشغال شده رو برامون نشان میدهد

 

--------------------------------------------------------------------------------------------------------------------------------

 

5- display : inline-flex  »  رفتار عنصر را تبدیل به inline می‌کند و عناصر داخلی آن را بر اساس مدل flexbox  در کنار هم می‌چیند.

 

--------------------------------------------------------------------------------------------------------------------------------

 

6- display : flex » برای  چینش المان هامون در راستای عرض  یعنی برای عنصر والدی که میایم و ازش استفاده میکنیم  در محدوده‌های عرض قابل تغیر هستش و عناصر فرزند هم میتوانند هم در عرض و هم در طول والدشون تغیر بکنند این ماژول دارای ویژگی‌های زیر هست 

 

container : عنصر نگهدارنده که حاوی المان‌های مختلف  هستش و حکم والد عناصر رو دارد

 

item : به فرزندان عناصر والد میگویند 

 

row / column / row-reverse / column-reverse :  flex-direction  

مشخص کردن جهت فرزندان در داخل عنصر والد 

 

 wrap / no-wrap  : flex-wrap  به طور کلی وقتی فرزندان به انتهای عنصر والدشون می‌رسند شروع میکنند و از مقدار عرض اشون کم میکنند تا در عنصر والد جا شوند اما این پراپرتی میاد و میگوید که فرزندان اگر به انتهای عنصر والد رسیدند به جای کم کردن عرض بیان و شکسته شوند  و به لاین بعدی بروند و در آن جا قرار گیرند 

 

 flex-start / flex-end / center / space-between / space-around / space-evenly : justify-content 

برای جابه جایی فرزندان در راستای عرض عنصر والدشون  

 

 flex-start / flex-end / center / baseline / stretch : align-item  برای جا به جایی  فرزندان در راستای طول عنصر والدشون 

 

 flex-start / flex-end / center / stretch / space-between / space-around  : align-content

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

 

order : مقادیر عددی میگیرد برای جابه جایی عناصر فرزند باهم دیگه کاربرد دارد  

 

flex-grow / flex-shrink / flex-basis  : flex  خلاصه نویسی 

 

flex-grow  : این عامل یک عدد صحیح می‌باشد که نشان می‌دهد یک عنصر داخلی چند برابر عنصرهای دیگر از فضای عنصر نگهدارنده سهم می‌برد. مثلا اگر همه عنصرها مقدار 1 را داشته باشند فضای عنصر نگهدارنده به صورت برابر بین عنصرهای داخلی تقسیم می‌شود اما اگر یکی از آنها مقدار 2 را بگیرد سهم آن دو برابر سهم دیگر عنصرهای داخلی می‌باشد.

 

flex-shrink : این عامل به ندرت مورد استقاده قرار می‌گیرد. کاربرد آن زمانی است که جمع اندازه‌های عنصرهای داخلی بیشتر از عنصر نگهدارنده شود و سرریز داشته باشیم. حال باید عنصرهای داخلی کمی آب شوند (shrink) تا از سرریز جلو گیری شود که این کم کردن اندازه عنصرهای داخلی با توجه به این عامل انجام می‌گیرد مثال زیر دا در نظر بگیرید:

 

flex-basis :  می توان به هر عنصر یک مقدار flex-basis به صورت زیر اختصاص داد  اول از همه این مقدار با توجه به جهت عنصر نگهدارنده به عرض یا ارتقاع به صورت خودکار تعلق میگیرد یعنی اگر جهت عنصر نگهدارنده row باشد این مقدار به عرض عنصرهای داخلی داده می‌شود و اگر column باشد به ارتقاع عنصرهای داخلی تعلق میگیرد

 

align-self :  برای این کار از ویژگی align-self استفاده می‌کنیم که این ویژگی به عنصر داخلی تعلق می‌گیرد و مقادیر آن شبیه مقادیر align-items است.

 

--------------------------------------------------------------------------------------------------------------------------------

 

7- display : inline-grid  » رفتار عنصر را تبدیل به inline می‌کند و عناصر داخلی آن را بر اساس مدل grid در کنار هم می‌چیند.

 

--------------------------------------------------------------------------------------------------------------------------------

 

8- display : grid »  این ماژول کامل‌تر از فلکس هستش و از آن برای تراز المان هامون در ارتفاع یا ستون‌ها بهمون کمک  میکند  و مفاهیم grid-item  & grid-container آن مشابه بالایی هستش 

مفاهیم مهم اش Gap فاصله بین المان‌ها line خط فرضی بین دو المان ها 

پراپرتی‌های مهم آن 

 

grid-template-columns :   برای مشخص کردن تعداد ستون‌ها استفاده میکنیم که میتوانیم در آن بیایم 
و با مقدار auto  تعداد ستون‌های یکسان بدهیم یاهم با مقادیر پیکسلی اندازه ستون‌ها رو مشخص کنیم

 

 grid-template-rows :  مشابه یکی بالایی هست ولی یکی بالایی بیشتر کاربرد دارد  

 

grid-column-gap :  برای مشخص کردن مقدار فاصله بین ستون‌ها هستش

 

grid-row-gap : برای مشخص کردن مقدار فاصله بین  ردیف‌ها هستش

 

grid-row-gap  /  grid-column-gap  :  grid-gap

 

 flex-start / flex-end / center / space-between / space-around / space-evenly : justify-content 

برای جابه جایی فرزندان در راستای عرض عنصر والدشون 

 

 grid-column-start / grid-column-end  : grid-column  برای گرید بندی  ستون هامون میایم و از این
استفاده میکنیم که مثلا میگوید از فلان لاین تا فلان لاین بیا و ادامه بده و خودتو بکشون 
که این لاین بندی‌ها رو بیا و برای ستون‌ها انجام بده

 

grid-row-start / grid-row-end  : grid-row  مشابه یکی بالایی هست فقط برای ردیف‌ها هستش

 

نکته : مفهوم span برای گام برداشتن در گرید بندی ها 

 

grid-template-areas :  برای ستون دهی به صوتر ساده میایم و از این استفاده میکنیم و باید بیایم و از اسامی‌ها برای آن استفاده بکنیم 

 

grid-area  : نام هایی که دربالا گزاشته رو میایم و در این‌ها قرار میدهیم  

 

9 -   float  که از آن برای شناور سازی عناصر  میایم و استفاده میکنیم

که مشابه ان در متن‌ها texy-align  هست که برای جابه جایی متن در چپ و راست و وسط متن امون استفاده میکنیم

 

float  مقادیر   right و  left  و  none  رو میگیرد  

ما وقتی مثلا میایم و از یک عنصر مثلا یک تصویر میایم و از float در داخل آن استفاده میکنیم اون عنصر ما رو در اون قسمت خاصی که گفتیم میاد و شناور میکند و بقیه عناصر صفحه بدون در نظر گرفتن اون عنصر شناور سازی خودشونو حال چه block چه به صورت inline  میان و انجام میدهند در کنار تصویر ما 

 

حال اگر به این مشکل خوردیم که مثلا تصویرمون از اون  محدوده پرنت خودش اومده و زده بود بیرون می‌توانیم به پرنت اش استایل overflow : auto رو بدهیم

 

( نکته استفاده از padding  و  margin ) در این عناصر برای شناور سازی‌ها هم یادتون باشه

 

استفاده از clearfix به ما میگوید که عنصری که float دارد رو فضای بعدش رو تمیز بکن و عناصر دیگه اش رو بیا و بنداز لاین بعد حال برای این کار ما یک تگ div بعد عنصر float امون درست میکنیم و یک کلاس با نام clearfix بهش میدهیم و در نهایت به اون کلاس استایل clearfix : both رو میدهیم

استایل clearfix می‌تواند مقادیر اش را با مقدار float بگیرد یعنی اگر فلوت left بود مقدار left بگیرد و یا right مقدار right  بگیرد 

راه دوم استفاده از شبه عناصر before و after هستش  اونم به این صورت که بعد از عنصری که خاصیت float  و ایناها دارد بیایم و استایل زیر رو بهش بدهیم 

.clearfixs::after{
  content: '';
  clear:both;
  display:table;
}

 

نکته » اگر در هنگام استفاده اومدیم و دیدیم که یک فاصله به طور خودکار بین عناصر ما در شناور سازی کردن داد می‌توانیم از یک هک استفاده بکنیم و استایل linehight : 0px رو بهش بدهیم 

emad ta ۰۷ آبان ۱۳۹۹، ۰۲:۴۹