CSS හි වෙබ් අඩවියේ ද්වි-තීරු පිරිසැලසුම් යෝජනා ක්‍රමය

පහත ආකාරයේ ද්වි-තීරු පිරිසැලසුමක් සාදා ගනිමු:

පළමුව, පිටුවේ මූලික ව්‍යුහය නිර්මාණය කරමු:

html<div id="wrapper">
  <div id="header">
    header
  </div>
  <div id="container">
    <div id="content">
      content
    </div>
    <div id="sidebar">
      sidebar
    </div>
  </div>
  <div id="footer">
    footer
  </div>
</div>

දැන්, wrapper ට මැදිගත කරමින් විලාසනා නියම කරමු:

css#wrapper {
  width: 1000px;
  margin: 30px auto;
  border: 1px solid black;
}

දැන් හෙඩර් සහ ෆුටර් සඳහා විලාසිතා සකසමු:

css#header {
  height: 200px;
  border: 1px solid black;
}
#footer {
  height: 200px;
  border: 1px solid black;
}

ඔබට පෙනෙන පරිදි, අපි හෙඩර් සහ ෆුටර් සඳහා උස නියම කරමු. අපගේ යෝජනා ක්‍රමයේ ඒවාට අන්තර්ගතයක් නොමැති නිසා අපි මෙය කරන්නෙමු. අන්තර්ගතයක් ඇත්නම්, බ්ලොක් සඳහා උස නියම කිරීම අවශ්‍ය නොවේ - එය ඒවායේ අන්තර්ගතයෙන් සෑදේ.

ඒවාට පළල නියම නොකරන බව ද සලකන්න. හේතුව නම්, හෙඩර් සහ ෆුටර් යනු බ්ලොක් මූලද්‍රව්‍ය වන අතර ඒවායේ පළල ස්වයංක්‍රීයව wrapper හි පළලට සමාන වේ.

පෙළ මායිම් වලට ඇලී නොසිටීම සඳහා දැන් ඒවාට padding සකසමු:

css#header {
  height: 200px;
  padding: 20px;
  border: 1px solid black;
}
#footer {
  height: 200px;
  padding: 20px;
  border: 1px solid black;
}

කෙසේ වෙතත්, padding පැවතීම බ්ලොක් වල ප්‍රමාණයට නරක ලෙස බලපානු ඇත - ඒවා නියම කර ඇති තරමට වඩා විශාල වේ. අපගේ බ්ලොක් පුළුල් නොකරන පරිදි padding සහ මායිම් හැසිරීම වෙනස් කරමු:

css* {
  box-sizing: border-box;
}

දැන් අපි අන්තර්ගතය සහ පැතිපණුව එක් පේළියක තබා ගත යුතුය. flex භාවිතා කර මෙය කරමු:

css#container {
  display: flex;
}

අන්තර්ගතය සහ පැතිපණුව සඳහා ඒවායේ පළල නියම කරමු. මේ සමඟ ඒවායේ පළල්වල එකතුව wrapper හි පළලට සමාන විය යුතුය:

css#content {
  width: 800px;
}
#sidebar {
  width: 200px;
}

පැතිපණුව සහ අන්තර්ගතය අතර ඉඩ ප්‍රමාණයක් ඇති කිරීමට අපට අවශ්‍ය යැයි සිතමු. මෙම අවස්ථාවේදී, පැතිපණුවට margin සකසා තැබිය යුතුය. මේ සමඟ මෙම margin සඳහා පළලක් කෙනෙකුගෙන් ගත යුතුය. අන්තර්ගතයෙන් ගෙන, ඒ අනුව එහි පළල අඩු කරමු:

css#content {
  width: 780px;
}
#sidebar {
  width: 200px;
  margin-right: 20px;
}

දැන් අපගේ මූලද්‍රව්‍යවලට අන්තර්ගතයක් නොමැති නිසා උස එකතු කරමු. එක් මූලද්‍රව්‍යයකට පමණක් උස එකතු කිරීම ප්‍රමාණවත්ය, මන්ද දෙවන flex මූලද්‍රව්‍යය උසට අනුව සකසනු ඇත (ඇයි?). අන්තර්ගතයට උස නියම කරමු:

css#content {
  width: 780px;
  height: 700px;
}
#sidebar {
  width: 200px;
  margin-right: 20px;
}

අන්තර්ගතය සහ පැතිපණුවට ඉතිරි විලාසනා එකතු කරමු:

css#content {
  width: 780px;
  height: 700px;
  padding: 20px;
  border: 1px solid black;
}
#sidebar {
  width: 200px;
  margin-right: 20px;
  padding: 20px;
  border: 1px solid black;
}

හැමදෙයක්ම, අපගේ පිරිසැලසුම සූදානම්. සියලුම කේතය එකට එකතු කරමු:

html<div id="wrapper">
  <div id="header">
    header
  </div>
  <div id="container">
    <div id="sidebar">
      sidebar
    </div>
    <div id="content">
      content
    </div>
  </div>
  <div id="footer">
    footer
  </div>
</div>
css* {
  box-sizing: border-box;
}

#wrapper {
  width: 1000px;
  margin: 30px auto;
  border: 1px solid black;
}
#header {
  height: 200px;
  padding: 20px;
  border: 1px solid black;
}
#container {
  display: flex;
}
#content {
  width: 780px;
  height: 700px;
  padding: 20px;
  border: 1px solid black;
}
#sidebar {
  width: 200px;
  margin-right: 20px;
  padding: 20px;
  border: 1px solid black;
}
#footer {
  height: 200px;
  padding: 20px;
  border: 1px solid black;
}
Задание 1
Задание 2