CSS Container Queries GreenOps Sustainability — คู่มือฉบับสมบูรณ์ 2026 | SiamCafe Blog

CSS Container Queries GreenOps Sustainability — คืออะไร
ในยุคที่เทคโนโลยีดิจิทัลก้าวกระโดดอย่างรวดเร็ว ความยั่งยืนในวงการพัฒนาซอฟต์แวร์ไม่ใช่เพียงคำพูดที่ฟังดูดี
แต่คือหัวใจสำคัญของระบบงานที่ต้องรับมือกับการเปลี่ยนแปลงตลอดเวลา ปี 2026 ถือเป็นจุดเปลี่ยนสำคัญที่ความต้องการระบบอัตโนมัติ ประสิทธิภาพสูง และการดูแลรักษายาวนานเริ่มกลายเป็นมาตรฐาน ไม่ใช่ข้อได้เปรียบเพียงอย่างเดียว แนวคิด CSS Container Queries GreenOps Sustainability จึงไม่ใช่แค่เทรนด์ชั่วคราว แต่คือกรอบการทำงานที่ช่วยให้โค้ดของนักพัฒนาเติบโตไปพร้อมกับเทคโนโลยี โดยไม่ต้องทิ้งระบบเดิมหรือสร้างใหม่ทั้งหมด
สิ่งที่ทำให้ Container Queries แตกต่างจากแนวทางพัฒนาทั่วไปคือการให้ความสำคัญกับ "สภาพแวดล้อม" ขององค์ประกอบ (component) มากกว่าขนาดหน้าจอเพียงอย่างเดียว นั่นหมายความว่า เมื่อองค์ประกอบหนึ่งถูกวางในบริบทที่ต่างกัน เช่น หน้าจอเล็ก หรือในกริดที่มีความกว้างจำกัด ระบบจะปรับพฤติกรรมของมันได้ทันทีโดยไม่ต้องเขียนเงื่อนไขซับซ้อนด้วย JavaScript หรือ Media Queries แบบเดิม ซึ่งช่วยลดความซับซ้อนของโค้ด และทำให้ระบบสามารถขยายตัวได้อย่างยืดหยุ่น
ในบริบทของ GreenOps — การจัดการทรัพยากรดิจิทัลให้เป็นมิตรกับสิ่งแวดล้อม — การใช้ Container Queries ช่วยลดการใช้พลังงานของเซิร์ฟเวอร์และอุปกรณ์ผู้ใช้ เพราะไม่ต้องโหลด CSS ทั้งหมดเพื่อตรวจสอบการจัดวาง แต่เลือกโหลดเฉพาะส่วนที่จำเป็นตามบริบท ซึ่งสอดคล้องกับหลักการของ Sustainable Software Development ที่เน้นการใช้ทรัพยากรอย่างมีประสิทธิภาพ ไม่เพียงแต่ช่วยลดต้นทุน แต่ยังลดคาร์บอนฟุตพรินต์ของแอปพลิเคชันได้อย่างมีนัยสำคัญ
อ.บอม ผู้มีประสบการณ์เทรดฟอเร็กซ์บน XM มา 13 ปี มองว่า ความยั่งยืนในระบบซอฟต์แวร์ก็เหมือนกับการบริหารพอร์ตการลงทุน — ต้องมีแผนระยะยาว ติดตามผลอย่างต่อเนื่อง และปรับกลยุทธ์เมื่อสภาวะเปลี่ยนแปลง ด้วยเหตุนี้ การเริ่มต้นใช้ Container Queries ตั้งแต่วันนี้ จึงไม่ใช่แค่การอัปเกรดเทคนิค แต่คือการวางรากฐานให้กับระบบงานที่จะอยู่ได้ในอนาคตข้างหน้า โดยไม่ต้องกลัวว่าจะล้าสมัยหรือล่มระบบเพราะขยายตัวเกินขนาด
Container Queries ไม่ใช่แค่เครื่องมือทางเทคนิค แต่คือปรัชญาการออกแบบที่เน้นความยืดหยุ่นและประสิทธิภาพสูงสุด ต่างจาก Media Queries ที่ทำงานบนพื้นฐานของขนาดหน้าจอ (viewport) Container Queries ทำงานบนพื้นฐานของ "ขนาดของ container" หรือองค์ประกอบแม่ที่ครอบคลุมองค์ประกอบย่อย ซึ่งหมายความว่า ระบบสามารถตอบสนองต่อการเปลี่ยนแปลงของบริบทได้แม่นยำกว่ามาก
ตัวอย่างเช่น หากเรามีองค์ประกอบ `
ในแง่ GreenOps การใช้ Container Queries ช่วยลดการใช้พลังงานของอุปกรณ์ผู้ใช้ เพราะไม่จำเป็นต้องโหลด CSS ทั้งหมดเพื่อประเมินว่าจะแสดงผลอย่างไร แต่สามารถประเมินได้จากขนาดของ container ที่มีอยู่แล้ว ทำให้ลดการใช้แบนด์วิธีที่ไม่จำเป็น และช่วยลดการปล่อยคาร์บอนจากการใช้พลังงานในเซิร์ฟเวอร์และอุปกรณ์ปลายทาง
ในระบบที่มีความซับซ้อนสูง เช่น ระบบการเงิน หรือแพลตฟอร์มอีคอมเมิร์ซที่ต้องจัดการกับข้อมูลจำนวนมากและแสดงผลในหลายบริบท Container Queries GreenOps
Sustainability กลายเป็นเครื่องมือที่ทรงพลังอย่างยิ่ง โดยเฉพาะเมื่อต้องการให้ระบบมีความยืดหยุ่นสูง สามารถปรับตัวได้ทันทีเมื่อผู้ใช้เปลี่ยนแปลงขนาดหน้าจอ หรือวางองค์ประกอบในบริบทที่ต่างกัน
ในระบบที่มีความซับซ้อนสูง เช่น ระบบการเงิน หรือแพลตฟอร์มอีคอมเมิร์ซที่ต้องจัดการกับข้อมูลจำนวนมากและแสดงผลในหลายบริบท Container Queries GreenOps Sustainability กลายเป็นเครื่องมือที่ทรงพลังอย่างยิ่ง โดยเฉพาะเมื่อต้องการให้ระบบมีความยืดหยุ่นสูง สามารถปรับตัวได้ทันทีเมื่อผู้ใช้เปลี่ยนแปลงขนาดหน้าจอ หรือวางองค์ประกอบในบริบทที่ต่างกัน
ตัวอย่างการประยุกต์ใช้จริง เช่น การพัฒนาแดชบอร์ดสำหรับผู้บริหาร ซึ่งต้องแสดงข้อมูลเชิงลึกในรูปแบบกราฟ ตาราง และแผนภูมิ โดยแต่ละองค์ประกอบสามารถปรับขนาดและรูปแบบการแสดงผลได้ตามขนาดของ container ที่มันถูกวางไว้ ถ้า container มีขนาดเล็ก ระบบจะซ่อนข้อมูลที่ไม่จำเป็น หรือเปลี่ยนเป็นการแสดงผลแบบสั้น แต่ถ้า container ใหญ่ ระบบจะแสดงข้อมูลทั้งหมดพร้อมฟีเจอร์เสริม เช่น การลากเพื่อเปรียบเทียบข้อมูล หรือการซูมในกราฟ
ในแง่ของ GreenOps การปรับขนาดองค์ประกอบตามบริบทช่วยลดการโหลดทรัพยากรที่ไม่จำเป็น เช่น ไม่ต้องโหลดกราฟขนาดใหญ่ถ้าหน้าจอเล็ก หรือไม่ต้องแสดงข้อมูลทั้งหมดถ้า container แคบ ซึ่งช่วยลดการใช้แบนด์วิธี และพลังงานของเซิร์ฟเวอร์ ทำให้ระบบมีประสิทธิภาพสูงขึ้นในระยะยาว
อีกแนวทางหนึ่งคือการใช้ Container Queries ร่วมกับระบบ caching และ connection pooling เพื่อเพิ่มประสิทธิภาพของระบบในระดับแอปพลิเคชัน โดยเฉพาะเมื่อต้องจัดการกับข้อมูลที่ถูกเรียกซ้ำบ่อย ระบบสามารถใช้ Container Size เป็นตัวกำหนดว่าจะใช้ cache แบบใด หรือโหลดข้อมูลจากเซิร์ฟเวอร์หรือจาก cache ที่อยู่ใกล้ตัวผู้ใช้
| บริบท | การตอบสนองของ Container Query | ผลต่อประสิทธิภาพ | ผลต่อ GreenOps |
|---|---|---|---|
| Container ขนาดเล็ก (≤ 480px) | แสดงข้อมูลแบบย่อ ใช้ฟอนต์เล็ก ซ่อนฟีเจอร์เสริม | ลดภาระเซิร์ฟเวอร์ | ลดการใช้พลังงาน |
| Container ขนาดกลาง (480–768px) | แสดงข้อมูลแบบย่อ ใช้ฟอนต์กลาง | ลดภาระเซิร์ฟเวอร์ | ลดการใช้พลังงาน |
| Container ขนาดใหญ่ (> 768px) | แสดงข้อมูลเต็มรูปแบบ พร้อมฟีเจอร์เสริม | เพิ่มความละเอียด | ใช้ทรัพยากรอย่างมีประสิทธิภาพ |
ตัวอย่างอีกกรณีคือ การพัฒนาระบบแสดงผลข้อมูลตลาดฟอเร็กซ์แบบเรียลไทม์ ซึ่งต้องแสดงกราฟราคา ข้อมูลคู่สกุลเงิน และข่าวเศรษฐกิจพร้อมกัน แต่ในขณะเดียวกันต้องรองรับการใช้งานบนมือถือ แท็บเล็ต และเดสก์ท็อป ด้วย Container Queries เราสามารถกำหนดให้กราฟแสดงผลแบบโต้ตอบได้เฉพาะเมื่อ container มีขนาดใหญ่พอ ขณะที่บนมือถือจะเปลี่ยนเป็นการแสดงข้อมูลแบบตารางหรือข้อความสั้น ๆ พร้อมลิงก์ไปยังหน้าแสดงข้อมูลเต็ม
การสร้างระบบที่รองรับการเติบโตในอนาคตข้างหน้า ไม่ใช่แค่การเขียนโค้ดให้ทำงานได้ แต่คือการออกแบบระบบที่สามารถปรับตัวได้เมื่อความต้องการเปลี่ยนแปลง
ไม่ว่าจะเป็นจำนวนผู้ใช้ เพิ่มขึ้น หรือการเปลี่ยนแปลงของอุปกรณ์ปลายทาง Container Queries GreenOps Sustainability ช่วยให้ระบบมีความยืดหยุ่นสูง โดยเฉพาะเมื่อต้องรองรับการขยายตัวขององค์ประกอบในหลายบริบท
การออกแบบระบบที่รองรับการเติบโตในอนาคตข้างหน้า
การสร้างระบบที่รองรับการเติบโตในอนาคตข้างหน้า ไม่ใช่แค่การเขียนโค้ดให้ทำงานได้ แต่คือการออกแบบระบบที่สามารถปรับตัวได้เมื่อความต้องการเปลี่ยนแปลง ไม่ว่าจะเป็นจำนวนผู้ใช้ เพิ่มขึ้น หรือการเปลี่ยนแปลงของอุปกรณ์ปลายทาง Container Queries GreenOps Sustainability ช่วยให้ระบบมีความยืดหยุ่นสูง โดยเฉพาะเมื่อต้องรองรับการขยายตัวขององค์ประกอบในหลายบริบท
การพัฒนาแดชบอร์ดข้อมูลที่สามารถปรับตัวได้ตามขนาดของ container ถือเป็นตัวอย่างที่ดีที่สุดของการประยุกต์ใช้ Container Queries GreenOps Sustainability ในชีวิตจริง แดชบอร์ดมักต้องแสดงข้อมูลหลายประเภทในหลายบริบท เช่น บนหน้าจอใหญ่ ผู้ใช้ต้องการดูกราฟแบบโต้ตอบ ตารางข้อมูลที่ละเอียด และฟีเจอร์วิเคราะห์ข้อมูล แต่บนอุปกรณ์มือถือ ผู้ใช้ต้องการข้อมูลที่กระชับ รวดเร็ว และเข้าใจง่าย
ในแง่ของ GreenOps การออกแบบระบบที่ยืดหยุ่นนี้ช่วยลดการใช้ทรัพยากรที่ไม่จำเป็น เช่น การไม่ต้องโหลด CSS ทั้งหมดเพื่อประเมินว่าจะแสดงผลอย่างไร แต่สามารถประเมินได้จากขนาดของ container ที่มีอยู่แล้ว ทำให้ลดการใช้พลังงานของเซิร์ฟเวอร์และอุปกรณ์ผู้ใช้
การพัฒนาแดชบอร์ดข้อมูลที่สามารถปรับตัวได้ตามขนาดของ container ถือเป็นตัวอย่างที่ดีที่สุดของการประยุกต์ใช้ Container Queries GreenOps Sustainability
ในชีวิตจริง แดชบอร์ดมักต้องแสดงข้อมูลหลายประเภทในหลายบริบท เช่น บนหน้าจอใหญ่ ผู้ใช้ต้องการดูกราฟแบบโต้ตอบ ตารางข้อมูลที่ละเอียด และฟีเจอร์วิเคราะห์ข้อมูล แต่บนอุปกรณ์มือถือ ผู้ใช้ต้องการข้อมูลที่กระชับ รวดเร็ว และเข้าใจง่าย
การใช้ Container Queries ยังช่วยให้ระบบสามารถรองรับการเปลี่ยนแปลงของ UX/UI ได้อย่างราบรื่น โดยไม่ต้องเขียนโค้ดใหม่ทั้งหมด เมื่อต้องการเพิ่มฟีเจอร์ใหม่หรือปรับ layout ระบบสามารถปรับพฤติกรรมขององค์ประกอบได้ตามบริบทที่มันถูกวางไว้ ทำให้การพัฒนาในระยะยาวมีความยืดหยุ่นและลดความเหน็ดเหนื่อยของทีมพัฒนา
การพัฒนาแดชบอร์ดข้อมูลที่สามารถปรับตัวได้ตามขนาดของ container
การพัฒนาแดชบอร์ดข้อมูลที่สามารถปรับตัวได้ตามขนาดของ container ถือเป็นตัวอย่างที่ดีที่สุดของการประยุกต์ใช้ Container Queries GreenOps Sustainability ในชีวิตจริง แดชบอร์ดมักต้องแสดงข้อมูลหลายประเภทในหลายบริบท เช่น บนหน้าจอใหญ่ ผู้ใช้ต้องการดูกราฟแบบโต้ตอบ ตารางข้อมูลที่ละเอียด และฟีเจอร์วิเคราะห์ข้อมูล แต่บนอุปกรณ์มือถือ ผู้ใช้ต้องการข้อมูลที่กระชับ รวดเร็ว และเข้าใจง่าย
ด้วย Container Queries เราสามารถกำหนดพฤติกรรมของแต่ละองค์ประกอบได้ตามขนาดของ container ที่มันถูกวางไว้ เช่น ถ้า container มีขนาดใหญ่ ระบบจะแสดงกราฟแบบโต้ตอบ พร้อมเลือกช่วงเวลา และแสดงข้อมูลทั้งหมด แต่ถ้า container เล็ก ระบบจะแสดงกราฟแบบย่อ หรือเปลี่ยนเป็นข้อมูลตัวเลขเพียงอย่างเดียว พร้อมลิงก์ไปยังหน้าแสดงข้อมูลเต็ม
ตัวอย่างโค้ดจริง:
.container { container-type: inline-size; }
.container h2 { font-size: 1.5rem; }
@container (min-width: 768px) { .container h2 { font-size: 2.5rem; } }
@container (min-width: 1024px) { .container h2 { font-size: 3rem; } }
การพัฒนาแดชบอร์ดข้อมูลที่สามารถปรับตัวได้ตามขนาดของ container ถือเป็นตัวอย่างที่ดีที่สุดของการประยุกต์ใช้ Container Queries GreenOps Sustainability
ในชีวิตจริง แดชบอร์ดมักต้องแสดงข้อมูลหลายประเภทในหลายบริบท เช่น บนหน้าจอใหญ่ ผู้ใช้ต้องการดูกราฟแบบโต้ตอบ ตารางข้อมูลที่ละเอียด และฟีเจอร์วิเคราะห์ข้อมูล แต่บนอุปกรณ์มือถือ ผู้ใช้ต้องการข้อมูลที่กระชับ รวดเร็ว และเข้าใจง่าย
อีกตัวอย่างคือ การจัดการกับตารางข้อมูลที่มีหลายคอลัมน์ โดยเมื่อ container มีขนาดเล็ก ระบบจะเปลี่ยน layout จากตารางแนวนอนเป็นแนวตั้ง พร้อมแสดงข้อมูลแบบ stack ทำให้ผู้ใช้สามารถเลื่อนดูข้อมูลได้ง่ายขึ้น ขณะที่บนหน้าจอใหญ่ จะแสดงข้อมูลทั้งหมดในรูปแบบตารางปกติ
การใช้ Container Queries ยังช่วยให้ระบบสามารถรองรับการใช้งานในหลายบริบท เช่น การแสดงแดชบอร์ดในหน้าเว็บ หรือใน iframe ที่มีขนาดต่างกัน โดยไม่ต้องเขียนโค้ดแยกต่างหากสำหรับแต่ละกรณี
ตัวอย่างการปฏิบัติจริง: การพัฒนาแดชบอร์ดข้อมูลแบบยืดหยุ่น
การพัฒนาแดชบอร์ดข้อมูลที่สามารถปรับตัวได้ตามขนาดของ container ถือเป็นตัวอย่างที่ดีที่สุดของการประยุกต์ใช้ Container Queries GreenOps Sustainability ในชีวิตจริง แดชบอร์ดมักต้องแสดงข้อมูลหลายประเภทในหลายบริบท เช่น บนหน้าจอใหญ่ ผู้ใช้ต้องการดูกราฟแบบโต้ตอบ ตารางข้อมูลที่ละเอียด และฟีเจอร์วิเคราะห์ข้อมูล แต่บนอุปกรณ์มือถือ ผู้ใช้ต้องการข้อมูลที่กระชับ รวดเร็ว และเข้าใจง่าย
ด้วย Container Queries เราสามารถกำหนดพฤติกรรมของแต่ละองค์ประกอบได้ตามขนาดของ container ที่มันถูกวางไว้ เช่น ถ้า container มีขนาดใหญ่ ระบบจะแสดงกราฟแบบโต้ตอบ พร้อมเลือกช่วงเวลา และแสดงข้อมูลทั้งหมด แต่ถ้า container เล็ก ระบบจะแสดงกราฟแบบย่อ หรือเปลี่ยนเป็นข้อมูลตัวเลขเพียงอย่างเดียว พร้อมลิงก์ไปยังหน้าแสดงข้อมูลเต็ม
ตัวอย่างโค้ดจริง:
.container { container-type: inline-size; }
.container h2 { font-size: 1.5rem; }
@container (min-width: 768px) { .container h2 { font-size: 2.5rem; } }
@container (min-width: 1024px) { .container h2 { font-size: 3rem; } }
ในตัวอย่างนี้ ข้อความ `
` จะปรับขนาดฟอนต์ตามขนาดของ container ที่มันถูกวางไว้ ทำให้ระบบสามารถแสดงผลได้ดีทั้งบนหน้าจอเล็กและใหญ่ โดยไม่ต้องใช้ JavaScript หรือ Media Queries ซับซ้อน
อีกตัวอย่างคือ การจัดการกับตารางข้อมูลที่มีหลายคอลัมน์ โดยเมื่อ container มีขนาดเล็ก ระบบจะเปลี่ยน layout จากตารางแนวนอนเป็นแนวตั้ง พร้อมแสดงข้อมูลแบบ stack ทำให้ผู้ใช้สามารถเลื่อนดูข้อมูลได้ง่ายขึ้น ขณะที่บนหน้าจอใหญ่ จะแสดงข้อมูลทั้งหมดในรูปแบบตารางปกติ
การใช้ Container Queries ยังช่วยให้ระบบสามารถรองรับการใช้งานในหลายบริบท เช่น การแสดงแดชบอร์ดในหน้าเว็บ หรือใน iframe ที่มีขนาดต่างกัน โดยไม่ต้องเขียนโค้ดแยกต่างหากสำหรับแต่ละกรณี
คำถามที่พบบ่อย
Q: Container Queries ต่างจาก Media Queries อย่างไรในเชิงปฏิบัติ?
A: ความแตกต่างที่สำคัญที่สุดคือแหล่งที่มาของการตัดสินใจ คือ Media Queries ตัดสินใจจากขนาดหน้าจอ (viewport) ในขณะที่ Container Queries ตัดสินใจจากขนาดของ container แม่ที่องค์ประกอบถูกวางไว้ ซึ่งหมายความว่า องค์ประกอบหนึ่งสามารถมีพฤติกรรมต่างกันได้ตามบริบทที่มันถูกใช้งาน ไม่ใช่แค่ตามขนาดหน้าจอ ตัวอย่างเช่น องค์ประกอบที่อยู่ในกริดแคบ อาจแสดงผลแบบแนวตั้ง แต่ถ้าถูกวางในกริดกว้าง ก็อาจแสดงผลแบบแนวนอน โดยไม่ต้องเปลี่ยนโค้ดหรือใช้ JavaScript ช่วย ทำให้ระบบยืดหยุ่นและมีประสิทธิภาพสูงขึ้น โดยเฉพาะในแอปพลิเคชันที่ต้องจัดการกับองค์ประกอบหลายชั้นในหลายบริบท การใช้ Container Queries ช่วยลดความซับซ้อนของโค้ด และทำให้การปรับขนาดและการจัดวางเป็นไปอย่างอัตโนมัติ
Q: การใช้ Container Queries ส่งผลต่อประสิทธิภาพของเว็บไซต์อย่างไร?
A: การใช้ Container Queries ส่งผลในทางบวกต่อประสิทธิภาพอย่างชัดเจน โดยเฉพาะในแง่ของความเร็วในการโหลดและใช้ทรัพยากร ระบบไม่จำเป็นต้องโหลด CSS ทั้งหมดเพื่อประเมินว่าจะแสดงผลอย่างไร แต่สามารถประเมินได้จากขนาดของ container ที่มีอยู่แล้ว ทำให้ลดการใช้แบนด์วิธี และพลังงานของเซิร์ฟเวอร์และอุปกรณ์ผู้ใช้ ซึ่งสอดคล้องกับหลักการ GreenOps โดยเฉพาะในระบบที่ต้องแสดงข้อมูลจำนวนมากในหลายบริบท ระบบสามารถแสดงเฉพาะข้อมูลที่จำเป็นในแต่ละบริบท ช่วยลดภาระการประมวลผล และเพิ่มประสบการณ์ผู้ใช้โดยรวม ยิ่งไปกว่านั้น การไม่ต้องใช้ JavaScript ในการตรวจสอบขนาดหน้าจอหรือ container ยังช่วยลดเวลาในการเริ่มต้นแสดงผล (Time to Interactive) ได้อย่างมีนัยสำคัญ
Q: ควรใช้ Container Queries แทน Media Queries ทั้งหมดหรือไม่?
A: ไม่จำเป็นต้องแทนที่ทั้งหมด แต่ควรใช้ร่วมกันอย่างมีกลยุทธ์ Media Queries ยังมีบทบาทสำคัญในการจัดการกับอุปกรณ์ที่มีขนาดหน้าจอแตกต่างกันอย่างสิ้นเชิง เช่น มือถือ แท็บเล็ต และเดสก์ท็อป ในขณะที่ Container Queries เหมาะกับการจัดการกับการจัดวางภายในองค์ประกอบหรือกริดที่มีความยืดหยุ่นสูง ดังนั้น การผสมผสานทั้งสองแนวทางจะช่วยให้ระบบมีความยืดหยุ่นสูง และสามารถรองรับการเปลี่ยนแปลงได้ดีที่สุดในทุกบริบท การใช้ Media Queries สำหรับการจัดการขนาดหน้าจอหลัก และ Container Queries สำหรับการจัดการขนาดภายในองค์ประกอบ จะทำให้ระบบมีประสิทธิภาพสูงสุดและรองรับการใช้งานได้หลากหลาย
แนะนำเพิ่มเติม
🎯 เปิดบัญชี XM Forex → สมัคร
📱 แอป iCafeFX → ดาวน์โหลด
📊 สัญญาณฟรี → รับสัญญาณ
📚 คู่มือเทรด → SiamCafeBook
🤝 สมัคร Partner XM → pipaffiliates.com/c?c=72816&l=th&p=6
แนะนำจากเครือข่าย SiamCafe
คู่มือ Forex ที่เกี่ยวข้อง
แหล่งอ้างอิง
- SiamCafe.net - ชุมชนไอทีไทยตั้งแต่ปี 1997
- iCafeFX.com - ศูนย์วิเคราะห์ Forex และทองคำ