Flexbox เป็นหนึ่งสิ่งหนึ่งที่สนใจและน่าใช้ใน
CSS การใช้ Auto Margins เมื่อเราระบุ margin เป็น auto ในทิศทางใด จะเห็นว่ามันจะเริ่มปรากฎด้วยการครอบครองพื้นที่ว่างในทิศทางนั้น ๆ เช่นเราระบุ margin-left: auto จะทำให้เกิดการจองพื้นที่ด้านซ้ายไว้
เราต้องการสร้าง
navbar ให้เมนูส่วนอื่นอยู่ชิดซ้ายเว้นปุ่มลอคอินที่ให้อยู่ชิดขวา เราสามารถใช้ auto margins แก้ปัญหานี้ได้ ดังนี้
โค้ด: เลือกทั้งหมด
<html>
<head>
<style>
#container {
display: flex;
background: #e8eaed;
height: 200px;
}
.box {
width: 50px;
height: 50px;
padding: 0 10px;
line-height: 50px;
background: #434A54;
color: #F5F7FA;
border: 1px solid #CCD1D9;
text-align: center;
}
#box3 {
margin-left: auto;
}
</style>
</head>
<body>
<div id="container">
<div class="box" id="box1">Articles</div>
<div class="box" id="box2">Courses</div>
<div class="box" id="box3">Login</div>
</div>
</body>
</html>
ผลลัพธ์ที่ได้ดังนี้
- flexbox-1.jpg (6.19 KiB) Viewed 1339 times
จากผลลัพธ์ เรากำหนดให้ box3 เป็น margin-left: auto; จะทำให้ชิดขวานั้นเอง
และจากบทความก่อนหน้านี้
viewtopic.php?f=73&t=55792 ซึ่งเป็นการทำให้กล่องทั้งหมดจะอยู่ตรงกลาง
หากเราต้องการให้อีลีเมนต์ต่าง ๆ อยู่กลางจอด้วยและกระจายตามแนวนอนด้วย เราไม่ต้องมานั่งใส่ justify-content และ align-items ให้วุ่นวายอีกต่อไป เพียงใช้ margin: auto ก็ได้ดังนี้
โค้ด: เลือกทั้งหมด
<html>
<head>
<style>
#container {
display: flex;
background: #37BC9B;
height: 200px;
}
.box {
width: 50px;
height: 50px;
line-height: 50px;
background: #434A54;
color: #F5F7FA;
border: 1px solid #CCD1D9;
text-align: center;
margin: auto;
}
</style>
</head>
<body>
<div id="container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
</body>
</html>
- flexbox-auto mg.jpg (4.33 KiB) Viewed 1339 times
จากผลลัพธ์จะเห็นได้ว่า กล่องทั้งหมดจะอยู่ตรงกลางของ อีลีเมนต์นั้นและระยะห่างกันระหว่างซ้ายและขวาเท่ากัน เราสามารถนำไปประยุกต์ใช้กันได้น่ะครับ อาจจะนำ
javascriptหรือ
JQuery เป็นการสร้างให้เคลื่อนไหว้ได้เป็นต้น
ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : HTML & CSS
-
สอนการใช้งาน HTML & CSS
-
ถามตอบ HTML CSS
-
บทเรียน CSS
-
บทเรียน HTML5
-
แลกเปลี่ยนความรู้ PHP
Flexbox เป็นหนึ่งสิ่งหนึ่งที่สนใจและน่าใช้ใน [url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99-css.html]CSS[/url] การใช้ Auto Margins เมื่อเราระบุ margin เป็น auto ในทิศทางใด จะเห็นว่ามันจะเริ่มปรากฎด้วยการครอบครองพื้นที่ว่างในทิศทางนั้น ๆ เช่นเราระบุ margin-left: auto จะทำให้เกิดการจองพื้นที่ด้านซ้ายไว้
เราต้องการสร้าง [url=https://mindphp.com/online-tools/tags/navbar.html]navbar[/url] ให้เมนูส่วนอื่นอยู่ชิดซ้ายเว้นปุ่มลอคอินที่ให้อยู่ชิดขวา เราสามารถใช้ auto margins แก้ปัญหานี้ได้ ดังนี้
[code]<html>
<head>
<style>
#container {
display: flex;
background: #e8eaed;
height: 200px;
}
.box {
width: 50px;
height: 50px;
padding: 0 10px;
line-height: 50px;
background: #434A54;
color: #F5F7FA;
border: 1px solid #CCD1D9;
text-align: center;
}
#box3 {
margin-left: auto;
}
</style>
</head>
<body>
<div id="container">
<div class="box" id="box1">Articles</div>
<div class="box" id="box2">Courses</div>
<div class="box" id="box3">Login</div>
</div>
</body>
</html>[/code]
ผลลัพธ์ที่ได้ดังนี้
[attachment=1]flexbox-1.jpg[/attachment]
จากผลลัพธ์ เรากำหนดให้ box3 เป็น margin-left: auto; จะทำให้ชิดขวานั้นเอง
และจากบทความก่อนหน้านี้ https://www.mindphp.com/forums/viewtopic.php?f=73&t=55792 ซึ่งเป็นการทำให้กล่องทั้งหมดจะอยู่ตรงกลาง
[img]https://www.mindphp.com/forums/download/file.php?id=53091[/img]
หากเราต้องการให้อีลีเมนต์ต่าง ๆ อยู่กลางจอด้วยและกระจายตามแนวนอนด้วย เราไม่ต้องมานั่งใส่ justify-content และ align-items ให้วุ่นวายอีกต่อไป เพียงใช้ margin: auto ก็ได้ดังนี้
[code]<html>
<head>
<style>
#container {
display: flex;
background: #37BC9B;
height: 200px;
}
.box {
width: 50px;
height: 50px;
line-height: 50px;
background: #434A54;
color: #F5F7FA;
border: 1px solid #CCD1D9;
text-align: center;
margin: auto;
}
</style>
</head>
<body>
<div id="container">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
</body>
</html>
[/code]
[attachment=0]flexbox-auto mg.jpg[/attachment]
จากผลลัพธ์จะเห็นได้ว่า กล่องทั้งหมดจะอยู่ตรงกลางของ อีลีเมนต์นั้นและระยะห่างกันระหว่างซ้ายและขวาเท่ากัน เราสามารถนำไปประยุกต์ใช้กันได้น่ะครับ อาจจะนำ [url=https://mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/2187-java-javascript-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html]javascript[/url]หรือ [url=https://mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/3863-what-is-jquery.html]JQuery[/url] เป็นการสร้างให้เคลื่อนไหว้ได้เป็นต้น
[b]ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : HTML & CSS[/b]
-[url=https://www.mindphp.com/forums/viewforum.php?f=73]สอนการใช้งาน HTML & CSS[/url]
-[url=https://www.mindphp.com/forums/viewforum.php?f=20]ถามตอบ HTML CSS[/url]
-[url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99-css.html]บทเรียน CSS[/url]
-[url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99-html5.html]บทเรียน HTML5[/url]
-[url=https://www.mindphp.com/forums/viewforum.php?f=6]แลกเปลี่ยนความรู้ PHP[/url]