ممکن نیست که این ترفند را بلد بوده باشید!
شما به کمک CSS می توانید رنگ متن صفحات وب را در حالت انتخاب شده مشخص کنید. این ترفند دست کم در مرورگر های جدید نظیر safari و firefox کار می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | /** * Safari and Opera */ ::selection { background : #c3effd ; color : #000 ; } /** * Firefox */ ::-moz-selection { background : #c3effd ; color : #000 ; } |
همانطور که می بینید، با استفاده از انتخابگر ::selection می توانید متن های انتخاب شده را هدف قرار دهید
اگر سایز محتوا از سایز پنجره کمتر باشد، معمولا فایرفاکس اسکرول را مخفی می کند.
مشکلی که گاها پیش می آید این است که در صورتی که به هر دلیل سایز محتوا تغییر کند یا سایز پنجره نسبت به محتوا تغییر کند، نوار اسکرول مجددا ظاهر می شود و باعث تولید جهش در صفحه می شود.
در صورتی که می خواهید اسکرول همواره در فایرفاکس نمایان باشد، می توانید از دستور زیر استفاده کنید:
1 2 3 | html { overflow-y: scroll ; } |
گرچه اکثر کاربران اینترنت ترجیح می دهند که صفحات وب را به صورت آنلاین مطالعه کنند، اما بعضی از کاربران شما ممکن است بخواهند متن مقاله را پرینت بگیرند و سپس مطالعه کنند.
به کمک CSS می توانید محل شکسته شدن صفحات و رفتن به صفحه ی بعد در هنگام پرینت را کنترل کنید. فقط کافی است که کد CSS زیر را به استایل های خود اضافه کنید و سپس به هر تگی که می خواهید در صفحه ی بعد چاپ شود، کلاس page-break را انتساب دهید.
1 2 3 | .page-break { page-break-before : always ; } |
طراحان با تجربه، از کاربرد این دستور اطلاع دارند، اما معمولا تازه کارها، از این دستور !important در CSS بی اطلاع هستند و تعجب می کنند.
با افزودن دستور !important به انتهای دستور css تان، اولویت دستور مورد نظر را نسبت به دستورات دیگر که با آن در تضاد هستند، افزایش می دهید.
در کد زیر، رنگ زمینه، به دلیل وجود !important آبی خواهد بود (و نه قرمز)
1 2 3 4 | .page { background-color : blue !important ; background-color : red ; } |
کاربرد روش فوق وقتی است که شما یک css rule می نویسید، اما متوجه می شوید که هیچ تاثیری ندارد! دلیل این مسئله احتمالا این است که یک دستور دیگر با اولویت بالاتر وجود دارد که اثر دستور شما را خنثی می کند.
برای این که دستور شما اولویت بالا تری داشته باشد و اثر دستورات دیگر را خنثی کند، می توانید از !important استفاده کنید.
این ترفند در مقاله ی قبلی شرح داده شده است:
۱٠ ترفند CSS که احتمالا تا کنون نمی دانستید!
متاسفانه مرورگر Internet Explorer دستور min-height در CSS را درک نمی کند و لذا نمی توان با دستور فوق، ارتفاع حد اقل را در IE مشخص نمود.
برای حل این مشکلی می توانید از ترفند زیر استفاده کنید.
1 2 3 4 5 6 7 | #container{ /* all browsers except ie6 will respect the !important flag */ height : auto !important ; min-height : 500px ; /* Should have the same value as the min height above */ height : 500px ; } |
کد CSS زیر سبب می شود که لینک هایی که در پنجره ی جدید باز می شوند، را با استایل ویژه نمایان می کند. به این ترتیب، بازدیدکنندگان سایت، قبل از این که بر روی لینک کلیک کنند، می دانند که این لینک در یک پنجره یا تب جدید باز خواهد شد
1 2 3 4 5 6 7 8 9 10 | a[target= "_blank" ]:before, a[target= "new" ]:before { margin : 0 5px 0 0 ; padding : 1px ; outline : 1px solid #333 ; color : #333 ; background : #ff9 ; font : 12px "Zapf Dingbats" ; content : "\279C" ; } |
در کد فوق چند نکته وجود دارد که خوب است به آنها توجه کنید:
استایل دهی به اعداد یک لیست مرتب (شماره گذاری شده) به شیوه ای متفاوت نسبت به باقی متن هریک از آیتم های لیست.
در کد زیر، همانطور که می بینید، یک فونت را برای تگ ol تعریف کرده ایم و بعد برای تگ p ی درون آن، مجددا فونت را تغییر داده ایم. به این ترتیب، استایل خود لیست (شامل اعداد لیست) با محتوای آن (که باید در درون p قرار گرفته باشد) متفاوت خواهد بود.
1 2 3 4 5 6 7 8 | ol { font : italic 1em Georgia, Times, serif ; color : #999999 ; } ol p { font : normal . 8em Arial , Helvetica , sans-serif ; color : #000000 ; } |
شما می توانید حرف اول مقاله تان را همانند روزنامه ها و مجلات، بزرگ کنید! برای ایجاد این جلوه، می توانید از کلاس کاذب :first-letter استفاده کنید.
1 2 3 4 5 6 7 8 | p:first-letter { display : block ; margin : 5px 0 0 5px ; float : left ; color : #FF3366 ; font-size : 3.0em ; font-family : Georgia; } |
گرچه CSS 3 خاصیت جدید opacity را برای شفافیت معرفی کرده است، اما همه ی مرورگرها از آن پشتیبانی نمی کنند. این یک ترفند CSS برای شفافیت در همه ی مرورگرها می باشد
1 2 3 4 5 6 | .transparent_class { filter: alpha(opacity= 50 ); -moz-opacity: 0.5 ; -khtml-opacity: 0.5 ; opacity: 0.5 ; } |
این ترفند در مقاله ی قبلی شرح داده شده است:
۱٠ ترفند CSS که احتمالا تا کنون نمی دانستید!
این ترفند در مقاله ی قبلی شرح داده شده است:
۱٠ ترفند CSS که احتمالا تا کنون نمی دانستید!
مرورگر Internet Explorer بدون توجه به ارتفاع متن، یک اسکرول عمودی به کادر های متنی textarea اضافه میکند. با استفاده از روش زیر می توانید مشکل فوق را برطرف نمایید
1 2 3 | textarea{ overflow : auto ; } |
برخی از مرورگر ها مانند فایرفاکس و IE دور لینک هایی که کاربر کلیک می کند، یک حاشیه ی نقطه چین نمایش می دهند. این یک ویژگی مفید است و به این ترتیب، کاربر می تواند بفهمد که روی کدام لینک کلیک کرده است و یا در حال حاضر فوکوس بر روی کدام لینک قرار دارد. با این حال، این ویژگی گاها باعث زشت شدن لینک می شود. برای حذف این حاشیه می توانید از کد زیر استفاده کنید:
1 2 3 | a:active, a:focus { outline : none ; } |
گاهی اوقات مرورگر IE به شیوه ی خاصی رفتار می کند و سبب می شود که برخی عناصر مخفی شوند. و هنگامی که با موس چیزی را انتخاب می کنیم، مجددا عناصر مخفی شده، ظاهر می شوند. این مشکل به سبب برخی باگ ها در IE به هنگام برخورد با عناصر شناور (float) به وجود میآید. این مشکل با افزودن دستور position: relative به عناصری که مخفی می شوند، قابل حل می باشد.
انتخاب گرهای خواص در CSS بسیار قدرمند هستند و به شما امکانات زیادی را برای کنترل استایل عناصر متفاوت می دهند. به عنوان مثال شما می توانید بر اساس مقدار href در لینک ها (یا به عبارت دیگر، بر اساس مقصد لینک ها)، یک آیکون متفاوت را در سمت چپ لینک ها قرار دهید.
به این روش شما می توانید آیکون های متفاوتی را به لینک هایی که به یک فایل pdf یا یک فایل word اشاره می کنند انتساب دهید و کاربر قبل از این که کلیک کند، می داند که مقصد این لینک، فایل pdf است یا تصویر است یا ...
1 2 3 4 | a[href$= '.doc' ] { padding : 0 20px 0 0 ; background : transparent url (/graphics/icons/doc.gif) no-repeat center right ; } |
با استفاده از خاصیت cursor می توانید شکل اشاره گر موس را تغییر دهید. مقدار cursor: pointer سبب می شود که اشاره گر موس شبیه دست (مانند لینک ها) بشود.
به عنوان مثال فرض کنید که می خواهیم اشاره گر موس بر روی تمامی عناصری که توسط کاربر قابل کلیک هستند، مشابه لینک ها بشود. در زیر کد CSS برای انجام این کار آمده است:
1 2 3 | input[type=submit], label, select, . pointer { cursor : pointer ; } |
برای این که کلیه ی حروف یک متن با استفاده از حروف بزرگ نمایش داده شود، می توانید از دستور text-transform استفاده کنید. این دستور معمولا برای نمایش دادن عنوان صفحات مفید است.
1 | text-transform : capitalize ; |
با استفاده از دستور زیر، می توانید کلیه ی حروف متن مورد نظر را با استفاده از حروف بزرگ (capital) بنویسید اما سایز حروف هر کلمه نسبت به حرف اول آن کلمه کوچک تر خواهد بود (small caps)
1 | font-variant : small-caps ; |
با استفاده از روش زیر می توانید فیلد های متنی که فوکوس را در اختیار دارند را highlight کنیم. البته این روش در IE کار نخواهد کرد
1 2 3 | input[type=text]:focus, input[type=password]:focus { border : 2px solid #000 ; } |
در زیر لینک های تصویری (تصاویری که در درون لینک قرار گرفته باشند) یک حاشیه ی آبی رنگ زشت نمایش داده می شود. بهتر است که این حاشیه ی زائد را برای همه ی لینک های تصویری حذف کنیم و اگر مورد خاصی را خواستیم با حاشیه نمایش دهیم، مجددا حاشیه را به آن اضافه کنیم. برای این منظور، از دستور زیر استفاده می کنیم:
1 2 3 | a img { border : none ; } |
آن زمانی که برای استایل دهی و مرتب سازی فرم ها از جدول ها استفاده می شد، گذشت. CSS به شما اجازه می دهد که فرم های قابل دسترس ایجاد کنید که دارای طرحی مشابه جدول باشند اما از جدول به هیچ عنوان در آن ها استفاده نشده باشد.
برای این منظور از تگ <label> استفاده می کنیم. با استفاده از تگ label می توانیم مطمئن شویم که دسترسی پذیری فرم بیشتر خواهد شد. در زیر یک نمونه کد HTML و CSS مربوطه برای ایجاد یک فرم بدون استفاده از جدول آمده است و می توانید از آن به عنوان الگو برای طراحی فرم هایتان استفاده کنید:
کد HTML
1 2 3 4 5 6 7 8 9 | < form method = "post" action = "#" > < p >< label for = "username" >Username</ label > < input type = "text" id = "username" name = "username" /> </ p > < p >< label for = "password" >Username</ label > < input type = "password" id = "password" name = "pass" /> </ p > < p >< input type = "submit" value = "Submit" /></ p > </ form > |
کد CSS
1 2 3 4 5 6 | p label{ width : 100px ; float : left ; margin-right : 10px ; text-align : right ; } |
به خاصیت for در تگ label توجه کنید. for در واقع id ی عنصری است که این label برای آن تهیه شده است. label ها برچسب هایی هستند که برای کادر های متنی و ... در صفحه قرار می گیرند. باید با خاصیت for مشخص کنیم که این label برای کدام عنصر می باشد.
تنظیم سایز فونت به طور مناسب به 62.5% در تگ <body> باعث می شود که 1em به لحاظ سایز معادل 10px باشد. این کار به شما اجازه می دهد که به سادگی و آسانی از واحد em استفاده کنید و بدانید که معادل آن به پیکسل چقدر است.
1 2 3 | body { font-size : 62.5% ; } |
تگ acronym
برای نوشتن علامات اختصاری سرنام کلمات مفید است و تگ abbr
برای نوشتن کلمات اختصاری می باشد.
تگ های acronym
و abbr
اطلاعات مفیدی را برای کاربران، مرورگرها و موتور های جستجو فراهم می کنند. اما بیشتر مرورگرها، به جز فایرفاکس، این تگ ها را به طور متفاوتی نمایش نمی دهند.
در زیر ترفند CSS برای highlight کردن تگ های acronym و abbr آمده است.
1 2 3 4 | acronym, abbr{ border-bottom : 1px dotted #333 ; cursor : help ; } |
قطعه کد CSS زیر کلیه ی مقادیر پیش فرض مرورگر را بازنشانی می کنند و سبب می شود که کدهای css شما در تمامی مرورگر به گونه ی یکسان کار کند و ناسازگاری مرورگر ها را خنثی می کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | html, body, div, span, applet, object, iframe, h 1 , h 2 , h 3 , h 4 , h 5 , h 6 , p, blockquote, pre , a, abbr, acronym, address, big, cite, code , del, dfn, em, font, img, ins, kbd, q, s, samp, small , strike, strong, sub , sup, tt, var, b, u, i, center , dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption , tbody, tfoot, thead, tr, th, td { margin : 0 ; padding : 0 ; border : 0 ; outline : 0 ; font-size : 100% ; vertical-align : baseline ; background : transparent ; } body { line-height : 1 ; } ol, ul { list-style : none ; } blockquote, q { quotes : none ; } blockquote:before, blockquote:after, q:before, q:after { content : '' ; content : none ; } /** * remember to define focus styles! */ :focus { outline : 0 ; } /** * remember to highlight inserts somehow! */ ins { text-decoration : none ; } del { text-decoration : line-through ; } /** * tables still need 'cellspacing="0"' in the markup */ table { border-collapse : collapse ; border-spacing : 0 ; } |