خلاصه انواع display

پرسیده شده
فعالیت 1282 روز پیش
دیده شده 811 بار
5

انواع 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  : نام هایی که دربالا گزاشته رو میایم و در این ها قرار میدهیم  

 

فایل پیوست

emad ta
emad ta

2 آبان 99

2
حذف شده

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

توسط

emad ta

7 آبان 99