چگونه یک Div را با استفاده از CSS Grid مرکز کنیم

در این مقاله، به چهار روش برای وسط افقی و عمودی یک div با استفاده از CSS Grid خواهیم پرداخت. البته این تکنیک های مرکزیت را می توان روی هر نوع عنصری استفاده کرد. ما قبلاً نحوه قرار دادن عناصر را به صورت افقی و عمودی با استفاده از پوشش داده ایم. Flexbox و موقعیت یابی با تبدیل.

مقاله مهم: 5 طراحی وب سایت غیرانتفاعی برای الهام گرفتن

راه اندازی

اجازه دهید ابتدا یک محفظه با یک عنصر جعبه ساده در داخل آن ایجاد کنیم که از آن برای نشان دادن این روش‌های مرکزی‌سازی استفاده می‌کنیم. این HTML است:

article>
  div>div>
article>/

و CSS شروع ما اینجاست:

مقاله {
  عرض: 100%;
  min-height: 100vh;
  پس‌زمینه: سیاه;
  نمایش: grid;
}

div {
  عرض: 200px;
  زمینه: زرد;
  ارتفاع: 100px;
}

Our starting position, with a yellow square sitting top left in a black container

در تمام مثال‌هایمان، از ویژگی display: grid استفاده خواهیم کرد. این عنصر

را به عنوان یک ظرف شبکه ایجاد می کند و یک شبکه در سطح بلوک برای آن ظرف ایجاد می کند. (اگر می‌خواهید با آن آزمایش کنید، الگوی نمایشی ما در CodePen وجود دارد.)

اکنون، بیایید به روش‌های مختلف برای مرکز بخشیدن خود نگاه کنیم.

1. با CSS Grid و place-self

یک Div را در مرکز قرار دهید

روش مورد علاقه من برای وسط یک عنصر با Grid استفاده از ویژگی place-self است. (شما می توانید اطلاعات بیشتری در مورد آن اینجا بخوانید.)

مرکز کردن div ما به همین سادگی است:

مقاله {
  نمایش: grid;
}

div {
  place-self: مرکز;
}

به قلم
مرکز کردن با استفاده از شبکه و مکان خود توسط SitePoint (@SitePoint)
در CodePen.

ویژگی place-self مخفف ویژگی های align-self (عمودی) و justify-self (افقی) است (که اگر فقط در امتداد یک محور متمرکز شوید مفید هستند). می‌توانید آنها را در این نسخه نمایشی CodePen آزمایش کنید.

استفاده از place-self آنقدر ساده است که راه حلی واضح است. اما این تنها راه برای مرکزیت یک عنصر با Grid نیست، بنابراین بیایید اکنون به چند روش دیگر نگاه کنیم.

یکی از مزیت‌های استفاده از place-self این است که روی عنصری که در مرکز قرار دارد اعمال می‌شود، به این معنی که می‌توانید از آن برای قرار دادن عناصر دیگر در همان ظرف استفاده کنید. (سعی کنید عناصر div بیشتری را به نسخه ی نمایشی CodePen اضافه کنید و ببینید چه اتفاقی می افتد.)

2. یک Div را با CSS Grid، justify-content و align-item ها را در مرکز قرار دهید

حالا به استفاده از Grid با justify-content و align-items برای مرکز بخشیدن به بخش خود نگاه می کنیم.

از ویژگی justify-content برای تراز افقی اقلام ظرف زمانی که موارد از تمام فضای موجود استفاده نمی کنند استفاده می شود. راه‌های زیادی برای تنظیم ویژگی justify-content وجود دارد، اما در اینجا فقط می‌خواهیم آن را روی center تنظیم کنیم.

درست مانند ویژگی justify-content، ویژگی align-items برای تراز کردن محتوا در یک ظرف استفاده می‌شود، اما محتوا را به‌جای افقی به صورت عمودی تراز می‌کند.

نوشته دیگر :   ماساژ را با ما تجربه کنید

بیایید به HTML آزمایشی خود برگردیم و کد زیر را به ظرف والد اضافه کنیم:

مقاله {
  نمایش: grid;
  justify-content: center;
  align-items: center;
}

به قلم مراجعه کنید
مرکز کردن با استفاده از شبکه، تراز کردن خود و توجیه خود توسط SitePoint (@SitePoint)
در CodePen.

یک مزیت آشکار این روش این است که شامل کد کمتری می شود، زیرا مرکز توسط کانتینر مدیریت می شود. اما از برخی جهات، هدف قرار دادن div از طریق ظرف آن نیز یک نقطه ضعف است، زیرا هر عنصر دیگری در کانتینر نیز تحت تأثیر قرار خواهد گرفت.

3. یک Div را با CSS Grid و Auto Margins

مرکز کنید

مثل همیشه، ظرف والد را با display: grid هدف قرار خواهیم داد. همچنین با استفاده از margin: auto یک حاشیه خودکار به div اختصاص خواهیم داد. این باعث می‌شود که مرورگر به‌طور خودکار فضای موجود اطراف دیو کودک را محاسبه کند و آن را به‌صورت عمودی و افقی تقسیم کند و دیو را در وسط قرار دهد:

مقاله {
  نمایش: grid;
}

div {
  حاشیه: auto;
}

به قلم مراجعه کنید
یک عنصر را با شبکه CSS مرکز کنید، justify-content و align-items توسط SitePoint (@SitePoint)
در CodePen.

(به‌علاوه، کارهای جالب دیگری وجود دارد که می‌توانید انجام دهید حاشیه های CSS.)

4. یک Div را با CSS Grid و مکان آیتم ها در مرکز قرار دهید

ویژگی place-items برای تراز کردن موارد به صورت عمودی و افقی در یک شبکه استفاده می‌شود. با هدف قرار دادن ظرف به این صورت می توان از آن برای وسط div ما استفاده کرد:

مقاله {
  نمایش: grid;
  place-item: center;
}

به قلم
مراکز یک Div با شبکه CSS و حاشیه‌های خودکار توسط SitePoint مراجعه کنید (@SitePoint)
در CodePen.

مانند ویژگی place-self، place-items مخفف دو ویژگی است، در این مورد justify-items (افقی) و align-item (عمودی). می‌توانید آنها را در این نسخه نمایشی CodePen آزمایش کنید.

برخلاف place-self، place-items روی ظرف اعمال می‌شود که به آن کمی انعطاف‌پذیری کمتری می‌دهد.

نتیجه گیری

هر یک از این روش ها به شما امکان می دهد یک div را به صورت افقی و عمودی در داخل یک ظرف قرار دهید. همانطور که گفتم، ترجیح من روش place-self است، عمدتاً به این دلیل که برای عنصری که در مرکز قرار دارد به جای ظرف اعمال می شود. این برای روش margin: auto یکسان است. اما البته، اگر فقط به دنبال متمرکز کردن عنصر خود در یک جهت هستید، می‌توانید از align-self یا justify-self نیز استفاده کنید.

در نمونه‌های نمایشی، ما فقط از یک div خالی استفاده کرده‌ایم، اما مطمئناً می‌توانید محتوا را به div اضافه کنید و مرکز کردن همچنان کار می‌کند. و بار دیگر، این تکنیک‌های مرکزی‌سازی روی عناصری غیر از divs کار می‌کنند.

منبع: https://novinyaban.ir/5-طراحی-وب-سایت-غیرانتفاعی-برای-الهام-گر/