شنبه ۲۹ دي ۱۴۰۳
Tut24 آموزش برنامه نویسی و مجله تخصصی فناوری ورود/عضویت

آموزش CSS - نشانگرها(cursors)

نشانگر(Cursor) در CSS،  برای تعیین نوع نشانگر موس به هنگام حرکت موس بر روی ناحیه خاص یا لینک موجود در صفحات وب مورد استفاده قرار می گیرد.

نشانگر می‌تواند مقادیر زیر را داشته باشد:

  • <url>: (اختیاری) شما می‌توانید از() url که هرکدام به یک فایل تصویر اشاره دارد با استفاده از کاما استفاده کنید.

  • <x> <y>: (اختیاری) شما می‌توانید مختصات x و y برای نشانگر ماوس را مشخص کنید به طوری که موقعیت دقیق داخل تصویر نشانگر را مشخص شود.

  • <مقادیر>: مقادیر ، نوع نشانگر یا نشانگر جایگزین را در صورت عدم بارگذاری نمادهای مشخص‌شده نمایش  می دهد.

ویژگی  نشانگر 

برای ویژگی cursor ، از مقادیر مختلفی می توان استفاده کرد:

مقادیر مثال توضیحات

auto

 شکل  ظاهری مکان نما یا نشانگر موس، به حالتی تبدیل می شود که مرورگر بر اساس شرایط تگ html مورد نظر شکل مکان نما را تعیین می کند.

default

شکل  ظاهری مکان نما یا نشانگر موس، به حالتی تبدیل می شود که مکان‌نمای پیشفرض سیستم عاملی که کاربر با آن، سایت ما را مشاهده می کند در می آید که اکثرا به شکل فلش می باشد.

none

 

شکل ظاهری مکان نما یا نشانگر موس برای عنصر مورد نظر نمایش داده نخواهد شد.

context-menu

 شکل ظاهری مکان نما یا نشانگر موس  به حالتی تبدیل می شود که یک منوی گرافیکی در کنار فلش برای نمایش مکان‌ نما وجود خواهد داشت.توجه داشته باشید که مرورگر IE10 به بالا از مقدار context-menu پشتیبانی می کند و مرورگرهای فایرفاکس و اپرا و سافاری از این مقدار پشتیبانی نمی کنند.

help

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

pointer

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که مشخص کند عنصر مربوطه قابل ردوبدل کردن مطالب است (مثلا لینک) و به شکل دست خواهد بود.

progress

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

wait

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که مرورگر مشغول انجام کاری است که کاربر باید تا اتمام آن صبر کند و نمی توانددرسایت به کار خود ادامه دهد این حالت برعکس progress می باشد.

alias

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که می توان یک مستعار یا میانبری برای عنصر موجود بوجود آورد.

copy

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

move

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که عنصر قابلیت تغییر مکان را دارد.

no-drop

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که نشان می دهد که آیتم  انتخابی نمی تواند روی عنصر مورد نظر رها شود.

not-allowed

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که نشان می دهد که یک عملیات قابل  انجام نمی باشد

grab

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که  باعث تغییر نوع نشانگر ماوس به یک دسته (grab) می‌شود که نمایانگر امکان برداشتن یا نگه داشتن چیزی است.

grabbing

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که نمایانگر گرفتن یا برداشتن چیزی است. معمولاً این ویژگی در وبسایت‌ها برای اشیاءی که می‌توانند با ماوس حرکت کنند، مثل المان‌های قابل جابجایی یا نمودارهای تعاملی، استفاده می‌شود.

cell

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که نشان می دهد که سلول جدول می تواند انتخاب شود.

crosshair

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که نشان دهنده انتخاب یک تصویر می باشد.

text

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که نشان دهنده  انتخاب متن می باشد

vertical-text

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

zoom-in

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که  نشان دهنده بزرگ‌نمایی است، نشان می‌دهد که یک شیء را می‌توانید از طریق بزرگ‌نمایی ،zoom-in کنید.

zoom-out

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که  نشان دهنده کوچک نمایی است، نشان می‌دهد که یک شیء را می‌توانید از طریق کوچک نمایی،zoom-out کنید.

