[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"academy-blogs-th-1-1-all-responsive-design-tailwind-css-ep5-all--*":3,"academy-blog-translations-mnkpzwccli7tb9o":74},{"data":4,"page":73,"perPage":73,"totalItems":73,"totalPages":73},[5],{"alt":6,"collectionId":7,"collectionName":8,"content":9,"cover_image":10,"cover_image_path":11,"created":12,"created_by":13,"expand":14,"id":67,"keywords":68,"locale":44,"published_at":69,"scheduled_at":13,"school_blog":65,"short_description":70,"slug":71,"status":63,"title":6,"updated":72,"updated_by":13,"views":66},"EP 5: Responsive Design ด้วย Tailwind CSS: จอเล็ก-จอใหญ่ สวยครบทุกขนาด","sclblg987654321","school_blog_translations","\u003Cp>ในยุคที่การใช้งานอุปกรณ์มือถือเพิ่มขึ้นอย่างต่อเนื่อง การออกแบบเว็บไซต์ให้รองรับทุกขนาดหน้าจอจึงเป็นสิ่งจำเป็น หลายเว็บไซต์ยังคงดูสวยในเดสก์ท็อป แต่เมื่อเปิดในมือถือกลับใช้งานยาก ถ้าคุณเคยเจอปัญหานี้ แสดงว่าคุณต้องเรียนรู้ Responsive Design ให้ทันสมัย\u003C\u002Fp>\u003Cp>วันนี้เราจะมาดูกันว่า Tailwind CSS ทำให้การสร้างเว็บที่สวยในทุกหน้าจอเป็นเรื่องง่ายได้อย่างไร พร้อมเทคนิคที่โปรแกรมเมอร์ทั่วโลกใช้กัน\u003C\u002Fp>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>ทำความเข้าใจ Breakpoint System ของ Tailwind CSS\u003C\u002Fh2>\u003Cp>Tailwind CSS ได้ออกแบบระบบ Breakpoint ที่เข้าใจง่ายและใช้งานได้จริง โดยแบ่งหน้าจอออกเป็น 5 ขนาดหลัก:\u003C\u002Fp>\u003Ch3>ระบบ Breakpoint มาตรฐาน\u003C\u002Fh3>\u003Cfigure class=\"table\">\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Breakpoint\u003C\u002Fth>\u003Cth>ขนาดหน้าจอ\u003C\u002Fth>\u003Cth>คำอธิบาย\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>\u003Ccode>sm\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>640px+\u003C\u002Ftd>\u003Ctd>มือถือแนวนอน และหน้าจอเล็ก\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>md\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>768px+\u003C\u002Ftd>\u003Ctd>แท็บเล็ต และหน้าจอกลาง\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>lg\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>1024px+\u003C\u002Ftd>\u003Ctd>แล็ปท็อป และหน้าจอใหญ่\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>xl\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>1280px+\u003C\u002Ftd>\u003Ctd>เดสก์ท็อป และหน้าจอใหญ่พิเศษ\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>\u003Ccode>2xl\u003C\u002Fcode>\u003C\u002Ftd>\u003Ctd>1536px+\u003C\u002Ftd>\u003Ctd>จอใหญ่มาก สำหรับ Ultra-wide หรือ 4K\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003C\u002Ffigure>\u003Ch3>วิธีการใช้งาน Breakpoint\u003C\u002Fh3>\u003Cp>การใช้งาน Breakpoint ใน Tailwind ง่ายมาก แค่ใส่ prefix ของขนาดหน้าจอหน้าคลาสที่เราต้องการ:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- ข้อความที่ปรับขนาดตามหน้าจอ --&gt;\n&lt;h1 class=\"text-xl md:text-2xl lg:text-3xl xl:text-4xl\"&gt;\n  หัวข้อที่ปรับขนาดอัตโนมัติ\n&lt;\u002Fh1&gt;\n\n&lt;!-- ปุ่มที่เปลี่ยนขนาดตามหน้าจอ --&gt;\n&lt;button class=\"px-4 py-2 md:px-6 md:py-3 bg-blue-500 text-white rounded hover:bg-blue-600 transition-colors\"&gt;\n  ปุ่มแบบ Responsive\n&lt;\u002Fbutton&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>สิ่งที่น่าสนใจคือ Tailwind ใช้หลัก \u003Cstrong>\"min-width\"\u003C\u002Fstrong> ซึ่งหมายความว่าเมื่อเราใส่ \u003Ccode>md:text-2xl\u003C\u002Fcode> ก็จะมีผลตั้งแต่ขนาด md ขึ้นไป จนกว่าจะมีการกำหนดใหม่ในขนาดที่ใหญ่กว่า\u003C\u002Fp>\u003Ch3>Custom Breakpoints\u003C\u002Fh3>\u003Cp>สำหรับความต้องการเฉพาะ Tailwind รองรับ custom breakpoints:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Breakpoint แบบกำหนดเอง --&gt;\n&lt;div class=\"min-[900px]:text-xl max-[500px]:hidden\"&gt;\n  &lt;!-- จะแสดงข้อความขนาดใหญ่เมื่อหน้าจอกว้างกว่า 900px --&gt;\n  &lt;!-- และซ่อนเมื่อหน้าจอแคบกว่า 500px --&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Mobile-First Approach คืออะไร?\u003C\u002Fh2>\u003Cp>Mobile-First คือหลักการออกแบบที่เริ่มต้นจากมือถือก่อน แล้วค่อยๆ ขยายไปยังหน้าจอใหญ่ ซึ่งตรงข้ามกับแนวคิดเก่าที่เริ่มจากเดสก์ท็อปก่อน\u003C\u002Fp>\u003Ch3>หลักการ Mobile-First\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- แนวคิดเก่า: Desktop-First --&gt;\n&lt;div class=\"w-full lg:w-1\u002F2 md:w-3\u002F4 sm:w-full\"&gt;\n  &lt;!-- เริ่มจาก Desktop แล้วค่อยปรับลง --&gt;\n&lt;\u002Fdiv&gt;\n\n&lt;!-- แนวคิดใหม่: Mobile-First --&gt;\n&lt;div class=\"w-full md:w-3\u002F4 lg:w-1\u002F2\"&gt;\n  &lt;!-- เริ่มจาก Mobile แล้วค่อยปรับขึ้น --&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>ข้อดีของ Mobile-First\u003C\u002Fh3>\u003Cul>\u003Cli>\u003Cstrong>Performance ดีกว่า\u003C\u002Fstrong>: โหลดเร็วในมือถือ เพราะไม่ต้องโหลด CSS ที่ไม่จำเป็น\u003C\u002Fli>\u003Cli>\u003Cstrong>UX ที่เหมาะสม\u003C\u002Fstrong>: บังคับให้เราคิดถึงเนื้อหาสำคัญก่อน\u003C\u002Fli>\u003Cli>\u003Cstrong>SEO-friendly\u003C\u002Fstrong>: Google ให้ความสำคัญกับ Mobile-First Indexing\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>เทคนิค Responsive Layout ขั้นสูง\u003C\u002Fh2>\u003Ch3>การจัดการ Grid แบบ Responsive\u003C\u002Fh3>\u003Cp>Grid เป็นเครื่องมือที่ทรงพลังสำหรับการจัดวางใน Tailwind:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Grid ที่ปรับจำนวนคอลัมน์ตามหน้าจอ --&gt;\n&lt;div class=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4\"&gt;\n  &lt;div class=\"bg-white p-6 rounded-lg shadow\"&gt;การ์ด 1&lt;\u002Fdiv&gt;\n  &lt;div class=\"bg-white p-6 rounded-lg shadow\"&gt;การ์ด 2&lt;\u002Fdiv&gt;\n  &lt;div class=\"bg-white p-6 rounded-lg shadow\"&gt;การ์ด 3&lt;\u002Fdiv&gt;\n  &lt;div class=\"bg-white p-6 rounded-lg shadow\"&gt;การ์ด 4&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\n&lt;!-- Grid แบบ Auto-fit ด้วย CSS Custom --&gt;\n&lt;div class=\"grid gap-4\" style=\"grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\"&gt;\n  &lt;!-- การ์ดจะปรับขนาดอัตโนมัติ --&gt;\n  &lt;div class=\"bg-white p-6 rounded-lg shadow\"&gt;การ์ดอัตโนมัติ 1&lt;\u002Fdiv&gt;\n  &lt;div class=\"bg-white p-6 rounded-lg shadow\"&gt;การ์ดอัตโนมัติ 2&lt;\u002Fdiv&gt;\n  &lt;div class=\"bg-white p-6 rounded-lg shadow\"&gt;การ์ดอัตโนมัติ 3&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>Flexbox Responsive Techniques\u003C\u002Fh3>\u003Cp>Flexbox ยังคงเป็นตัวเลือกที่ดีสำหรับ Layout แบบ 1 มิติ:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Navigation ที่ปรับจาก Vertical เป็น Horizontal --&gt;\n&lt;nav class=\"flex flex-col md:flex-row items-center md:items-start space-y-4 md:space-y-0 md:space-x-6\"&gt;\n  &lt;a href=\"#\" class=\"text-gray-700 hover:text-blue-500 transition-colors\"&gt;หน้าแรก&lt;\u002Fa&gt;\n  &lt;a href=\"#\" class=\"text-gray-700 hover:text-blue-500 transition-colors\"&gt;เกี่ยวกับเรา&lt;\u002Fa&gt;\n  &lt;a href=\"#\" class=\"text-gray-700 hover:text-blue-500 transition-colors\"&gt;ติดต่อ&lt;\u002Fa&gt;\n&lt;\u002Fnav&gt;\n\n&lt;!-- Card Layout ที่ปรับทิศทาง --&gt;\n&lt;div class=\"flex flex-col md:flex-row bg-white rounded-lg shadow-lg overflow-hidden\"&gt;\n  &lt;img class=\"w-full md:w-1\u002F3 h-48 md:h-auto object-cover\" src=\"image.jpg\" alt=\"Card Image\"&gt;\n  &lt;div class=\"p-6 flex-1\"&gt;\n    &lt;h3 class=\"text-xl font-bold mb-2\"&gt;หัวข้อการ์ด&lt;\u002Fh3&gt;\n    &lt;p class=\"text-gray-600\"&gt;เนื้อหาที่อธิบายรายละเอียด&lt;\u002Fp&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>การซ่อน\u002Fแสดง Element\u003C\u002Fh3>\u003Cp>บางครั้งเราต้องการซ่อนหรือแสดง Element ในหน้าจอขนาดต่างๆ:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- แสดงเฉพาะในมือถือ --&gt;\n&lt;div class=\"block md:hidden\"&gt;\n  &lt;button class=\"text-2xl p-2 hover:bg-gray-100 rounded transition-colors\"&gt;☰&lt;\u002Fbutton&gt;\n&lt;\u002Fdiv&gt;\n\n&lt;!-- แสดงเฉพาะในเดสก์ท็อป --&gt;\n&lt;div class=\"hidden md:block\"&gt;\n  &lt;nav class=\"flex space-x-6\"&gt;\n    &lt;a href=\"#\" class=\"hover:text-blue-500 transition-colors\"&gt;หน้าแรก&lt;\u002Fa&gt;\n    &lt;a href=\"#\" class=\"hover:text-blue-500 transition-colors\"&gt;เกี่ยวกับเรา&lt;\u002Fa&gt;\n  &lt;\u002Fnav&gt;\n&lt;\u002Fdiv&gt;\n\n&lt;!-- ซ่อนในแท็บเล็ต แต่แสดงในขนาดอื่น --&gt;\n&lt;div class=\"block md:hidden lg:block\"&gt;\n  &lt;aside class=\"w-64 bg-gray-100 p-4 rounded-lg\"&gt;\n    Sidebar Content\n  &lt;\u002Faside&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>เทคนิคเพิ่มเติมสำหรับมืออาชีพ\u003C\u002Fh2>\u003Ch3>Container Responsive\u003C\u002Fh3>\u003Cp>Container ช่วยให้เราจัดการความกว้างสูงสุดได้อย่างมีประสิทธิภาพ:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Container ที่ปรับขนาดอัตโนมัติ --&gt;\n&lt;div class=\"container mx-auto px-4 sm:px-6 lg:px-8\"&gt;\n  &lt;div class=\"max-w-7xl mx-auto\"&gt;\n    &lt;!-- เนื้อหาจะไม่เกินขนาดที่กำหนด --&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\n&lt;!-- Container แบบกำหนดเอง --&gt;\n&lt;div class=\"w-full max-w-sm mx-auto sm:max-w-md md:max-w-lg lg:max-w-xl xl:max-w-2xl\"&gt;\n  &lt;!-- ปรับความกว้างสูงสุดตามหน้าจอ --&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>Spacing Responsive\u003C\u002Fh3>\u003Cp>การปรับ padding และ margin ตามหน้าจอ:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Padding ที่ปรับตามขนาดหน้าจอ --&gt;\n&lt;section class=\"p-4 md:p-6 lg:p-8 xl:p-12\"&gt;\n  &lt;div class=\"space-y-4 md:space-y-6 lg:space-y-8\"&gt;\n    &lt;!-- เนื้อหาที่มีระยะห่างปรับตามหน้าจอ --&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fsection&gt;\n\n&lt;!-- Margin แบบต่างๆ --&gt;\n&lt;div class=\"mt-4 md:mt-8 lg:mt-12 mb-8 md:mb-12 lg:mb-16\"&gt;\n  &lt;!-- ระยะห่างที่เหมาะสมในทุกหน้าจอ --&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>Image Responsive\u003C\u002Fh3>\u003Cp>การจัดการรูปภาพให้เหมาะสมกับทุกหน้าจอ:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- รูปภาพที่ปรับขนาดตามหน้าจอ --&gt;\n&lt;img class=\"w-full md:w-1\u002F2 lg:w-1\u002F3 h-auto object-cover rounded-lg\" \n     src=\"image.jpg\" \n     loading=\"lazy\"\n     alt=\"Responsive Image\"&gt;\n\n&lt;!-- รูปภาพ Hero แบบ Responsive --&gt;\n&lt;div class=\"relative h-64 md:h-80 lg:h-96\"&gt;\n  &lt;img class=\"w-full h-full object-cover\" \n       src=\"hero.jpg\" \n       loading=\"lazy\"\n       alt=\"Hero Image\"&gt;\n  &lt;div class=\"absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center\"&gt;\n    &lt;h1 class=\"text-white text-2xl md:text-4xl lg:text-5xl font-bold text-center px-4\"&gt;\n      หัวข้อที่ปรับขนาดตามหน้าจอ\n    &lt;\u002Fh1&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\n&lt;!-- Responsive Images with srcset --&gt;\n&lt;img class=\"w-full h-auto object-cover rounded-lg\"\n     src=\"image-mobile.jpg\"\n     srcset=\"image-mobile.jpg 480w, \n             image-tablet.jpg 768w, \n             image-desktop.jpg 1200w\"\n     sizes=\"(max-width: 480px) 100vw, \n            (max-width: 768px) 100vw, \n            1200px\"\n     loading=\"lazy\"\n     alt=\"Optimized responsive image\"&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>Typography Responsive\u003C\u002Fh3>\u003Cp>การจัดการข้อความให้อ่านง่ายในทุกหน้าจอ:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Typography Scale ที่ปรับตามหน้าจอ --&gt;\n&lt;h1 class=\"text-2xl\u002F8 sm:text-3xl\u002F10 md:text-4xl\u002F12 lg:text-5xl\u002F14 font-bold\"&gt;\n  หัวข้อหลักที่มี Line-height ปรับตามขนาด\n&lt;\u002Fh1&gt;\n\n&lt;!-- Responsive Text with Clamp --&gt;\n&lt;h2 class=\"font-bold\" style=\"font-size: clamp(1.5rem, 4vw, 3rem);\"&gt;\n  ข้อความที่ปรับขนาดแบบ Fluid\n&lt;\u002Fh2&gt;\n\n&lt;!-- เนื้อหาที่อ่านง่ายในทุกขนาด --&gt;\n&lt;p class=\"text-sm md:text-base lg:text-lg leading-relaxed md:leading-loose max-w-none md:max-w-3xl lg:max-w-4xl\"&gt;\n  เนื้อหาหลักที่ปรับความกว้างและขนาดตัวอักษรให้เหมาะสมกับการอ่าน\n&lt;\u002Fp&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Dark Mode + Responsive\u003C\u002Fh2>\u003Cp>การรองรับ Dark Mode ร่วมกับ Responsive Design:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Dark Mode + Responsive --&gt;\n&lt;div class=\"bg-white dark:bg-gray-900 \n            p-4 md:p-6 lg:p-8\n            text-gray-900 dark:text-gray-100\n            transition-colors duration-200\"&gt;\n  &lt;h2 class=\"text-xl md:text-2xl lg:text-3xl\n             text-gray-800 dark:text-gray-200\n             font-bold mb-4\"&gt;\n    Responsive + Dark Mode\n  &lt;\u002Fh2&gt;\n  \n  &lt;button class=\"px-4 py-2 md:px-6 md:py-3\n                 bg-blue-500 dark:bg-blue-600\n                 hover:bg-blue-600 dark:hover:bg-blue-700\n                 text-white rounded-lg\n                 transition-all duration-200\"&gt;\n    Dark Mode Button\n  &lt;\u002Fbutton&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Accessibility ใน Responsive Design\u003C\u002Fh2>\u003Cp>การออกแบบ Responsive ที่เข้าถึงได้:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Focus States ที่ Responsive --&gt;\n&lt;button class=\"px-4 py-2 md:px-6 md:py-3\n               bg-blue-500 hover:bg-blue-600\n               focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\n               text-white rounded-lg\n               transition-all duration-200\"&gt;\n  Accessible Responsive Button\n&lt;\u002Fbutton&gt;\n\n&lt;!-- Screen Reader Responsive Content --&gt;\n&lt;nav aria-label=\"Main navigation\"&gt;\n  &lt;div class=\"sr-only md:not-sr-only\"&gt;\n    &lt;span class=\"font-medium\"&gt;Desktop Navigation:&lt;\u002Fspan&gt;\n  &lt;\u002Fdiv&gt;\n  &lt;div class=\"md:sr-only\"&gt;\n    &lt;span class=\"font-medium\"&gt;Mobile Navigation:&lt;\u002Fspan&gt;\n  &lt;\u002Fdiv&gt;\n  \n  &lt;ul class=\"flex flex-col md:flex-row space-y-2 md:space-y-0 md:space-x-4\"&gt;\n    &lt;li&gt;&lt;a href=\"#\" class=\"block p-2 hover:bg-gray-100 rounded transition-colors\"&gt;หน้าแรก&lt;\u002Fa&gt;&lt;\u002Fli&gt;\n    &lt;li&gt;&lt;a href=\"#\" class=\"block p-2 hover:bg-gray-100 rounded transition-colors\"&gt;เกี่ยวกับเรา&lt;\u002Fa&gt;&lt;\u002Fli&gt;\n  &lt;\u002Ful&gt;\n&lt;\u002Fnav&gt;\n\n&lt;!-- Skip Links สำหรับ Responsive --&gt;\n&lt;a href=\"#main-content\" \n   class=\"sr-only focus:not-sr-only focus:absolute focus:top-0 focus:left-0 \n          bg-blue-600 text-white p-2 md:p-4 rounded-br-lg\n          transition-all duration-200 z-50\"&gt;\n  ข้ามไปยังเนื้อหาหลัก\n&lt;\u002Fa&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>โปรเจ็กต์ปฏิบัติ: สร้าง Card Layout แบบ Responsive\u003C\u002Fh2>\u003Cp>ลองมาสร้างการ์ดที่สวยและปรับตัวได้ในทุกหน้าจอ:\u003C\u002Fp>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Card Layout ที่ปรับตัวได้ --&gt;\n&lt;div class=\"container mx-auto px-4 py-8\"&gt;\n  &lt;h2 class=\"text-2xl md:text-3xl lg:text-4xl font-bold text-center mb-8\"&gt;\n    สินค้าแนะนำ\n  &lt;\u002Fh2&gt;\n  \n  &lt;div class=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6\"&gt;\n    &lt;!-- Card 1 --&gt;\n    &lt;div class=\"bg-white dark:bg-gray-800 rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-shadow duration-300 group\"&gt;\n      &lt;div class=\"relative overflow-hidden\"&gt;\n        &lt;img class=\"w-full h-48 object-cover group-hover:scale-105 transition-transform duration-300\" \n             src=\"product1.jpg\" \n             loading=\"lazy\"\n             alt=\"สินค้า 1\"&gt;\n      &lt;\u002Fdiv&gt;\n      &lt;div class=\"p-6\"&gt;\n        &lt;h3 class=\"text-lg font-semibold mb-2 text-gray-800 dark:text-gray-200\"&gt;ชื่อสินค้า 1&lt;\u002Fh3&gt;\n        &lt;p class=\"text-gray-600 dark:text-gray-400 text-sm mb-4 line-clamp-2\"&gt;\n          รายละเอียดสินค้าที่อธิบายคุณสมบัติต่างๆ อย่างละเอียด\n        &lt;\u002Fp&gt;\n        &lt;div class=\"flex items-center justify-between\"&gt;\n          &lt;span class=\"text-xl font-bold text-blue-600 dark:text-blue-400\"&gt;฿1,999&lt;\u002Fspan&gt;\n          &lt;button class=\"px-4 py-2 bg-blue-500 hover:bg-blue-600 dark:bg-blue-600 dark:hover:bg-blue-700 \n                         text-white rounded-lg transition-colors duration-200\n                         focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"&gt;\n            ซื้อเลย\n          &lt;\u002Fbutton&gt;\n        &lt;\u002Fdiv&gt;\n      &lt;\u002Fdiv&gt;\n    &lt;\u002Fdiv&gt;\n    \n    &lt;!-- Card 2 --&gt;\n    &lt;div class=\"bg-white dark:bg-gray-800 rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-shadow duration-300 group\"&gt;\n      &lt;div class=\"relative overflow-hidden\"&gt;\n        &lt;img class=\"w-full h-48 object-cover group-hover:scale-105 transition-transform duration-300\" \n             src=\"product2.jpg\" \n             loading=\"lazy\"\n             alt=\"สินค้า 2\"&gt;\n      &lt;\u002Fdiv&gt;\n      &lt;div class=\"p-6\"&gt;\n        &lt;h3 class=\"text-lg font-semibold mb-2 text-gray-800 dark:text-gray-200\"&gt;ชื่อสินค้า 2&lt;\u002Fh3&gt;\n        &lt;p class=\"text-gray-600 dark:text-gray-400 text-sm mb-4 line-clamp-2\"&gt;\n          รายละเอียดสินค้าที่อธิบายคุณสมบัติต่างๆ อย่างละเอียด\n        &lt;\u002Fp&gt;\n        &lt;div class=\"flex items-center justify-between\"&gt;\n          &lt;span class=\"text-xl font-bold text-blue-600 dark:text-blue-400\"&gt;฿2,999&lt;\u002Fspan&gt;\n          &lt;button class=\"px-4 py-2 bg-blue-500 hover:bg-blue-600 dark:bg-blue-600 dark:hover:bg-blue-700 \n                         text-white rounded-lg transition-colors duration-200\n                         focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"&gt;\n            ซื้อเลย\n          &lt;\u002Fbutton&gt;\n        &lt;\u002Fdiv&gt;\n      &lt;\u002Fdiv&gt;\n    &lt;\u002Fdiv&gt;\n    \n    &lt;!-- Card 3 --&gt;\n    &lt;div class=\"bg-white dark:bg-gray-800 rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-shadow duration-300 group\"&gt;\n      &lt;div class=\"relative overflow-hidden\"&gt;\n        &lt;img class=\"w-full h-48 object-cover group-hover:scale-105 transition-transform duration-300\" \n             src=\"product3.jpg\" \n             loading=\"lazy\"\n             alt=\"สินค้า 3\"&gt;\n      &lt;\u002Fdiv&gt;\n      &lt;div class=\"p-6\"&gt;\n        &lt;h3 class=\"text-lg font-semibold mb-2 text-gray-800 dark:text-gray-200\"&gt;ชื่อสินค้า 3&lt;\u002Fh3&gt;\n        &lt;p class=\"text-gray-600 dark:text-gray-400 text-sm mb-4 line-clamp-2\"&gt;\n          รายละเอียดสินค้าที่อธิบายคุณสมบัติต่างๆ อย่างละเอียด\n        &lt;\u002Fp&gt;\n        &lt;div class=\"flex items-center justify-between\"&gt;\n          &lt;span class=\"text-xl font-bold text-blue-600 dark:text-blue-400\"&gt;฿3,999&lt;\u002Fspan&gt;\n          &lt;button class=\"px-4 py-2 bg-blue-500 hover:bg-blue-600 dark:bg-blue-600 dark:hover:bg-blue-700 \n                         text-white rounded-lg transition-colors duration-200\n                         focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"&gt;\n            ซื้อเลย\n          &lt;\u002Fbutton&gt;\n        &lt;\u002Fdiv&gt;\n      &lt;\u002Fdiv&gt;\n    &lt;\u002Fdiv&gt;\n    \n    &lt;!-- Card 4 --&gt;\n    &lt;div class=\"bg-white dark:bg-gray-800 rounded-xl shadow-lg overflow-hidden hover:shadow-xl transition-shadow duration-300 group\"&gt;\n      &lt;div class=\"relative overflow-hidden\"&gt;\n        &lt;img class=\"w-full h-48 object-cover group-hover:scale-105 transition-transform duration-300\" \n             src=\"product4.jpg\" \n             loading=\"lazy\"\n             alt=\"สินค้า 4\"&gt;\n      &lt;\u002Fdiv&gt;\n      &lt;div class=\"p-6\"&gt;\n        &lt;h3 class=\"text-lg font-semibold mb-2 text-gray-800 dark:text-gray-200\"&gt;ชื่อสินค้า 4&lt;\u002Fh3&gt;\n        &lt;p class=\"text-gray-600 dark:text-gray-400 text-sm mb-4 line-clamp-2\"&gt;\n          รายละเอียดสินค้าที่อธิบายคุณสมบัติต่างๆ อย่างละเอียด\n        &lt;\u002Fp&gt;\n        &lt;div class=\"flex items-center justify-between\"&gt;\n          &lt;span class=\"text-xl font-bold text-blue-600 dark:text-blue-400\"&gt;฿4,999&lt;\u002Fspan&gt;\n          &lt;button class=\"px-4 py-2 bg-blue-500 hover:bg-blue-600 dark:bg-blue-600 dark:hover:bg-blue-700 \n                         text-white rounded-lg transition-colors duration-200\n                         focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"&gt;\n            ซื้อเลย\n          &lt;\u002Fbutton&gt;\n        &lt;\u002Fdiv&gt;\n      &lt;\u002Fdiv&gt;\n    &lt;\u002Fdiv&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>\u003Cstrong>Card Layout นี้จะแสดงผลแบบ:\u003C\u002Fstrong>\u003C\u002Fp>\u003Cul>\u003Cli>\u003Cstrong>มือถือ\u003C\u002Fstrong>: 1 คอลัมน์\u003C\u002Fli>\u003Cli>\u003Cstrong>แท็บเล็ตเล็ก\u003C\u002Fstrong>: 2 คอลัมน์\u003C\u002Fli>\u003Cli>\u003Cstrong>แล็ปท็อป\u003C\u002Fstrong>: 3 คอลัมน์\u003C\u002Fli>\u003Cli>\u003Cstrong>เดสก์ท็อป\u003C\u002Fstrong>: 4 คอลัมน์\u003C\u002Fli>\u003C\u002Ful>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Performance Tips สำหรับ Responsive Design\u003C\u002Fh2>\u003Ch3>1. Image Optimization\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- รูปภาพที่ปรับขนาดตาม viewport --&gt;\n&lt;picture&gt;\n  &lt;source media=\"(max-width: 640px)\" srcset=\"image-mobile.webp\" type=\"image\u002Fwebp\"&gt;\n  &lt;source media=\"(max-width: 1024px)\" srcset=\"image-tablet.webp\" type=\"image\u002Fwebp\"&gt;\n  &lt;source srcset=\"image-desktop.webp\" type=\"image\u002Fwebp\"&gt;\n  &lt;img class=\"w-full h-auto object-cover\" \n       src=\"image-desktop.jpg\" \n       loading=\"lazy\"\n       decoding=\"async\"\n       alt=\"Optimized responsive image\"&gt;\n&lt;\u002Fpicture&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>2. CSS Optimization\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- ใช้ transform แทนการเปลี่ยน layout properties --&gt;\n&lt;div class=\"transform hover:scale-105 md:hover:scale-110 transition-transform duration-300\"&gt;\n  Performance-friendly animation\n&lt;\u002Fdiv&gt;\n\n&lt;!-- หลีกเลี่ยงการใช้ !important และ inline styles มากเกินไป --&gt;\n&lt;div class=\"w-full md:w-auto\" style=\"max-width: clamp(300px, 50vw, 600px);\"&gt;\n  ใช้ CSS custom properties เมื่อจำเป็น\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>3. Content Loading Strategy\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Lazy load content ที่ไม่จำเป็นในมือถือ --&gt;\n&lt;div class=\"hidden md:block\"&gt;\n  &lt;div class=\"lazy-load\" data-src=\"heavy-content.html\"&gt;\n    &lt;!-- Content ที่หนักจะโหลดเฉพาะในเดสก์ท็อป --&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Best Practices และข้อควรระวัง\u003C\u002Fh2>\u003Ch3>✅ สิ่งที่ควรทำ\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- 1. เริ่มจาก Mobile-First --&gt;\n&lt;div class=\"text-sm md:text-base lg:text-lg\"&gt;\n  ขนาดข้อความที่เหมาะสม\n&lt;\u002Fdiv&gt;\n\n&lt;!-- 2. ใช้ Semantic HTML --&gt;\n&lt;main class=\"container mx-auto px-4 md:px-6 lg:px-8\"&gt;\n  &lt;article class=\"max-w-4xl mx-auto\"&gt;\n    &lt;!-- เนื้อหาหลัก --&gt;\n  &lt;\u002Farticle&gt;\n&lt;\u002Fmain&gt;\n\n&lt;!-- 3. ทดสอบในหน้าจอจริง --&gt;\n&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>❌ สิ่งที่ควรหลีกเลี่ยง\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- 1. อย่าใช้ breakpoint มากเกินไป --&gt;\n&lt;!-- ❌ ไม่แนะนำ --&gt;\n&lt;div class=\"text-xs sm:text-sm md:text-base lg:text-lg xl:text-xl 2xl:text-2xl\"&gt;\n  มากเกินไป\n&lt;\u002Fdiv&gt;\n\n&lt;!-- ✅ แนะนำ --&gt;\n&lt;div class=\"text-sm md:text-base lg:text-lg\"&gt;\n  เพียงพอ\n&lt;\u002Fdiv&gt;\n\n&lt;!-- 2. อย่าลืม alt text และ loading attributes --&gt;\n&lt;!-- ❌ ไม่แนะนำ --&gt;\n&lt;img class=\"w-full h-auto\" src=\"image.jpg\"&gt;\n\n&lt;!-- ✅ แนะนำ --&gt;\n&lt;img class=\"w-full h-auto object-cover\" \n     src=\"image.jpg\" \n     loading=\"lazy\"\n&lt;!-- 3. อย่าใช้ fixed dimensions --&gt;\n&lt;!-- ❌ ไม่แนะนำ --&gt;\n&lt;div class=\"w-[300px] h-[200px]\"&gt;\n  ขนาดตายตัว\n&lt;\u002Fdiv&gt;\n\n&lt;!-- ✅ แนะนำ --&gt;\n&lt;div class=\"w-full max-w-sm md:max-w-md lg:max-w-lg\"&gt;\n  ขนาดที่ยืดหยุ่น\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Debugging Responsive Design\u003C\u002Fh2>\u003Ch3>เครื่องมือสำหรับทดสอบ\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- เพิ่ม debug classes ชั่วคราว --&gt;\n&lt;div class=\"bg-red-200 sm:bg-green-200 md:bg-blue-200 lg:bg-yellow-200 xl:bg-purple-200 2xl:bg-pink-200\"&gt;\n  &lt;!-- จะเปลี่ยนสีตาม breakpoint --&gt;\n  &lt;p class=\"text-center font-bold\"&gt;\n    &lt;span class=\"sm:hidden\"&gt;XS&lt;\u002Fspan&gt;\n    &lt;span class=\"hidden sm:inline md:hidden\"&gt;SM&lt;\u002Fspan&gt;\n    &lt;span class=\"hidden md:inline lg:hidden\"&gt;MD&lt;\u002Fspan&gt;\n    &lt;span class=\"hidden lg:inline xl:hidden\"&gt;LG&lt;\u002Fspan&gt;\n    &lt;span class=\"hidden xl:inline 2xl:hidden\"&gt;XL&lt;\u002Fspan&gt;\n    &lt;span class=\"hidden 2xl:inline\"&gt;2XL&lt;\u002Fspan&gt;\n  &lt;\u002Fp&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>Common Issues และวิธีแก้ไข\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- ปัญหา: Text overflow ในมือถือ --&gt;\n&lt;!-- ❌ ปัญหา --&gt;\n&lt;h1 class=\"text-4xl font-bold\"&gt;\n  หัวข้อยาวมากที่อาจจะล้นในหน้าจอเล็ก\n&lt;\u002Fh1&gt;\n\n&lt;!-- ✅ แก้ไข --&gt;\n&lt;h1 class=\"text-2xl md:text-3xl lg:text-4xl font-bold break-words\"&gt;\n  หัวข้อยาวมากที่อาจจะล้นในหน้าจอเล็ก\n&lt;\u002Fh1&gt;\n\n&lt;!-- ปัญหา: Image ไม่ responsive --&gt;\n&lt;!-- ❌ ปัญหา --&gt;\n&lt;img src=\"large-image.jpg\" width=\"800\" height=\"600\"&gt;\n\n&lt;!-- ✅ แก้ไข --&gt;\n&lt;img class=\"w-full h-auto max-w-2xl mx-auto\" \n     src=\"large-image.jpg\" \n     loading=\"lazy\"\n     alt=\"รูปภาพขนาดใหญ่\"&gt;\n\n&lt;!-- ปัญหา: Layout พัง เมื่อเนื้อหายาว --&gt;\n&lt;!-- ❌ ปัญหา --&gt;\n&lt;div class=\"flex\"&gt;\n  &lt;div class=\"w-1\u002F3\"&gt;เนื้อหาสั้น&lt;\u002Fdiv&gt;\n  &lt;div class=\"w-2\u002F3\"&gt;เนื้อหายาวมากๆ ที่อาจทำให้ layout พัง&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\n&lt;!-- ✅ แก้ไข --&gt;\n&lt;div class=\"flex flex-col md:flex-row gap-4\"&gt;\n  &lt;div class=\"md:w-1\u002F3 flex-shrink-0\"&gt;เนื้อหาสั้น&lt;\u002Fdiv&gt;\n  &lt;div class=\"md:w-2\u002F3 min-w-0\"&gt;เนื้อหายาวมากๆ ที่อาจทำให้ layout พัง&lt;\u002Fdiv&gt;\n&lt;\u002Fdiv&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Advanced Responsive Patterns\u003C\u002Fh2>\u003Ch3>1. Responsive Navigation Pattern\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Advanced Navigation ที่ปรับตัวได้ --&gt;\n&lt;nav class=\"bg-white shadow-lg\"&gt;\n  &lt;div class=\"container mx-auto px-4\"&gt;\n    &lt;div class=\"flex justify-between items-center h-16\"&gt;\n      &lt;!-- Logo --&gt;\n      &lt;div class=\"flex-shrink-0\"&gt;\n        &lt;img class=\"h-8 w-auto\" src=\"logo.svg\" alt=\"Logo\"&gt;\n      &lt;\u002Fdiv&gt;\n      \n      &lt;!-- Desktop Navigation --&gt;\n      &lt;div class=\"hidden md:block\"&gt;\n        &lt;div class=\"ml-10 flex items-baseline space-x-4\"&gt;\n          &lt;a href=\"#\" class=\"px-3 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-gray-50 transition-colors\"&gt;\n            หน้าแรก\n          &lt;\u002Fa&gt;\n          &lt;a href=\"#\" class=\"px-3 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-gray-50 transition-colors\"&gt;\n            เกี่ยวกับเรา\n          &lt;\u002Fa&gt;\n          &lt;a href=\"#\" class=\"px-3 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-gray-50 transition-colors\"&gt;\n            บริการ\n          &lt;\u002Fa&gt;\n          &lt;a href=\"#\" class=\"px-3 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-gray-50 transition-colors\"&gt;\n            ติดต่อ\n          &lt;\u002Fa&gt;\n        &lt;\u002Fdiv&gt;\n      &lt;\u002Fdiv&gt;\n      \n      &lt;!-- Mobile menu button --&gt;\n      &lt;div class=\"md:hidden\"&gt;\n        &lt;button type=\"button\" \n                class=\"inline-flex items-center justify-center p-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500\"\n                aria-controls=\"mobile-menu\" \n                aria-expanded=\"false\"&gt;\n          &lt;span class=\"sr-only\"&gt;เปิดเมนู&lt;\u002Fspan&gt;\n          &lt;svg class=\"h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"&gt;\n            &lt;path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 12h16M4 18h16\" \u002F&gt;\n          &lt;\u002Fsvg&gt;\n        &lt;\u002Fbutton&gt;\n      &lt;\u002Fdiv&gt;\n    &lt;\u002Fdiv&gt;\n  &lt;\u002Fdiv&gt;\n\n  &lt;!-- Mobile menu --&gt;\n  &lt;div class=\"md:hidden\" id=\"mobile-menu\"&gt;\n    &lt;div class=\"px-2 pt-2 pb-3 space-y-1 sm:px-3 bg-gray-50\"&gt;\n      &lt;a href=\"#\" class=\"block px-3 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-white transition-colors\"&gt;\n        หน้าแรก\n      &lt;\u002Fa&gt;\n      &lt;a href=\"#\" class=\"block px-3 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-white transition-colors\"&gt;\n        เกี่ยวกับเรา\n      &lt;\u002Fa&gt;\n      &lt;a href=\"#\" class=\"block px-3 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-white transition-colors\"&gt;\n        บริการ\n      &lt;\u002Fa&gt;\n      &lt;a href=\"#\" class=\"block px-3 py-2 rounded-md text-gray-700 hover:text-blue-600 hover:bg-white transition-colors\"&gt;\n        ติดต่อ\n      &lt;\u002Fa&gt;\n    &lt;\u002Fdiv&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fnav&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>2. Responsive Hero Section\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Hero Section ที่ปรับตัวได้ --&gt;\n&lt;section class=\"relative min-h-screen flex items-center justify-center overflow-hidden\"&gt;\n  &lt;!-- Background Image --&gt;\n  &lt;div class=\"absolute inset-0 z-0\"&gt;\n    &lt;picture&gt;\n      &lt;source media=\"(max-width: 640px)\" srcset=\"hero-mobile.webp\" type=\"image\u002Fwebp\"&gt;\n      &lt;source media=\"(max-width: 1024px)\" srcset=\"hero-tablet.webp\" type=\"image\u002Fwebp\"&gt;\n      &lt;source srcset=\"hero-desktop.webp\" type=\"image\u002Fwebp\"&gt;\n      &lt;img class=\"w-full h-full object-cover\" \n           src=\"hero-desktop.jpg\" \n           alt=\"Hero background\"&gt;\n    &lt;\u002Fpicture&gt;\n    &lt;div class=\"absolute inset-0 bg-black bg-opacity-40\"&gt;&lt;\u002Fdiv&gt;\n  &lt;\u002Fdiv&gt;\n  \n  &lt;!-- Content --&gt;\n  &lt;div class=\"relative z-10 text-center px-4 sm:px-6 lg:px-8 max-w-4xl mx-auto\"&gt;\n    &lt;h1 class=\"text-4xl sm:text-5xl md:text-6xl lg:text-7xl font-bold text-white mb-6 leading-tight\"&gt;\n      สร้างอนาคต&lt;br class=\"hidden sm:inline\"&gt;\n      &lt;span class=\"text-blue-400\"&gt;ด้วยเทคโนโลยี&lt;\u002Fspan&gt;\n    &lt;\u002Fh1&gt;\n    \n    &lt;p class=\"text-xl sm:text-2xl text-gray-200 mb-8 max-w-2xl mx-auto leading-relaxed\"&gt;\n      เราช่วยให้คุณสร้างเว็บไซต์และแอปพลิเคชันที่ทันสมัย ใช้งานง่าย และตอบสนองความต้องการของผู้ใช้\n    &lt;\u002Fp&gt;\n    \n    &lt;div class=\"flex flex-col sm:flex-row gap-4 justify-center\"&gt;\n      &lt;button class=\"px-8 py-4 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"&gt;\n        เริ่มต้นเลย\n      &lt;\u002Fbutton&gt;\n      &lt;button class=\"px-8 py-4 border-2 border-white text-white hover:bg-white hover:text-gray-900 font-medium rounded-lg transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-white focus:ring-offset-2\"&gt;\n        เรียนรู้เพิ่มเติม\n      &lt;\u002Fbutton&gt;\n    &lt;\u002Fdiv&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fsection&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>3. Responsive Form Layout\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Form ที่ปรับตัวได้ --&gt;\n&lt;form class=\"max-w-4xl mx-auto p-6 bg-white rounded-lg shadow-lg\"&gt;\n  &lt;h2 class=\"text-2xl md:text-3xl font-bold text-center mb-8\"&gt;ติดต่อเรา&lt;\u002Fh2&gt;\n  \n  &lt;div class=\"grid grid-cols-1 md:grid-cols-2 gap-6\"&gt;\n    &lt;!-- ชื่อ --&gt;\n    &lt;div&gt;\n      &lt;label for=\"firstName\" class=\"block text-sm font-medium text-gray-700 mb-2\"&gt;\n        ชื่อ\n      &lt;\u002Flabel&gt;\n      &lt;input type=\"text\" \n             id=\"firstName\" \n             name=\"firstName\"\n             class=\"w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all duration-200\"\n             placeholder=\"กรุณากรอกชื่อ\"&gt;\n    &lt;\u002Fdiv&gt;\n    \n    &lt;!-- นามสกุล --&gt;\n    &lt;div&gt;\n      &lt;label for=\"lastName\" class=\"block text-sm font-medium text-gray-700 mb-2\"&gt;\n        นามสกุล\n      &lt;\u002Flabel&gt;\n      &lt;input type=\"text\" \n             id=\"lastName\" \n             name=\"lastName\"\n             class=\"w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all duration-200\"\n             placeholder=\"กรุณากรอกนามสกุล\"&gt;\n    &lt;\u002Fdiv&gt;\n    \n    &lt;!-- อีเมล --&gt;\n    &lt;div class=\"md:col-span-2\"&gt;\n      &lt;label for=\"email\" class=\"block text-sm font-medium text-gray-700 mb-2\"&gt;\n        อีเมล\n      &lt;\u002Flabel&gt;\n      &lt;input type=\"email\" \n             id=\"email\" \n             name=\"email\"\n             class=\"w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all duration-200\"\n             placeholder=\"example@email.com\"&gt;\n    &lt;\u002Fdiv&gt;\n    \n    &lt;!-- ข้อความ --&gt;\n    &lt;div class=\"md:col-span-2\"&gt;\n      &lt;label for=\"message\" class=\"block text-sm font-medium text-gray-700 mb-2\"&gt;\n        ข้อความ\n      &lt;\u002Flabel&gt;\n      &lt;textarea id=\"message\" \n                name=\"message\" \n                rows=\"4\"\n                class=\"w-full px-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all duration-200 resize-none\"\n                placeholder=\"กรุณาใส่ข้อความที่ต้องการสอบถาม\"&gt;&lt;\u002Ftextarea&gt;\n    &lt;\u002Fdiv&gt;\n    \n    &lt;!-- ปุ่มส่ง --&gt;\n    &lt;div class=\"md:col-span-2 text-center\"&gt;\n      &lt;button type=\"submit\" \n              class=\"w-full sm:w-auto px-8 py-3 bg-blue-600 hover:bg-blue-700 text-white font-medium rounded-lg transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2\"&gt;\n        ส่งข้อความ\n      &lt;\u002Fbutton&gt;\n    &lt;\u002Fdiv&gt;\n  &lt;\u002Fdiv&gt;\n&lt;\u002Fform&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch2>Testing Responsive Design\u003C\u002Fh2>\u003Ch3>1. Device Testing Checklist\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- เพิ่ม meta tag สำหรับ responsive --&gt;\n&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no\"&gt;\n\n&lt;!-- รองรับ iOS Safe Area --&gt;\n&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\"&gt;\n\n&lt;!-- CSS สำหรับ Safe Area --&gt;\n&lt;style&gt;\n  .safe-area-padding {\n    padding-left: env(safe-area-inset-left);\n    padding-right: env(safe-area-inset-right);\n    padding-top: env(safe-area-inset-top);\n    padding-bottom: env(safe-area-inset-bottom);\n  }\n&lt;\u002Fstyle&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Ch3>2. Performance Testing\u003C\u002Fh3>\u003Cpre>\u003Ccode class=\"language-html\">&lt;!-- Optimize สำหรับ Core Web Vitals --&gt;\n&lt;link rel=\"preload\" href=\"critical.css\" as=\"style\"&gt;\n&lt;link rel=\"preload\" href=\"hero-image.webp\" as=\"image\"&gt;\n\n&lt;!-- Resource Hints --&gt;\n&lt;link rel=\"dns-prefetch\" href=\"\u002F\u002Ffonts.googleapis.com\"&gt;\n&lt;link rel=\"preconnect\" href=\"\u002F\u002Ffonts.gstatic.com\" crossorigin&gt;\n\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>&nbsp;\u003C\u002Fp>\u003Chr>\u003Cp>&nbsp;\u003C\u002Fp>\u003Ch3>สรุป\u003C\u002Fh3>\u003Cp>Responsive Design ด้วย Tailwind CSS ไม่ได้ยากอย่างที่คิด เพียงแค่เข้าใจระบบ Breakpoint และหลักการ Mobile-First เราก็สามารถสร้างเว็บไซต์ที่สวยงามในทุกหน้าจอได้อย่างง่ายดาย\u003C\u002Fp>\u003Ch4>จุดสำคัญที่ต้องจำ:\u003C\u002Fh4>\u003Col>\u003Cli>\u003Cstrong>เริ่มจากมือถือก่อน\u003C\u002Fstrong> แล้วค่อยขยายไปหน้าจอใหญ่\u003C\u002Fli>\u003Cli>\u003Cstrong>ใช้ Breakpoint อย่างสมเหตุสมผล\u003C\u002Fstrong> ไม่ต้องใส่ทุกขนาด\u003C\u002Fli>\u003Cli>\u003Cstrong>ทดสอบในหน้าจอขนาดต่างๆ\u003C\u002Fstrong> เสมอ\u003C\u002Fli>\u003Cli>\u003Cstrong>ให้ความสำคัญกับ Performance และ Accessibility\u003C\u002Fstrong>\u003C\u002Fli>\u003Cli>\u003Cstrong>ใช้ Semantic HTML\u003C\u002Fstrong> และ proper attributes\u003C\u002Fli>\u003Cli>\u003Cstrong>คำนึงถึง Dark Mode\u003C\u002Fstrong> และ user preferences\u003C\u002Fli>\u003C\u002Fol>\u003Ch4>เทคนิคที่ครอบคลุม:\u003C\u002Fh4>\u003Cul>\u003Cli>✅ ระบบ Breakpoint แบบ Mobile-First\u003C\u002Fli>\u003Cli>✅ Grid และ Flexbox Responsive\u003C\u002Fli>\u003Cli>✅ Typography และ Spacing Responsive\u003C\u002Fli>\u003Cli>✅ Image Optimization และ Performance\u003C\u002Fli>\u003Cli>✅ Dark Mode Integration\u003C\u002Fli>\u003Cli>✅ Accessibility Best Practices\u003C\u002Fli>\u003Cli>✅ Advanced Layout Patterns\u003C\u002Fli>\u003Cli>✅ Debugging และ Testing Strategies\u003C\u002Fli>\u003C\u002Ful>\u003Cp>ในตอนถัดไป \u003Cstrong>EP 6\u003C\u002Fstrong> เราจะมาเรียนรู้เรื่อง \u003Cstrong>Animation และ Transition\u003C\u002Fstrong> ที่จะทำให้เว็บไซต์ของเราดูมีชีวิตชีวาและน่าสนใจยิ่งขึ้น พร้อมเทคนิคการสร้างเอฟเฟ็กต์สุดเจ๋งแค่ใส่คลาส!\u003C\u002Fp>\u003Cp>พร้อมเป็นมือโปร Tailwind CSS แล้วหรือยัง? ติดตาม \u003Cstrong>Superdev School\u003C\u002Fstrong> เพื่อเรียนรู้เทคนิคเจ๋งๆ อีกมากมาย และอย่าลืมฝึกฝนด้วยการสร้างโปรเจ็กต์จริงนะครับ! 🚀\u003C\u002Fp>\u003Cp>\u003Cstrong>อ่านบทความ Series อื่นๆ\u003C\u002Fstrong>\u003C\u002Fp>\u003Cul>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FGolang\">\u003Cstrong>Golang The Series\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FJS2GO\">\u003Cstrong>JS2GO\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003Cli>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002Fblogs\u002Fcategories\u002FTailwind%20CSS\">\u003Cstrong>10 Ep ที่จะให้คุณเป็นมือโปร Tailwind CSS ในชั่วข้ามคืน\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fli>\u003C\u002Ful>\u003Cp>\u003Cstrong>🔵 Facebook: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.facebook.com\u002Fsuperdev.school.th\">\u003Cstrong>Superdev School &nbsp;(Superdev)\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>📸 Instagram: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.instagram.com\u002Fsuperdevschool\u002F\">\u003Cstrong>superdevschool\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp>\u003Cstrong>🎬 TikTok: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.tiktok.com\u002F@superdevschool\">\u003Cstrong>superdevschool\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\u003Cp class=\"\" data-start=\"5978\" data-end=\"6095\">\u003Cstrong>🌐 Website: \u003C\u002Fstrong>\u003Ca target=\"_blank\" rel=\"noopener noreferrer\" href=\"https:\u002F\u002Fwww.superdev.school\u002F\">\u003Cstrong>www.superdev.school\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>","9_11zon_1_ck8uzxwaud.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclblg987654321\u002Fhm05wojfg3sbw81\u002F9_11zon_1_ck8uzxwaud.webp","2026-03-04 08:26:46.222Z","",{"keywords":15,"locale":38,"school_blog":48},[16,23,28,33],{"collectionId":17,"collectionName":18,"created":19,"created_by":13,"id":20,"name":21,"updated":22,"updated_by":13},"sclkey987654321","school_keywords","2026-03-04 08:26:35.002Z","eq1u1plwlvvr2rh","Tailwind CSS","2026-04-10 16:07:31.210Z",{"collectionId":17,"collectionName":18,"created":24,"created_by":13,"id":25,"name":26,"updated":27,"updated_by":13},"2026-03-04 08:26:36.163Z","hwfo0itcn5mxejb","responsive design","2026-04-10 16:07:31.508Z",{"collectionId":17,"collectionName":18,"created":29,"created_by":13,"id":30,"name":31,"updated":32,"updated_by":13},"2026-03-04 08:26:45.284Z","4rzdk0vis9kf77i","CSS Framework","2026-04-10 16:07:34.310Z",{"collectionId":17,"collectionName":18,"created":34,"created_by":13,"id":35,"name":36,"updated":37,"updated_by":13},"2026-03-04 08:19:55.412Z","hz7yzm54i2o6cl7","web development","2026-04-10 16:07:24.402Z",{"code":39,"collectionId":40,"collectionName":41,"created":42,"flag":43,"id":44,"is_default":45,"label":46,"updated":47},"th","pbc_1989393366","locales","2026-01-22 10:59:55.832Z","twemoji:flag-thailand","s8wri3bt4vgg2ji",true,"Thai","2026-04-10 15:42:46.614Z",{"category":49,"collectionId":50,"collectionName":51,"expand":52,"id":65,"views":66},"i22e96fj41lsws7","pbc_2105096300","school_blogs",{"category":53},{"blogIds":54,"collectionId":55,"collectionName":56,"created":57,"created_by":13,"id":49,"image":58,"image_alt":13,"image_path":59,"label":60,"name":21,"priority":61,"publish_at":62,"scheduled_at":13,"status":63,"updated":64,"updated_by":13},[],"sclcatblg987654321","school_category_blogs","2026-03-04 08:26:33.946Z","vzv2yduhfk_hs035tvsww.webp","https:\u002F\u002Ftwsme-r2.tumwebsme.com\u002Fsclcatblg987654321\u002Fi22e96fj41lsws7\u002Fvzv2yduhfk_hs035tvsww.webp",{"en":21,"th":21},10,"2025-07-25 05:27:14.926Z","published","2026-04-25 02:32:14.403Z","mnkpzwccli7tb9o",235,"hm05wojfg3sbw81",[20,25,30,35],"2025-07-22 05:02:58.812Z","เรียนรู้เทคนิค Responsive Design ด้วย Tailwind CSS แบบมืออาชีพ ครอบคลุม Breakpoint System, Mobile-First Approach และเทคนิคการจัด Layout ที่ปรับตัวได้ทุกหน้าจอ พร้อมโค้ดตัวอย่างที่ใช้งานได้จริง","responsive-design-tailwind-css-ep5","2026-04-25 02:47:18.775Z",1,{"th":71}]