ایجاد افکت بر روی تصویر بدون فتوشاپ و با کدنویسی

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

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

چگونگی ویرایش و افکت گذاری عکس ها در css

گرد کردن گوشه های حاشیه عکس

با استفاده از ویژگی border-radius می توانید گوشه های عکس های قالب وب سایت خود ر ا به هر میزانی که می خواهید گرد کنید.

img {
border-radius: 8px;
}

ایجاد کادر بیرونی برای عکس

با استفاده از خصوصیت border می توانید برای عکس، یک کادر بیرونی ایجاد کنید.

img {
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
width: 150px;
}
<img src=”paris.jpg” alt=”Paris”>

اعمال ویژگی Responsive روی عکس ها

ویژگی Responsive در عکس ها باعث تنظیم خودکار اندازه عکس با اندازه صفحه می شود.

مثال: در این مثال عکسی که کد css برای آن نوشته شده، هیچوقت از اندازه اصلی خود بزرگتر نمی شود. اما در صورت کوچکتر شدن صفحه به همان نسبت کوچکتر می شود:

img {
    max-width: 100%;
    height: auto;
}

قرار گرفتن عکس در مرکز صفحه

برای آنکه یک عکس در مرکز قرار بگیرد ابتدا باید ویژگی left و right خصوصیت margin آن عکس را با auto مقدار دهی کنید. سپس آن عکس را در یک عنصر html با خاصیت block قرار دهید.

img {
    display: block;
    margin-left: auto;
    margin-right: auto;
    width: 50%;
}

ویژگی transparent

