loading...
طراحی وب- برنامه نویسی
برنامه نویس بازدید : 69 پنجشنبه 27 تیر 1398 نظرات (0)

شبه کلاس ها برای تعریف وضعیت خاصی از یک عنصر استفاده می شوند به طور مثال:

  • زمانی که موس روی دکمه ای می رود، آن دکه استایل جدیدی بگیرد
  • استایل لینک های بازدید شده (قبلا توسط کاربر کلیک شده اند) و لینک های بازدید نشده تفاوت داشته باشند
  • یک عنصر زمانی استایل بگیرد که در حالت focus (روی آن کلیک شده و فعال) باشد

ساختار کلی شبه کلاس ها به این صورت است:

شبه کلاس Anchor

Anchor ها همان لینک ها هستند (تگ <a>) و شبه کلاس های خاصی دارند:

  • a:link : لینک هایی که هنوز وارد آن ها نشده اید
  • a:visited : لینک هایی که حداقل یک بار روی آن ها کلیک کرده ایم
  • a:hover : زمانی که موس را روی یک لینک می برید
  • a:active : لحظه ای که روی لینک کلیک می کنید (فشردن کلیک چپ)

به مثال زیر نگاه کنید:

مشاهده ی خروجی در JSBin

در مثال بالا گفته ایم که:

  • لینکی که وارد آن نشده ایم قرمز خواهد بود
  • لینکی که وارد آن شده ایم سبز خواهد بود
  • هنگام آمدن موس روی لینک، لینک صورتی می شود
  • هنگام کلیک کردن روی لینک، لینک آبی خواهد شد

 

نکته: a:hover باید همیشه بعد از دستورات a:link و a:visited بیاید تا کار کند. در غیر این صورت بی تاثیر خواهد بود. همچنین a:active باید همیشه بعد از دستور a:hover بیاید تا کار کند. در غیر این صورت عمل نخواهد کرد.

شبه کلاس ها و CSS

همانطور که دیدید، شما می توانید شبه کلاس ها را با دستورات CSS ادغام کنید. به طور مثال:

مشاهده ی خروجی در JSBin

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

به طور مثال در کد زیر از شبه کلاس hover: روی عنصر <div> استفاده کرده ایم:

مشاهده ی خروجی در JSBin

البته این ها مثال های ساده ای هستند. ما می توانیم تردستی های جالبی با استفاده از شبه کلاس ها انجام بدهیم! به طور مثال به صفحه ی خروجی کد زیر بروید و سعی کنید متوجه نحوه ی کار کد ها بشوید:

مشاهده ی خروجی در JSBin

شبه کلاس first-child:

شبه کلاس first-child: عنصری را هدف میگیرد که اولین فرزند عنصری دیگر باشد. به مثال زیر توجه کنید:

مشاهده ی خروجی در JSBin

در این مثال گفته ایم اولین عنصر <p> را پیدا کن که اولین فرزند هر عنصری باشد. در واقع تعریف first-child همین است!

البته می توانیم کدها را کمی تغییر دهیم. به طور مثال در کد زیر می خواهیم تمام عناصر <i> را پیدا کنیم که اولین فرزند یک عنصر <p> باشند:

مشاهده ی خروجی در JSBin

از آنجا که هر دو عنصر <i> اولین فرزند هر دو عنصر <p> بوده اند، هر دو انتخاب شده اند.

یک مثال دیگر می تواند به این شکل باشد که بگوییم تمام عناصر <i> را انتخاب کند که در یک عنصر <p> باشند و آن عنصر <p> اولین فرزند یک عنصر دیگر نیز باشد! به مثال زیر توجه کنید:

مشاهده ی خروجی در JSBin

شبه عنصر lang:

شبه عنصر lang: به شما اجازه می دهد که برای زبان های مختلف قوانین مختلفی تعیین کنید. lang: در مثال زیر عناصر <q> را پیدا می کند و سپس اگر “lang=”no داشتند برای آن ها علامت خاصی می گذارد:

مشاهده ی خروجی در JSBin

شبه کلاس های دیگر

شبه کلاس های بسیار زیادی در زبان 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%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%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

%20%20 %20%201%202%203%204%205%206%207%208%209%2010%2011%2012%2013%2014%2015%2016%2017%2018%2019%2020%2021%2022%2023%2024%2025%2026%2027%2028%2029%2030%2031%2032%2033%2034%2035%2036%2037%2038%2039%2040%20%20%20 %20%20%20 %20%20%20

