CSS Grid زندگی توسعه دهندگان را آسان تر می کند، زیرا امکان ایجاد طرح بندی های منحصر به فرد را بدون زحمت فراهم می کند. در آموزش امروز ما از CSS Grid برای ساختن یک شبکه تصویر پاسخگو استفاده خواهیم کرد که از یک طرح بندی به سبک سنگ تراشی بر روی صفحه نمایش دسکتاپ پیروی می کند.

چیدمان سنگ تراشی تصویر ما

مثل همیشه، به پروژه تمام شده ما نگاهی بیندازید:

حتما بررسی کنید نسخه تمام صفحهو اندازه پنجره مرورگر خود را تغییر دهید تا متوجه شوید که چیدمان بسته به اندازه صفحه چگونه تغییر می کند.

اطلاعات

این یک طرح بندی 100% CSS است – اصلاً جاوا اسکریپت لازم نیست!

1. در مورد چیدمان تصمیم بگیرید

دمو امروز به مراکش اختصاص دارد. شبکه تصویر ما زیبایی این کشور شگفت انگیز را از طریق 11 خیره کننده نشان می دهد پاشیدن عکس ها

در صفحه نمایش های تا 849 پیکسل، ما یک طرح دو ستونی مانند این خواهیم داشت:

شبکه تصویر در صفحه نمایش های کوچکشبکه تصویر در صفحه نمایش های کوچکشبکه تصویر در صفحه نمایش های کوچک

همانطور که می بینید، فقط برای اینکه چیدمان کمی متمایزتر شود، یکی از تصاویر (نهمین تصویر) روی ردیف خودش قرار می گیرد و دو برابر بقیه بزرگتر است.

در صفحاتی که حداقل 850 پیکسل هستند، تصاویر ما در داخل یک طرح بنایی مانند این قرار می گیرند:

شبکه تصویر در صفحه نمایش های بزرگشبکه تصویر در صفحه نمایش های بزرگشبکه تصویر در صفحه نمایش های بزرگ

قدرت واقعی CSS Grid این است که به ما این توانایی را می دهد که فقط با چند تغییر سبک، طرح بندی فوق را تغییر دهیم. به عنوان مثال، در اینجا نسخه دیگری از آن وجود دارد:

یک نسخه جایگزین از شبکه تصویریک نسخه جایگزین از شبکه تصویریک نسخه جایگزین از شبکه تصویر

در گذشته، برای ساخت این نوع طرح‌بندی‌ها، توسعه‌دهندگان مجبور بودند از یک کتابخانه جاوا اسکریپت مانند Masonry.js.

2. علامت گذاری HTML را تعریف کنید

برای توسعه این شبکه، تنها چیزی که نیاز داریم یک لیست نامرتب است. هر تصویر در یک آیتم لیست زندگی می کند.

در اینجا ساختار مورد نیاز است:

در نظر بگیرید که این نشانه گذاری چقدر تمیز است. CSS Grid برای این نوع طرح‌بندی‌ها ایده‌آل است. اگر سعی کنید آن را با روش طرح بندی دیگری مانند flexbox بسازید، باید عناصر تودرتو را وارد کنید. و مهمتر از همه، راه حل های دیگر به اندازه کافی انعطاف پذیر نیستند. برای به‌روزرسانی طرح‌بندی، باید ساختار نشانه‌گذاری را بازسازی کنید و فقط سبک‌ها را تغییر ندهید.

3. سبک های اصلی را مشخص کنید

بهترین راه برای آشنایی با سبک‌های مرتبط با شبکه، بازرسی کنسول مرورگر، هدف قرار دادن لیست نامرتب و بررسی سطرها و ستون‌ها با استفاده از بازرس شبکه است.

خطوط شبکهخطوط شبکهخطوط شبکه

