شبه کلاس ها برای تعریف وضعیت خاصی از یک عنصر استفاده می شوند به طور مثال:
- زمانی که موس روی دکمه ای می رود، آن دکه استایل جدیدی بگیرد
- استایل لینک های بازدید شده (قبلا توسط کاربر کلیک شده اند) و لینک های بازدید نشده تفاوت داشته باشند
- یک عنصر زمانی استایل بگیرد که در حالت focus (روی آن کلیک شده و فعال) باشد
ساختار کلی شبه کلاس ها به این صورت است:
شبه کلاس Anchor
Anchor ها همان لینک ها هستند (تگ <a>) و شبه کلاس های خاصی دارند:
a:link
: لینک هایی که هنوز وارد آن ها نشده ایدa:visited
: لینک هایی که حداقل یک بار روی آن ها کلیک کرده ایمa:hover
: زمانی که موس را روی یک لینک می بریدa:active
: لحظه ای که روی لینک کلیک می کنید (فشردن کلیک چپ)
به مثال زیر نگاه کنید:
در مثال بالا گفته ایم که:
- لینکی که وارد آن نشده ایم قرمز خواهد بود
- لینکی که وارد آن شده ایم سبز خواهد بود
- هنگام آمدن موس روی لینک، لینک صورتی می شود
- هنگام کلیک کردن روی لینک، لینک آبی خواهد شد
a:hover
باید همیشه بعد از دستورات a:link
و a:visited
بیاید تا کار کند. در غیر این صورت بی تاثیر خواهد بود. همچنین a:active
باید همیشه بعد از دستور a:hover
بیاید تا کار کند. در غیر این صورت عمل نخواهد کرد.شبه کلاس ها و CSS
همانطور که دیدید، شما می توانید شبه کلاس ها را با دستورات CSS ادغام کنید. به طور مثال:
البته این ترکیبات مخصوص لینک ها نیستند و شما می توانید شبه کلاس ها را برای عناصر دیگر نیز تعیین کنید.
به طور مثال در کد زیر از شبه کلاس hover:
روی عنصر <div> استفاده کرده ایم:
البته این ها مثال های ساده ای هستند. ما می توانیم تردستی های جالبی با استفاده از شبه کلاس ها انجام بدهیم! به طور مثال به صفحه ی خروجی کد زیر بروید و سعی کنید متوجه نحوه ی کار کد ها بشوید:
شبه کلاس first-child:
شبه کلاس first-child:
عنصری را هدف میگیرد که اولین فرزند عنصری دیگر باشد. به مثال زیر توجه کنید:
در این مثال گفته ایم اولین عنصر <p> را پیدا کن که اولین فرزند هر عنصری باشد. در واقع تعریف first-child همین است!
البته می توانیم کدها را کمی تغییر دهیم. به طور مثال در کد زیر می خواهیم تمام عناصر <i> را پیدا کنیم که اولین فرزند یک عنصر <p> باشند:
از آنجا که هر دو عنصر <i> اولین فرزند هر دو عنصر <p> بوده اند، هر دو انتخاب شده اند.
یک مثال دیگر می تواند به این شکل باشد که بگوییم تمام عناصر <i> را انتخاب کند که در یک عنصر <p> باشند و آن عنصر <p> اولین فرزند یک عنصر دیگر نیز باشد! به مثال زیر توجه کنید:
شبه عنصر lang:
شبه عنصر lang:
به شما اجازه می دهد که برای زبان های مختلف قوانین مختلفی تعیین کنید. lang:
در مثال زیر عناصر <q> را پیدا می کند و سپس اگر “lang=”no داشتند برای آن ها علامت خاصی می گذارد:
شبه کلاس های دیگر
شبه کلاس های بسیار زیادی در زبان CSS وجود دارد. به این شبه کلاس ها نگاه کنید:
:active :any-link :blank :checked :current :default :defined :dir() :disabled :drop :empty :enabled :first :first-child :first-of-type :fullscreen :future :focus :focus-visible :focus-within :has() :host :host() :host-context() :hover :indeterminate :in-range :invalid :is() :lang() :last-child :last-of-type :left :link :local-link :not() :nth-child() :nth-col() :nth-last-child() :nth-last-col() :nth-last-of-type() :nth-of-type() :only-child :only-of-type :optional :out-of-range :past :placeholder-shown :read-only :read-write :required :right :root :scope :target :target-within :user-invalid :valid :visited :where()
واضح است که شبه کلاس ها بسیار زیاد هستند و نمیتوان تمام آن ها را در این قسمت پوشش داد. اگر دوست دارید با شبه کلاس های بیشتری آشنا شوید می توانید به صفحه ی شبکه ی توسعه دهندگان Mozilla سر بزنید. در این صفحه اطلاعات کاملی به همراه مثال های متعدد برای انواع شبه کلاس ها آورده شده است.
امیدوارم از این قسمت لذت برده باشید.
منبع:.star-rating, .star-rating a:hover, .star-rating a:active, .star-rating .current-rating{ background: url(/temp/img/star.png) left -1000px repeat-x;direction:rtl ;cursor:pointer} .star-rating{ position:relative; width:120px; height:24px; overflow:hidden; list-style:none; margin:0; padding:0; background-position: left top;direction:rtl } .star-rating li{ display: inline;padding:0px;} .star-rating a, .star-rating .current-rating{ position:absolute; top:0; left:0; text-indent:-1000em; height:24px; line-height:24px; outline:none; overflow:hidden; border: none; } .star-rating a:hover, .star-rating a:active{ background-position: left bottom; } .star-rating a.one-star{ width:20%; z-index:6; } .star-rating a.two-stars{ width:40%; z-index:5; } .star-rating a.three-stars{ width:60%; z-index:4; } .star-rating a.four-stars{ width:80%; z-index:3; } .star-rating a.five-stars{ width:100%; z-index:2; } .star-rating .current-rating{ z-index:1; background-position: left center; }%20%20%20
%20%20 This%20is%20a%20link%20to%20Roxo.ir/plus نکته:%20%20%20%20a:hover%20باید%20همیشه%20بعد%20از%20دستورات%20a:link%20و%20a:visited%20بیاید%20تا%20کار%20کند.%20در%20غیر%20این%20صورت%20بی%20تاثیر%20خواهد%20بود%20 نکته:%20%20%20%20%20a:active%20باید%20همیشه%20بعد%20از%20دستور%20a:hover%20بیاید%20تا%20کار%20کند.%20در%20غیر%20این%20صورت%20بی%20تاثیر%20خواهد%20بود%20%20