ایجاد افکت سوراخ در CSS

css hole punch effect tutorial
20 آبان 1403

استفاده از CSS برای خلق افکت سوراخ کردن یا "hole punch" می‌تواند در پروژه‌های وب خاص به کار بیاید. این افکت جذاب می‌تواند برای نشان دادن محتوا یا ایجاد جلوه‌های بصری خاص مورد استفاده قرار گیرد. یکی از راه‌های ایجاد این افکت استفاده از ویژگی ماسک در CSS است. با استفاده از روش‌های مختلف می‌توان به این جلوه دست یافت، اما در اینجا روشی ساده و متداول را توضیح می‌دهیم.

برای ایجاد یک افکت سوراخ در CSS باید ابتدا از المان‌هایی مانند دایره یا مربع که به عنوان ماسک عمل می‌کنند، استفاده کنید. با ترکیب این ماسک و لایه‌های پشت آن، می‌توانید افکت سوراخ مورد نظر را ایجاد کنید.

یکی دیگر از روش‌ها، استفاده از ویژگی ترکیب و ماسک در CSS است. این ویژگی‌ها به شما اجازه می‌دهند به سادگی لایه‌ها را با هم ترکیب کنید و نواحی خاصی را از دید حذف کنید تا افکت مورد نظر به دست آید.

در ادامه، کد نمونه‌ای از ایجاد این افکت را با جزئیات بیشتر توضیح می‌دهیم.

نمونه کد CSS برای افکت سوراخ کردن


.container {
width: 300px;
height: 300px;
position: relative;
background-color: #f0f0f0;
overflow: hidden;
}
.hole {
width: 100px;
height: 100px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
border-radius: 50%;
box-shadow: 0 0 0 1000px rgba(0, 0, 0, 0.7);
}

توضیحات خط به خط

.container — این کلاس برای والد مستطیلی استفاده می‌شود و تعیین‌کننده ابعاد و رنگ پس‌زمینه است.
width و height — اندازه کانتینر را تعیین می‌کند.
position: relative — اجازه می‌دهد المان‌های فرزند بتوانند به راحتی موقعیت دقیق خود را تنظیم کنند.
overflow: hidden — از مشاهده المان‌های خارج از محدوده جلوگیری می‌کند.
.hole — این کلاس مربوط به دایره سوراخ است.
width و height — اندازه دایره را مشخص می‌کند.
position: absolute — این موقعیت را به صورت مطلق نسبت به والد برقرار می‌کند.
transform: translate(-50%, -50%) — برای قرار دادن مرکز دایره هماهنگ با مرکز کانتینر.
border-radius: 50% — برای ایجاد شکل دایره‌ای کامل.
box-shadow — محو کردن محیط اطراف و ایجاد لایه‌ای تیره در اطراف سوراخ برای ایجاد افکت.

سوالات متداول

؟

چطور می‌توانم یک دایره شفاف درون یک کانتینر ایجاد کنم؟

؟

آیا می‌توانم از این افکت در مرورگرهای قدیمی هم استفاده کنم؟

؟

چطور می‌توانم سایز سوراخ را تغییر بدهم؟