Sobes.tech
Junior

Ի՞նչ է CSS-ում display հատկության հիմնական նշանակությունը և ինչպես է այն աշխատում։

sobes.tech AI

Պատասխան AI-ից

display հատկությունը որոշում է, թե ինչպես է տարրը ցուցադրվում փաստաթղթում և ինչպես է փոխազդում մյուս տարրերի հետ՝ մասնակցելով ձևավորման հոսքին (layout flow): Այն սահմանում է տարրի ձևավորման բլոկի տեսակ:

Հիմնական արժեքները՝

  • block: Տարրը ձևավորվում է որպես բլոկ: Կազմում է ամբողջ հասանելի լայնությունը, սկսվում է նոր տողից, կարող է ունենալ սահմանված չափսեր (width, height):
  • inline: Տարրը ձևավորվում է որպես տողային: Չսկսում է նոր տողից, միայն անհրաժեշտ լայնությունը է վերցնում, չի կարող ունենալ սահմանված չափսեր (width, height), ուղղահայաց մարգարիտներ (margin-top, margin-bottom) և ներքին մարգարիտներ (padding-top, padding-bottom) չեն ազդում հարակից տարրերի վրա:
  • inline-block: Տարրը ձևավորվում է որպես տողային, բայց որպես բլոկ է պահում տողի ներսում: Չսկսում է նոր տողից, կարող է ունենալ սահմանված չափսեր (width, height), ինչպես նաև ուղղահայաց մարգարիտներ և ներքին մարգարիտներ, որոնք ազդում են հարակից տարրերի վրա:
  • none: Տարրը և նրա պարունակությունը չեն ցուցադրվում: Տարրը ամբողջությամբ հեռացվում է փաստաթղթի հոսքից, զբաղեցրած տեղ չկա:
  • flex: Տարրը դառնում է Flex կոնտեյներ, իսկ նրա ուղիղ զավակները՝ Flex տարրեր: Օգտագործվում է ճկուն մոդելներ ստեղծելու համար:
  • grid: Տարրը դառնում է Grid կոնտեյներ: Օգտագործվում է ցանցային մոդելներ ստեղծելու համար:

Ինչպես է աշխատում:

Բրաուզերը օգտագործում է display արժեքը՝ որոշելու համար, թե ինչ տեսակի ձևավորման կոնտեքստում է գտնվում տարրը: Դա ազդում է՝

  • Փաստաթղթի հոսք: Ինչպես է տարրը տեղադրված իր հարևանների նկատմամբ:
  • Տարրի չափսեր: Հնարավորություն սահմանել լայնություն և բարձրություն, պարունակության ազդեցությունը չափսերի վրա:
  • Հարևան տարրերի վրա ազդեցություն: Ինչպես մարգարիտներն ու չափսերը ազդում են մյուս տարրերի տեղաշարժի վրա:

Օրինակ՝

/* `display: block` պարունակող տարր */
div {
  display: block;
  width: 100%; /* Լրացուցիչ լայնություն է զբաղեցնում */
  margin-bottom: 10px; /* Ստեղծում է ուղղահայաց հեռավորություն */
}

/* `display: inline` պարունակող տարր */
span {
  display: inline;
  /* width և height անտեսվում են */
  /* margin-top և margin-bottom անտեսվում են */
}

/* `display: inline-block` պարունակող տարր */
img {
  display: inline-block;
  width: 100px; /* Միջին լայնություն սահմանել */
  height: 100px; /* Միջին բարձրություն սահմանել */
  margin: 5px; /* Ստեղծում է հեռավորություններ բոլոր կողմերից */
}

/* թաքնված տարր */
.hidden {
  display: none;
}