This%20is%20a%20link%20to%20Roxo.ir/plus

%20%20%20نکته:%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%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%20

%20%20%20%20%20مشاهده%20ی%20خروجی%20در%20JSBin%20%20در%20مثال%20بالا%20گفته%20ایم%20که:%20%20لینکی%20که%20وارد%20آن%20نشده%20ایم%20قرمز%20خواهد%20بود%20لینکی%20که%20وارد%20آن%20شده%20ایم%20سبز%20خواهد%20بود%20هنگام%20آمدن%20موس%20روی%20لینک،%20لینک%20صورتی%20می%20شود%20هنگام%20کلیک%20کردن%20روی%20لینک،%20لینک%20آبی%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همچنین%20a:active%20باید%20همیشه%20بعد%20از%20دستور%20a:hover%20بیاید%20تا%20کار%20کند.%20در%20غیر%20این%20صورت%20عمل%20نخواهد%20کرد.%20شبه%20کلاس%20ها%20و%20CSS%20همانطور%20که%20دیدید،%20شما%20می%20توانید%20شبه%20کلاس%20ها%20را%20با%20دستورات%20CSS%20ادغام%20کنید.%20به%20طور%20مثال:%20%20%20%20 %20%20%20 %20%20

Goodle

%20

Roxo

%20%20%20%201%202%203%204%205%206%207%208%209%2010%2011%2012%2013%2014%2015%2016%20%20%20 %20%20%20 %20%20%20

Goodle

%20

Roxo

%20%20%20%20%20مشاهده%20ی%20خروجی%20در%20JSBin%20%20البته%20این%20ترکیبات%20مخصوص%20لینک%20ها%20نیستند%20و%20شما%20می%20توانید%20شبه%20کلاس%20ها%20را%20برای%20عناصر%20دیگر%20نیز%20تعیین%20کنید.%20%20به%20طور%20مثال%20در%20کد%20زیر%20از%20شبه%20کلاس%20hover:%20روی%20عنصر%20
%20استفاده%20کرده%20ایم:%20%20%20%20 %20%20%20 %20%20

Mouse%20over%20the%20div%20element%20below%20to%20change%20its%20background%20color:

%20%20
Mouse%20Over%20Me
%20%20%20%201%202%203%204%205%206%207%208%209%2010%2011%2012%2013%2014%2015%2016%2017%2018%2019%2020%2021%2022%2023%2024%20%20%20 %20%20%20 %20%20%20

Mouse%20over%20the%20div%20element%20below%20to%20change%20its%20background%20color:

%20%20%20
Mouse%20Over%20Me
%20%20%20%20%20مشاهده%20ی%20خروجی%20در%20JSBin%20%20البته%20این%20ها%20مثال%20های%20ساده%20ای%20هستند.%20ما%20می%20توانیم%20تردستی%20های%20جالبی%20با%20استفاده%20از%20شبه%20کلاس%20ها%20انجام%20بدهیم!%20به%20طور%20مثال%20به%20صفحه%20ی%20خروجی%20کد%20زیر%20بروید%20و%20سعی%20کنید%20متوجه%20نحوه%20ی%20کار%20کد%20ها%20بشوید:%20%20%20%20 %20%20%20%20%20%20%20
موس%20خودت%20را%20روی%20این%20نوشته%20بیاور%20%20%20

من%20یه%20باکس%20نامرئی%20هستم!%20از%20دیدنت%20خوشحالم!

%20
%20%20%20%201%202%203%204%205%206%207%208%209%2010%2011%2012%2013%2014%2015%2016%2017%2018%2019%2020%2021%2022%2023%20%20%20 %20%20%20%20%20%20%20%20
موس%20خودت%20را%20روی%20این%20نوشته%20بیاور%20%20%20

من%20یه%20باکس%20نامرئی%20هستم!%20از%20دیدنت%20خوشحالم!

%20
%20%20%20%20%20مشاهده%20ی%20خروجی%20در%20JSBin%20%20شبه%20کلاس%20first-child:%20شبه%20کلاس%20first-child:%20عنصری%20را%20هدف%20میگیرد%20که%20اولین%20فرزند%20عنصری%20دیگر%20باشد.%20به%20مثال%20زیر%20توجه%20کنید:%20%20%20%20 %20%20%20 %20%20

This%20is%20some%20text.

%20

This%20is%20some%20text.

