CSS-ում բազմակի wrappers-ով դասավորության սխեմա

Զարգացման ընթացքում հաճախ հանդիպում են դասավորություններ, որտեղ բլոկներն ունեն ֆոն ամբողջ էջի լայնությամբ, իսկ այդ բլոկների բովանդակությունը կենտրոնացած է: Ահա այդպիսի դասավորության օրինակ.

Նման դասավորության դեպքում մենք ստիպված կլինենք կազմել ոչ թե մեկ wrapper, այլ մի քանիսը՝ յուրաքանչյուր բլոկի համար: Միևնույն ժամանակ, wrapper-ի ներսում պետք է լինի ևս մեկ բլոկ, որն իրականացնում է բովանդակության կենտրոնացումը: Պետք է լինի նաև դաս, որը պատասխանատու է բովանդակության ֆոնով ներկելու համար:

Մեր դասավորության ընդհանուր սխեման կունենա հետևյալ տեսքը.

html<div class="wrapper">
  <div class="center">
    
  </div>
</div>
<div class="wrapper line">
  <div class="center">
    
  </div>
</div>
<div class="wrapper">
  <div class="center">
    
  </div>
</div>
<div class="wrapper line">
  <div class="center">
    
  </div>
</div>

center դասը կօգտագործվի բլոկները կենտրոնացնելու համար.

css.center {
  width: 800px;
  padding: 20px;
  margin: 0 auto;
}

line դասը կօգտագործվի բլոկները ներկելու համար.

css.wrapper.line {
  background-color: #008040;
  color: white;
}

Իսկ wrapper դասը կլինի յուրաքանչյուր բլոկի ծնողը: Այն կօգտագործենք բլոկների միջև բացվածք նշելու համար.

css.wrapper {
  margin-bottom: 30px;
}

Այժմ եկեք գրենք մեր առաջադրանքի ամբողջական կոդը.

html<div class="wrapper">
  <div class="center">
    <h1>Կայքի գլխավոր վերնագիր</h1>
  </div>
</div>
<div class="wrapper line">
  <div class="center">
    <h2>Մեր ընկերությունը</h2>
    <p>
      ...
    </p>
    <p>
      ...
    </p>
  </div>
</div>
<div class="wrapper">
  <div class="center">
    <h2>Մեր գները</h2>
    <p>
      ...
    </p>
    <p>
      ...
    </p>
  </div>
</div>
<div class="wrapper line">
  <div class="center">
    <h2>Մեր կոնտակտները</h2>
    <p>
      ...
    </p>
    <p>
      ...
    </p>
  </div>
</div>
css* {
  box-sizing: border-box;
}
body {
  margin: 0;
}

.wrapper {
  margin-bottom: 30px;
}
.wrapper.line {
  background-color: #008040;
  color: white;
}
.center {
  width: 800px;
  padding: 20px;
  margin: 0 auto;
}
.wrapper h1 {
  margin: 0;
  font: 40px "Times New Roman";
}
.wrapper h2 {
  margin: 0;
  font: 25px "Times New Roman";
}
.wrapper p {
  font: 16px/1.4 Arial;
  text-align: justify;
}
Задание 1