در CSS3 امکان ایجاد سایه توسط خصوصیت box-shadow ایجاد شدهاست که یکی از خصوصیتهای محبوب در بین برنامه نویسان وب میباشد. در ادامه طریقه ایجاد چند نمونه از آن را توضیح خواهیم داد.
box-shadow به شما امکان تعریف چندین سایه را بر روی یک عنصر، با تعیین مقادیر رنگ، اندازه، میزان تیرگی (بلور) و میزان جابجایی (افست) آن، میدهد.
برای مثال:
توجه: برای افزایش میزان زاویه سایه با جعبه، مقدار transform
را افزایش دهید.
کد HTML
توجه: برای اضافه کردن سایه به بالای جعبه، میتوان تغییرات زیر را در افکت بالا ایجاد کرد.
کد HTML
box-shadow به شما امکان تعریف چندین سایه را بر روی یک عنصر، با تعیین مقادیر رنگ، اندازه، میزان تیرگی (بلور) و میزان جابجایی (افست) آن، میدهد.
box-shadow: inset horizontal vertical blur spread color;
box-shadow: 10px 10px; box-shadow: 10px 10px 5px #888; box-shadow: inset 2px 2px 2px 2px black; box-shadow: 10px 10px #888, -10px -10px #f4f4f4, 0px 0px 5px 5px #cc6600;
Browser Support
میتوان گفت تمام مرورگرها، خصوصیت box-shadow را پشتیبانی میکنند.- Internet Explorer 9.0 و بالاتر
- Firefox 3.5 و بالاتر
- Chrome 1.0 و بالاتر
- Safari 3 و بالاتر
- Opera 10.5 و بالاتر
برای استفاده از box-shadow در مرورگرهای نسخه پایینتر (بدون تغییر در نحوه تعریف)، باید از پیشوندهای هر مرورگر استفاده کنید. برای Firefox از moz-، برای Chrome و Safari از webkit- و Opera نیاز به پیشوند ندارد.
CSS مشترک برای افکتهای زیر
.box { width:70%; height:200px; background:#FFF; margin:40px auto; } .box h3{ text-align:center; position:relative; top:80px; }
Effect 1
کد HTML
<div class="box effect1"><h3>Effect 1</h3></div>
کد CSS
.effect1{ box-shadow: 0 10px 6px -6px #777; }
Effect 2
کد HTML
<div class="box effect2"><h3>Effect 2</h3></div>
کد CSS
.effect2 { position: relative; } .effect2:before, .effect2:after { z-index: -1; position: absolute; content: ""; bottom: 15px; left: 10px; width: 50%; top: 80%; max-width:300px; background: #777; box-shadow: 0 15px 10px #777; transform: rotate(-3deg); } .effect2:after { transform: rotate(3deg); right: 10px; left: auto; }
transform: rotate(8deg);
Effect 3
کد HTML
<div class="box effect3"><h3>Effect 3</h3></div>
کد CSS
.effect3 { position: relative; } .effect3:before { z-index: -1; position: absolute; content: ""; bottom: 15px; left: 10px; width: 50%; top: 80%; max-width:300px; background: #777; box-shadow: 0 15px 10px #777; transform: rotate(-3deg); }
Effect 4
کد HTML
<div class="box effect4"><h3>Effect 4</h3></div>
کد CSS
.effect4 { position: relative; } .effect4:after { z-index: -1; position: absolute; content: ""; bottom: 15px; right: 10px; left: auto; width: 50%; top: 80%; max-width:300px; background: #777; box-shadow: 0 15px 10px #777; transform: rotate(3deg); }
Effect 5
کد HTML
<div class="box effect5"><h3>Effect 5</h3></div>
کد CSS
.effect5 { position:relative; box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; } .effect5:before, .effect5:after { content:""; position:absolute; z-index:-1; box-shadow:0 0 20px rgba(0,0,0,0.8); top:50%; bottom:0; left:10px; right:10px; border-radius:100px / 10px; }
.effect5:before, .effect5:after { top:0; } .effect5:after { right:10px; left:auto; transform:skew(8deg) rotate(3deg); }
Effect 6
کد HTML
<div class="box effect6"><h3>Effect 6</h3></div>
کد CSS
.effect6 { position:relative; box-shadow:0 1px 4px rgba(0, 0, 0, 0.3), 0 0 40px rgba(0, 0, 0, 0.1) inset; } .effect6:before, .effect6:after { content:""; position:absolute; z-index:-1; box-shadow:0 0 20px rgba(0,0,0,0.8); top:10px; bottom:10px; left:0; right:0; border-radius:100px / 10px; } .effect6:after { right:10px; left:auto; transform:skew(8deg) rotate(3deg); }