%20هشدار:%20اگر%20می%20خواهید%20این%20ویژگی%20در%20Internet%20Explorer%208%20و%20قبل%20تر%20کار%20کند%20باید%20DOCTYPE%20را%20مشخص%20کرده%20باشید.

%20%20%20%201%202%203%204%205%206%207%208%209%2010%2011%2012%2013%2014%2015%2016%2017%20%20%20 %20%20%20 %20%20%20

This%20is%20some%20text.

%20

This%20is%20some%20text.

%20هشدار:%20اگر%20می%20خواهید%20این%20ویژگی%20در%20Internet%20Explorer%208%20و%20قبل%20تر%20کار%20کند%20باید%20DOCTYPE%20را%20مشخص%20کرده%20باشید.

%20%20%20%20%20مشاهده%20ی%20خروجی%20در%20JSBin%20%20در%20این%20مثال%20گفته%20ایم%20اولین%20عنصر%20

%20را%20پیدا%20کن%20که%20اولین%20فرزند%20هر%20عنصری%20باشد.%20در%20واقع%20تعریف%20first-child%20همین%20است!%20%20البته%20می%20توانیم%20کدها%20را%20کمی%20تغییر%20دهیم.%20به%20طور%20مثال%20در%20کد%20زیر%20می%20خواهیم%20تمام%20عناصر%20%20را%20پیدا%20کنیم%20که%20اولین%20فرزند%20یک%20عنصر%20

%20باشند:%20%20%20%20 %20%20%20

%20%20

I%20am%20a%20strong%20person.%20I%20am%20a%20strong%20person.

%20

I%20am%20a%20strong%20person.%20I%20am%20a%20strong%20person.

%20%20%20هشدار:%20اگر%20می%20خواهید%20این%20ویژگی%20در%20Internet%20Explorer%208%20و%20قبل%20تر%20کار%20کند%20باید%20DOCTYPE%20را%20مشخص%20کرده%20باشید.

%20%20%20%201%202%203%204%205%206%207%208%209%2010%2011%2012%2013%2014%2015%2016%2017%2018%20%20%20 %20%20%20 %20%20%20

I%20am%20a%20strong%20person.%20I%20am%20a%20strong%20person.

%20

I%20am%20a%20strong%20person.%20I%20am%20a%20strong%20person.

%20%20%20هشدار:%20اگر%20می%20خواهید%20این%20ویژگی%20در%20Internet%20Explorer%208%20و%20قبل%20تر%20کار%20کند%20باید%20DOCTYPE%20را%20مشخص%20کرده%20باشید.

%20%20%20%20%20مشاهده%20ی%20خروجی%20در%20JSBin%20%20از%20آنجا%20که%20هر%20دو%20عنصر%20%20اولین%20فرزند%20هر%20دو%20عنصر%20

%20بوده%20اند،%20هر%20دو%20انتخاب%20شده%20اند.%20%20یک%20مثال%20دیگر%20می%20تواند%20به%20این%20شکل%20باشد%20که%20بگوییم%20تمام%20عناصر%20%20را%20انتخاب%20کند%20که%20در%20یک%20عنصر%20

%20باشند%20و%20آن%20عنصر%20

%20اولین%20فرزند%20یک%20عنصر%20دیگر%20نیز%20باشد!%20به%20مثال%20زیر%20توجه%20کنید:%20%20%20%20 %20%20%20

%20%20

I%20am%20a%20strong%20person.%20I%20am%20a%20strong%20person.

%20

I%20am%20a%20strong%20person.%20I%20am%20a%20strong%20person.

%20%20هشدار:%20اگر%20می%20خواهید%20این%20ویژگی%20در%20Internet%20Explorer%208%20و%20قبل%20تر%20کار%20کند%20باید%20DOCTYPE%20را%20مشخص%20کرده%20باشید.

%20%20%20%201%202%203%204%205%206%207%208%209%2010%2011%2012%2013%2014%2015%2016%2017%2018%20%20%20 %20%20%20 %20%20%20

I%20am%20a%20strong%20person.%20I%20am%20a%20strong%20person.

%20

I%20am%20a%20strong%20person.%20I%20am%20a%20strong%20person.

%20%20%20هشدار:%20اگر%20می%20خواهید%20این%20ویژگی%20در%20Internet%20Explorer%208%20و%20قبل%20تر%20کار%20کند%20باید%20DOCTYPE%20را%20مشخص%20کرده%20باشید.

