การฝึกปฏิบัติเกี่ยวกับเลย์เอาต์ด้วย HTML และ CSS
มาฝึกการสร้างเลย์เอาต์โดยเติมเนื้อหาเข้าไป ตัวอย่างเช่น ลองสร้างเลย์เอาต์แบบนี้:
เริ่มต้นด้วยการสร้างโครงสร้างหลักของเลย์เอาต์:
<div class="wrapper">
<header>
...
</header>
<div class="container">
<aside class="left">
left
</aside>
<main>
...
</main>
<aside class="right">
right
</aside>
</div>
<footer>
site.com
</footer>
</div>
ทีนี้มาจัดการกับเฮดเดอร์ อย่างที่เห็นในตัวอย่าง ในเฮดเดอร์จะมีชื่อเว็บไซต์และเมนู โดยบล็อกเหล่านี้ อยู่ห่างจากขอบซ้ายเท่ากัน ตรรกะในกรณีนี้คือการรวมพวกมัน ด้วยพ่อแม่เดียวกัน โดยขยับบล็อกเหล่านี้เป็นเนื้อหาเดียว:
<div class="wrapper">
<header>
<div class="block">
<div class="sitename"></div>
<nav></nav>
</div>
</header>
</div>
เพิ่มเนื้อหาของบล็อกในเฮดเดอร์:
<div class="wrapper">
<header>
<div class="block">
<div class="sitename">site.com</div>
<nav>
<a href="#">home</a>
<a href="#" class="active">blog</a>
<a href="#">photos</a>
<a href="#">about us</a>
<a href="#">contacts</a>
</nav>
</div>
</header>
</div>
ทีนี้มาเขียนสไตล์ของบล็อกในเฮดเดอร์ โดยไม่กำหนดความสูงของเฮดเดอร์ - ให้มันขยายตามเนื้อหาของตัวเอง:
header {
border: 1px solid black;
}
.block {
margin: 20px 0 50px 220px;
}
.sitename {
margin-bottom: 10px;
font: 20px Arial;
}
nav {
display: flex;
width: 600px;
border: 1px solid black;
}
เขียนโค้ดที่สร้างคอลัมน์สามคอลัมน์ในคอนเทนเนอร์ โดยไม่กำหนดความสูงของคอนเทนต์ - ให้มันถูกกำหนดโดยเนื้อหาของมัน:
.container {
display: flex;
}
main {
width: 660px;
padding: 20px;
border: 1px solid black;
}
.left {
width: 200px;
margin-right: 20px;
padding: 20px;
border: 1px solid black;
}
.right {
width: 200px;
margin-left: 20px;
padding: 20px;
border: 1px solid black;
}
ทีนี้มาเขียนสไตล์ที่เหลือของเลย์เอาต์ของเรา และได้ผลลัพธ์ของงาน:
<div class="wrapper">
<header>
<div class="block">
<div class="sitename">site.com</div>
<nav>
<a href="#">home</a>
<a href="#" class="active">blog</a>
<a href="#">photos</a>
<a href="#">about us</a>
<a href="#">contacts</a>
</nav>
</div>
</header>
<div class="container">
<aside class="left">
left
</aside>
<main>
<h1>Our blog</h1>
<p>
...
</p>
<p>
...
</p>
<p>
...
</p>
<p>
...
</p>
<p>
...
</p>
</main>
<aside class="right">
right
</aside>
</div>
<footer>
site.com
</footer>
</div>
* {
box-sizing: border-box;
}
.wrapper {
width: 1100px;
margin: 30px auto;
border: 1px solid black;
}
header {
border: 1px solid black;
}
.container {
display: flex;
}
main {
width: 660px;
padding: 20px;
border: 1px solid black;
}
.left {
width: 200px;
margin-right: 20px;
padding: 20px;
border: 1px solid black;
}
.right {
width: 200px;
margin-left: 20px;
padding: 20px;
border: 1px solid black;
}
footer {
padding: 30px 0;
border: 1px solid black;
text-align: center;
}
.block {
margin: 20px 0 50px 220px;
}
.sitename {
margin-bottom: 10px;
font: 20px Arial;
}
nav {
display: flex;
width: 600px;
border: 1px solid black;
}
nav a {
padding: 10px;
color: blue;
text-decoration: none;
font: 15px Arial;
}
nav a:hover, nav a.active {
color: red;
text-decoration: underline;
}
main h1 {
font: 20px "Times New Roman";
}
main p {
margin: 10px 0;
text-align: justify;
font: 15px Arial;
}
โจทย์ฝึกปฏิบัติ
ดาวน์โหลดเลย์เอาต์จากลิงก์นี้ 1.zip เปิดในเบราว์เซอร์และสร้างหน้าเว็บตามตัวอย่างนี้
ดาวน์โหลดเลย์เอาต์จากลิงก์นี้ 2.zip เปิดในเบราว์เซอร์และสร้างหน้าเว็บตามตัวอย่างนี้