در اینجا موارد قابل توجه در مورد سبک های ما آمده است:

  • لیست ظرف شبکه ما خواهد بود.
  • در صفحه نمایش های کوچک (<850 پیکسل)، همانطور که قبلاً گفتیم، یک طرح دو ستونی خواهیم داشت. اندازه ستون ها را از طریق مشخص می کنیم grid-template-columns دارایی در حالی که ما از آن استفاده خواهیم کرد grid-auto-rows ویژگی برای تنظیم اندازه ردیف های ایجاد شده ضمنی.
  • در صفحه نمایش های بزرگ (850 پیکسل)، ما یک طرح پنج ستونی خواهیم داشت. دوباره، در اینجا، ما به طور صریح ردیف‌هایی را از طریق ایجاد نمی‌کنیم grid-template-rows ویژگی اما همچنان به اندازه سطرها از طریق the grid-auto-rows ویژگی.
  • برای قرار دادن و اندازه ستون ها در طرح دسکتاپ و ستون نهم در تلفن همراه، از grid-row و grid-column خواص
  • ما استفاده خواهیم کرد object-fit: cover مقدار ویژگی برای قرار دادن تصاویر در داخل ستون خود. به این ترتیب تصاویر بدون از دست دادن نسبت ابعاد خود، کاملاً درون ظرف خود قرار می گیرند.

شیء فیت چیست: پوشش؟

نکته آخر واقعاً مهم است. بدون object-fit: cover تصاویر ما مجبور می شوند با ابعاد سلول های شبکه مطابقت داشته باشند، مانند این:

بدون مثال شی مناسببدون مثال شیء مناسببدون مثال شی مناسب
همه چیز کمی درهم به نظر می رسد

اما با object-fit ما می توانیم نحوه مدیریت تصویر را تعریف کنیم. با cover مقدار، هر تصویر برش داده می شود تا نسبت تصویر خود را حفظ کند، در حالی که کوچکترین ابعاد آن (ارتفاع یا عرض) کاملاً متناسب با ظرف است. خواهد شد پوشش دادن فضای موجود

تناسبات عالی با شیء مناسب: پوششتناسبات عالی با شیء مناسب: پوششتناسبات عالی با شیء مناسب: پوشش
نسبت های کامل و برش خورده

سبک های نهایی

با این گفته، در اینجا تمام سبک های چیدمان سنگ تراشی آورده شده است:

این به ما نتیجه زیر را می دهد:

4. الگوهای پویا

کار عالی تا اینجا، مردم! ما موفق به ایجاد یک طرح بنایی جذاب، پر از تصاویر شده ایم. اما می توانیم کمی جلوتر برویم و کارها را خودکار کنیم. هدف این است که این طرح‌بندی را با عکس‌های Unsplash (33) مانند زیر عالی جلوه دهید:

شبکه تصویر جدیدشبکه تصویر جدیدشبکه تصویر جدیدبا در نظر گرفتن این موضوع، ما باید سه کار را انجام دهیم:

  • هر مورد را در داخل بلوک های تصویر (سه بلوک 11 تایی) از طریق یک متغیر CSS درون خطی شناسایی کنید (n). از این متغیر برای قرار دادن آن در ردیف سمت راست استفاده می کنیم.
  • استفاده کنید :nth-child() CSS شبه کلاس برای ایجاد الگوهایی که به صورت پویا آیتم های جدید را با اضافه شدن به شبکه انتخاب می کند.
  • مکان اقلام را در داخل یک ردیف شبکه با گرفتن آنها به طور خودکار انجام دهید n متغیر CSS

با قرار دادن همه اینها در محل، ما به این شبکه کاملاً پویا هدایت می‌شویم:

کمی وقت بگذارید تا ببینید اینجا چه خبر است. باز هم، بهترین راه برای درک آن، استفاده از ابزارهای مرورگر خود برای بررسی قرارگیری هر آیتم در داخل شبکه است!

نتیجه

یک تمرین دیگر به پایان رسید، مردم! ممنون که همراهی کردید امیدوارم یک یا دو چیز جدید در مورد نحوه ساخت گالری تصاویر خلاق با چیزی جز CSS یاد گرفته باشید.

می‌توانید این ایده را با استفاده از آن نه تنها برای گالری‌ها، بلکه برای فهرست‌های پست گسترش دهید و یک دکمه Load More برای آشکار کردن دسته‌های مختلف عناصر از طریق AJAX یا شاید ترکیب این طرح با اسکرول بی‌نهایت داشته باشید:

مثل همیشه، خیلی ممنون که خواندید!