%20%20%20%20%20مشاهده%20ی%20خروجی%20در%20JSBin%20%20شبه%20عنصر%20lang:%20شبه%20عنصر%20lang:%20به%20شما%20اجازه%20می%20دهد%20که%20برای%20زبان%20های%20مختلف%20قوانین%20مختلفی%20تعیین%20کنید.%20lang:%20در%20مثال%20زیر%20عناصر%20%20را%20پیدا%20می%20کند%20و%20سپس%20اگر%20“lang=”no%20داشتند%20برای%20آن%20ها%20علامت%20خاصی%20می%20گذارد:%20%20%20%20 %20%20%20 %20%20

Some%20text%20A%20quote%20in%20a%20paragraph%20Some%20text.

%20

In%20this%20example,%20:lang%20defines%20the%20quotation%20marks%20for%20q%20elements%20with%20lang="no":

%20%20هشدار:%20اگر%20می%20خواهید%20این%20ویژگی%20(یعنی%20:lang)%20در%20Internet%20Explorer%208%20و%20قبل%20تر%20کار%20کند%20باید%20DOCTYPE!%20را%20مشخص%20کرده%20باشید.

%20%20%20%201%202%203%204%205%206%207%208%209%2010%2011%2012%2013%2014%2015%2016%2017%2018%20%20%20 %20%20%20 %20%20%20

Some%20text%20A%20quote%20in%20a%20paragraph%20Some%20text.

%20

In%20this%20example,%20:lang%20defines%20the%20quotation%20marks%20for%20q%20elements%20with%20lang="no":

%20%20%20هشدار:%20اگر%20می%20خواهید%20این%20ویژگی%20(یعنی%20:lang)%20در%20Internet%20Explorer%208%20و%20قبل%20تر%20کار%20کند%20باید%20DOCTYPE!%20را%20مشخص%20کرده%20باشید.

%20%20%20%20%20مشاهده%20ی%20خروجی%20در%20JSBin%20%20شبه%20کلاس%20های%20دیگر%20شبه%20کلاس%20های%20بسیار%20زیادی%20در%20زبان%20CSS%20وجود%20دارد.%20به%20این%20شبه%20کلاس%20ها%20نگاه%20کنید:%20%20:active%20:any-link%20:blank%20:checked%20:current%20:default%20:defined%20:dir()%20:disabled%20:drop%20:empty%20:enabled%20:first%20:first-child%20:first-of-type%20:fullscreen%20:future%20:focus%20:focus-visible%20:focus-within%20:has()%20:host%20:host()%20:host-context()%20:hover%20:indeterminate%20:in-range%20:invalid%20:is()%20:lang()%20:last-child%20:last-of-type%20:left%20:link%20:local-link%20:not()%20:nth-child()%20:nth-col()%20:nth-last-child()%20:nth-last-col()%20:nth-last-of-type()%20:nth-of-type()%20:only-child%20:only-of-type%20:optional%20:out-of-range%20:past%20:placeholder-shown%20:read-only%20:read-write%20:required%20:right%20:root%20:scope%20:target%20:target-within%20:user-invalid%20:valid%20:visited%20:where()%20%20واضح%20است%20که%20شبه%20کلاس%20ها%20بسیار%20زیاد%20هستند%20و%20نمیتوان%20تمام%20آن%20ها%20را%20در%20این%20قسمت%20پوشش%20داد.%20اگر%20دوست%20دارید%20با%20شبه%20کلاس%20های%20بیشتری%20آشنا%20شوید%20می%20توانید%20به%20صفحه%20ی%20شبکه%20ی%20توسعه%20دهندگان%20Mozilla%20سر%20بزنید.%20در%20این%20صفحه%20اطلاعات%20کاملی%20به%20همراه%20مثال%20های%20متعدد%20برای%20انواع%20شبه%20کلاس%20ها%20آورده%20شده%20است.%20%20امیدوارم%20از%20این%20قسمت%20لذت%20برده%20باشید."> روکسو

 

 
ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • آرشیو
    آمار سایت
  • کل مطالب : 346
  • کل نظرات : 0
  • افراد آنلاین : 1
  • تعداد اعضا : 0
  • آی پی امروز : 16
  • آی پی دیروز : 17
  • بازدید امروز : 93
  • باردید دیروز : 21
  • گوگل امروز : 2
  • گوگل دیروز : 5
  • بازدید هفته : 167
  • بازدید ماه : 532
  • بازدید سال : 7,041
  • بازدید کلی : 35,276