all-scroll

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان اسکرول در تمامی جهت‌ها وجود داد.

col-resize

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان تغییر اندازه در جهت افقی وجود دارد.

row-resize

شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان تغییر اندازه در جهت عمودی وجود دارد.

n-resize

 شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان  تغییر اندازه یا حرکت به جهت شمال وجود دارد.

e-resize

 شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان  تغییر اندازه یا حرکت به جهت شرق وجود دارد.

s-resize

 شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان  تغییر اندازه یا حرکت به جهت جنوب وجود دارد.

w-resize

 شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان  تغییر اندازه یا حرکت به جهت غرب وجود دارد.

ne-resize

 شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان  تغییر اندازه یا حرکت به جهت شمال-شرق وجود دارد.

nw-resize

 شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان  تغییر اندازه یا حرکت به جهت شمال-غرب وجود دارد.

se-resize

 شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان  تغییر اندازه یا حرکت به جهت جنوب-شرق وجود دارد.

sw-resize

 شکل ظاهری مکان نما یا نشانگر موس به حالتی تبدیل می شود که امکان  تغییر اندازه یا حرکت به جهت جنوب-غرب وجود دارد.

 اگر بخواهیم برای تمام عناصر HTML اعمال شود:

object.style.cursor = "pointer";

در ادامه، یک مثال آورده شده است که انواع مختلف نشانگرها در CSS را نشان می‌دهد :


<html>
<head>
<title>All CSS Cursors</title>
<style>
   .demo-cursor {
      display: inline-block;
      background-color: LightYellow;
      width: 100px;
      height: 100px;
      margin: 10px;
      border: 3px solid #ccc;
      cursor: pointer;
   }
   .default { cursor: default; }
   .auto { cursor: auto; }
   .crosshair { cursor: crosshair; }
   .pointer { cursor: pointer; }
   .move { cursor: move; }
   .text { cursor: text; }
   .wait { cursor: wait; }
   .help { cursor: help; }
   .not-allowed { cursor: not-allowed; }
   .progress { cursor: progress; }
   .alias { cursor: alias; }
   .copy { cursor: copy; }
   .no-drop { cursor: no-drop; }
   .e-resize { cursor: e-resize; }
   .n-resize { cursor: n-resize; }
   .ne-resize { cursor: ne-resize; }
   .nw-resize { cursor: nw-resize; }
   .s-resize { cursor: s-resize; }
   .se-resize { cursor: se-resize; }
   .sw-resize { cursor: sw-resize; }
   .w-resize { cursor: w-resize; }
   .ew-resize { cursor: ew-resize; }
   .ns-resize { cursor: ns-resize; }
   .nesw-resize { cursor: nesw-resize; }
   .nwse-resize { cursor: nwse-resize; }
   .col-resize { cursor: col-resize; }
   .row-resize { cursor: row-resize; }
   .zoom-in { cursor: zoom-in; }
   .zoom-out { cursor: zoom-out; }
   .grab { cursor: grab; }
   .grabbing { cursor: grabbing; }