با استفاده از این ویژگی می توان شفافیت عکس ها را کم و زیاد کرد. اینکار با استفاده از ویژگی opacity که در تمام مرورگر ها به جز برخی نسخه های IE پشتیبانی می شود. انجام می شود. در مرورگر IE 8 و نسخه ها قدیمی تر آن ، باید از دستور (filter:alpha(opacity=x برای تنظیم شفافیت عکس ها استفاده کرد.

img {
    opacity: 0.5;
    filter: alpha(opacity=50); /* For IE8 and earlier */
}

موقعیت دهی متن در تصویر

در این قسمت چگونگی تنظیم موقعیت متن در تصویر را بررسی می کنیم:

موقعیت چپ متن

<!DOCTYPE html>
<html>
<head>
<style>
.container {
  position: relative;
}
.topleft {
  position: absolute;
  top: 8px;
  left: 16px;
  font-size: 18px;
}
img {
  width: 100%;
  height: auto;
  opacity: 0.3;
}
</style>
</head>
<body>
<h2>Image Text</h2>
<p>Add some text to an image in the top left corner:</p>
<div class=“container”>
  <img src=“img_5terre_wide.jpg” alt=“Cinque Terre” width=“1000” height=“300”>
  <div class=“topleft”>Top Left</div>
</div>
</body>
</html>
موقعیت راست متن
<!DOCTYPE html>
<html>
<head>
<style>
.container {
position: relative;
}
.topright {
position: absolute;
top: 8px;
right: 16px;
font-size: 18px;
}
img {
width: 100%;
height: auto;
opacity: 0.3;
}
</style>
</head>
<body>
<h2>Image Text</h2>
<p>Add some text to an image in the top right corner:</p>
<div class=“container”>
<img src=“img_5terre_wide.jpg” alt=“Cinque Terre” width=“1000” height=“300”>
<div class=“topright”>Top Right</div>
</div>
</body>
</html>
متن در مرکز
<!DOCTYPE html>
<html>
<head>
<style>
.container {
position: relative;
}
.center {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 18px;
}
img {
width: 100%;
height: auto;
opacity: 0.3;
}
</style>
</head>
<body>
<h2>Image Text</h2>
<p>Center text in image:</p>
<div class=“container”>
<img src=“img_5terre_wide.jpg” alt=“Cinque Terre” width=“1000” height=“300”>
<div class=“center”>Centered</div>
</div>
</body>
</html>

ایجاد افکت حرکتی بر روی عکس با CSS

شاید توی بعضی سایتا دیده باشید که وقتی موس رو روی عکسا می برید یه سری اتفاقات خاصی میوفته مثلا عکس به صورت سه بعدی می چرخه یا تغییر میکنه. این کارا رو میشه هم با جاوا اسکریپت و هم با CSS انجام داد و اینجا سعی دارم یه سری نمونه کد براتون بزارم که توی سایتا یا پروژه های خودتون ازش استفاده کنید:

نوع اول

توی این مدل عکس به سمت بالا حرکت میکنه تا متن مورد نظر ما که زیرش مخفی شده نمایش داده بشه.

مرحله ی اول : ایجاد ساختار html

<ul class=“demo-1 effect”>
<li>
<h2>من یه برنامه نویسم!</h2>
<p>برنامه نویسا موجوداتی منزوی هستن که بیست و چهار ساعت میشینن چشم میدوزن به یه مانیور و با صفحه کلید ور میرن ماشالله دست به تایپشونم خیلی توپه.</p>
</li>
<li><img class=“top” src=“images/image1.jpg” alt=“”/></li>
</ul>

مرحله ی دوم: نوشتن دستورات CSS برای استایل دهی و حرکت دادن به تصویر

.demo-1 {
position:relative;
width:300px;
height:200px;
overflow:hidden;
float:left;
margin-right:20px;
background-color:rgba(26,76,110,0.5)
}
.demo-1 p,.demo-1 h2 {
color:#fff;
padding:10px;
left:-20px;
top:20px;
position:relative
}
.demo-1 p {
font-family:‘Lato’;
font-size:12px;
line-height:18px;
margin:0
}
.demo-1 h2 {
font-family:‘Lato’;
font-size:20px;
line-height:24px;
margin:0;
}
.effect img {
position:absolute;
margin:-15px 0;
right:0;
top:0;
cursor:pointer;
-webkit-transition:top .4s ease-in-out,right .4s ease-in-out;
-moz-transition:top .4s ease-in-out,right .4s ease-in-out;
-o-transition:top .4s ease-in-out,right .4s ease-in-out;
transition:top .4s ease-in-out,right .4s ease-in-out
}
.effect img.top:hover {
top:-230px;
right:-330px;
padding-bottom:200px;
padding-left:300px
}

مدل دوم

توی این مدل عکس به صورت اسلاید به طرف پایین حرکت میکنه تا متن یا همون تایتلی که برای عکس در نظر گرفته شده نمایش داده بشه

مرحله اول ایجاد ساختار html

<ul class=“demo-2 effect”>
<li>
<h2 class=“zero”>من یه برنامه نویسم!</h2>
<p class=“zero”>برنامه نویسا موجوداتی منزوی هستن که بیست و چهار ساعت میشینن چشم میدوزن به یه مانیور و با صفحه کلید ور میرن ماشالله دست به تایپشونم خیلی توپه.</p>
</li>
<li><img class=“top” src=“images/image1.jpg” alt=“”/></li>
</ul>
مرحله دوم نوشتن دستورات CSS برای استایل دهی و متحرک سازی های مربوط به عکس
.demo-2 {
position:relative;
width:300px;
height:200px;
overflow:hidden;
float:left;
margin-right:20px;
background-color:rgba(26,76,110,0.5)
}
.demo-2 p,.demo-2 h2 {
color:#fff;
padding:10px;
left:-20px;
top:20px;
position:relative
}
.demo-2 p {
font-family:‘Lato’;
font-size:12px;
line-height:18px;
margin:0
}
.demo-2 h2 {
font-size:20px;
line-height:24px;
margin:0;
font-family:‘Lato’
}
.effect img {
position:absolute;
left:0;
bottom:0;
cursor:pointer;
margin:-12px 0;
-webkit-transition:bottom .3s ease-in-out;
-moz-transition:bottom .3s ease-in-out;
-o-transition:bottom .3s ease-in-out;
transition:bottom .3s ease-in-out
}
.effect img.top:hover {
bottom:-96px;
padding-top:100px
}
h2.zero,p.zero {
margin:0;
padding:0
}

مدل سوم

در این مدل عکس به صورت سه بعدی میچرخه تا متن یا توضیحات مربوط به عکس دیده بشه.

مرحله اول ایجاد ساختار html

<ul class=“demo-3”>
<li>
<figure>
<img src=“images/image1.jpg” alt=“”/>
<figcaption>
<h2 class=“zero”>من یه برنامه نویسم!</h2>
<p class=“zero”>برنامه نویسا موجوداتی منزوی هستن که بیست و چهار ساعت میشینن چشم میدوزن به یه مانیور و با صفحه کلید ور میرن ماشالله دست به تایپشونم خیلی توپه.</p>
</figcaption>
</figure>
</li>
<li><img class=“top” src=“images/image1.jpg” alt=“”/></li>
</ul>
مرحله دوم نوشتن دستورات مربوط به استایل دهی و چرخش عکس که همه با CSS انجام خواهد شد
.demo-3 {
position:relative;
width:300px;
height:200px;
overflow:hidden;
float:left;
margin-right:20px
}
.demo-3 figure {
margin:0;
padding:0;
position:relative;
cursor:pointer;
margin-left:-50px
}
.demo-3 figure img {
display:block;
position:relative;
z-index:10;
margin:-15px 0
}
.demo-3 figure figcaption {
display:block;
position:absolute;
z-index:5;
-webkit-box-sizing:border-box;
-moz-box-sizing:border-box;
box-sizing:border-box
}
.demo-3 figure h2 {
font-family:‘Lato’;
color:#fff;
font-size:20px;
text-align:left
}
.demo-3 figure p {
display:block;
font-family:‘Lato’;
font-size:12px;
line-height:18px;
margin:0;
color:#fff;
text-align:left
}
.demo-3 figure figcaption {
top:0;
left:0;
width:100%;
height:100%;
padding:29px 44px;
background-color:rgba(26,76,110,0.5);
text-align:center;
backface-visibility:hidden;
-webkit-transform:rotateY(-180deg);
-moz-transform:rotateY(-180deg);
transform:rotateY(-180deg);
-webkit-transition:all .5s;
-moz-transition:all .5s;
transition:all .5s
}
.demo-3 figure img {
backface-visibility:hidden;
-webkit-transition:all .5s;
-moz-transition:all .5s;
transition:all .5s
}
.demo-3 figure:hover img,figure.hover img {
-webkit-transform:rotateY(180deg);
-moz-transform:rotateY(180deg);
transform:rotateY(180deg)
}
.demo-3 figure:hover figcaption,figure.hover figcaption {
-webkit-transform:rotateY(0);
-moz-transform:rotateY(0);
transform:rotateY(0)
}