</style>
</head>
<body>
<h1>All CSS Cursors, hover the mouse on the blocks.</h1>
   <div class="demo-cursor auto"><h3 style="text-align:center;">Auto</h3></div>
   <div class="demo-cursor default"><h3 style="text-align:center;">Default</h3></div>
   <div class="demo-cursor crosshair"><h3 style="text-align:center;">Crosshair</h3></div>
   <div class="demo-cursor pointer"><h3 style="text-align:center;">Pointer</h3></div>
   <div class="demo-cursor move"><h3 style="text-align:center;">Move</h3></div>
   <div class="demo-cursor text"><h3 style="text-align:center;">Text</h3></div>
   <div class="demo-cursor wait"><h3 style="text-align:center;">Wait</h3></div>
   <div class="demo-cursor help"><h3 style="text-align:center;">Help</h3></div>
   <div class="demo-cursor not-allowed"><h3 style="text-align:center;">Not-allowed</h3></div>
   <div class="demo-cursor progress"><h3 style="text-align:center;">Progress</h3></div>
   <div class="demo-cursor alias"><h3 style="text-align:center;">Alias</h3></div>
   <div class="demo-cursor copy"><h3 style="text-align:center;">Copy</h3></div>
   <div class="demo-cursor no-drop"><h3 style="text-align:center;">No-drop</h3></div>
   <div class="demo-cursor e-resize"><h3 style="text-align:center;">e-resize</h3></div>
   <div class="demo-cursor n-resize"><h3 style="text-align:center;">n-resize</h3></div>
   <div class="demo-cursor ne-resize"><h3 style="text-align:center;">ne-resize</h3></div>
   <div class="demo-cursor nw-resize"><h3 style="text-align:center;">nw-resize</h3></div>
   <div class="demo-cursor s-resize"><h3 style="text-align:center;">s-resize</h3></div>
   <div class="demo-cursor se-resize"><h3 style="text-align:center;">se-resize</h3></div>
   <div class="demo-cursor sw-resize"><h3 style="text-align:center;">sw-resize</h3></div>
   <div class="demo-cursor w-resize"><h3 style="text-align:center;">w-resize</h3></div>
   <div class="demo-cursor ew-resize"><h3 style="text-align:center;">ew-resize</h3></div>
   <div class="demo-cursor ns-resize"><h3 style="text-align:center;">ns-resize</h3></div>
   <div class="demo-cursor nesw-resize"><h3 style="text-align:center;">nesw-resize</h3></div>
   <div class="demo-cursor nwse-resize"><h3 style="text-align:center;">nwse-resize</h3></div>
   <div class="demo-cursor col-resize"><h3 style="text-align:center;">col-resize</h3></div>
   <div class="demo-cursor row-resize"><h3 style="text-align:center;">row-resize</h3></div>
   <div class="demo-cursor zoom-in"><h3 style="text-align:center;">Zoom-in</h3></div>
   <div class="demo-cursor zoom-out"><h3 style="text-align:center;">Zoom-out</h3></div>
   <div class="demo-cursor grab"><h3 style="text-align:center;">Grab</h3></div>
   <div class="demo-cursor grabbing"><h3 style="text-align:center;">Grabbing</h3></div>
</body>
</html>

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


<html>
<head>
<title>All CSS Cursors</title>
<style>
   .demo-cursor {
      display: inline-block;
      background-color: LightYellow;
      width: 100px;
      height: 100px;
      margin: 10px;
      border: 3px solid #ccc;
      cursor: url(images/try-it.jpg), pointer;
   }
</style>
</head>
<body>
<h1>Image CSS Cursors, hover the mouse on the block.</h1>
   <div class="demo-cursor"><h3 style="text-align:center;">Image Cursor</h3></div>
  </div>
</body>
</html>

در زیر، یک مثال آورده شده است که نشان می‌دهد چگونه از تصاویر چندگانه (جدا شده با ویرگول) به عنوان مقادیر نشانگر استفاده کنیم :


<html>
<head>
<title>All CSS Cursors</title>
<style>
   .demo-cursor {
      display: inline-block;
      background-color: LightYellow;
      width: 100px;
      height: 100px;
      margin: 10px;
      border: 3px solid #ccc;
      cursor: url(images/try-it.jpg),url(images/cursor-pointer.png), crosshair;
   }
</style>
</head>
<body>
<h1>Image CSS Cursors, hover the mouse on the block.</h1>
   <div class="demo-cursor"><h3 style="text-align:center;">Image Cursor</h3></div>
  </div>
</body>
</html>

سعی کنید نام فایل تصویر اول را به try-it-1.jpg تغییر دهید (تا تصویر پیدا نشود) و سپس برنامه را اجرا کنید. تا نحوه  جایگزین شدن  را مشاهده کنید، به عبارت دیگر هنگامی که تصویر اول پیدا نمی‌شود، کنترل به تصویر دوم منتقل می‌شود و حتی اگر آن نشانگر هم پیدا نشود، به عنوان نشانگر اصلی استفاده می‌شود و در نهایت اگر همه تصاویر پیدا نشوند، به نشانگر متقاطع (crosshair) منتقل می‌شود.