<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>corelist.net &#187; CSS</title>
	<atom:link href="http://weblog.corelist.net/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://weblog.corelist.net</link>
	<description>وبلاگ شخصی علی ستاری</description>
	<lastBuildDate>Sat, 18 Jul 2009 03:20:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>خلاصه‌نویسی CSS</title>
		<link>http://weblog.corelist.net/archives/1387/02/17/css-shorthands/</link>
		<comments>http://weblog.corelist.net/archives/1387/02/17/css-shorthands/#comments</comments>
		<pubDate>Tue, 06 May 2008 16:37:44 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[shorthands]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/?p=85</guid>
		<description><![CDATA[ممکنه تا به حال کدهای CSS زیادی دیده باشید که خیلی کوتاه و مفید نوشته شدند و شاید گاهی هم ازشون سر در نیاورده باشید. اکثر طراحان بعد از پشت سر گذاشتن مراحل اولیه یادگیری کدنویسی و بعد از تسلط نسبی، سعی میکنند به کارشون سرعت بیشتری بدهند و کدهای کوتاه‌تر و تمیزتری بنویسند. به [...]]]></description>
			<content:encoded><![CDATA[<p>ممکنه تا به حال کدهای CSS زیادی دیده باشید که خیلی کوتاه و مفید نوشته شدند و شاید گاهی هم ازشون سر در نیاورده باشید. اکثر طراحان بعد از پشت سر گذاشتن مراحل اولیه یادگیری کدنویسی و بعد از تسلط نسبی، سعی میکنند به کارشون سرعت بیشتری بدهند و کدهای کوتاه‌تر و تمیزتری بنویسند. به این علت خلاصه نویسی دستورات اهمیت پیدا میکنه. استفاده از کدهای خلاصه، کد شما رو ساده‌تر، کوتاه‌تر و تمیزتر میکنه. [از نظر من] نگهداری این نوع کد ساده‌تر هست و اگر مسلط باشید حتی خوندنش هم سریعتر خواهد بود!</p>
<p><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719/box.html#margin-properties"><strong>Margin/Padding</strong></a><br />
margin و padding برای هر عنصر از چهار جهت قابل تعریف هستند و صورت پیش فرض مقادیر به این شکل هست:</p>
<blockquote><p><code>margin-top: 1px;<br />
margin-right: 3px;<br />
margin-bottom: 6px;<br />
margin-left: 8px;</code></p></blockquote>
<p>همین مقادیر رو میشه به این شکل نوشت:</p>
<blockquote><p><code>margin: 1px 3px 6px 8px;</code></p></blockquote>
<p>که در واقع ترتیب به صورت ساعتگرد از بالا هست. تمام صورتهای کوتاه‌نویسی margin و padding به این شکل هست:</p>
<blockquote><p><code>margin: top right bottom left;<br />
margin: top right/left bottom;<br />
margin: top/bottom right/left;</code></p></blockquote>
<p>مورد دوم حالتی هست که سه مقدار برای margin نوشته شده. که اولی برای بالا، دومی برای چپ و راست و سومی برای پایین هست و مورد سوم هم حالتی هست که دو مقدار نوشته میشه و اولی برای بالا و پایین و دومی برای راست و چپ هست. در نهایت هم اگر تنها یک مقدار نوشته بشه به هر چهار جهت اعمال میشه.</p>
<p><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719/colors.html#background-properties"><strong>Background</strong></a><br />
background مقادیر و حالات زیادی میتونه داشته باشه. به طور مثال:</p>
<blockquote><p><code>background-color: #f00;<br />
background-image: url(background.png);<br />
background-repeat: no-repeat;<br />
background-attachment: fixed;<br />
background-position: 0 0;</code></p></blockquote>
<p>که صورت کوتاه شده‌ به شکل زیر هست:</p>
<blockquote><p><code>background: color image repeat attachment position;</code></p></blockquote>
<p>که حالت خلاصه مثال بالا به این شکل میشه:</p>
<blockquote><p><code>background: #f00 url(background.png) no-repeat fixed 0 0;</code></p></blockquote>
<p><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719/box.html#border-properties"><strong>Border</strong></a><br />
border خصوصیتهای نسبتا کمی داره: رنگ، قطر و نوع.  اما میتونه حالات زیادی داشته باشه. ساده‌ترین حالت زمانی هست که به هر چهار طرف کادر border یکسانی داشته باشه:</p>
<blockquote><p><code>border: 1px solid #000;</code></p></blockquote>
<p>مقدار اول قطر (width) حاشیه، مقدار دوم نوع حاشیه (مثل dashed یا double) و مقدار سوم رنگ حاشیه  رو مشخص میکنه.<br />
اگر لازم باشه borderهای متفاوتی برای جهت‌های مختلف یک کادر داشته باشید میتونید از border-top، border-bottom، border-right یا border-left استفاده کنید. که باز هم طرز نوشتن مقادیرش به شکل بالا هست: قطر نوع رنگ.<span id="more-85"></span><br />
خلاصه‌نویسی فقط به معنی استفاده از صورت خلاصه دستورات نیست. با کمی خلاقیت میشه کدهای کوتاه‌تر و بهتری داشت. مثلا اگر شما برای کادری border در نظر گرفتید و میخواید فقط حاشیه سمت راستی کادر قطر بیشتری داشته باشه میتونید به این شکل کد بنویسید:</p>
<blockquote><p><code>border: 1px solid #fafafa;<br />
border-right-width: 3px;<br />
</code></p></blockquote>
<p><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719/fonts.html#font-shorthand"><strong>Font</strong></a><br />
font هم یکی از موارد نسبتا پر کاربرد هست. Font خصوصیاتی مانند نوع، اندازه، توپری، کجی و ارتفاع خط داره:</p>
<blockquote><p><code>font-family: tahoma, verdana, sans-serif;<br />
font-size: 12px;<br />
font-weight: normal;<br />
font-style: italic;<br />
line-height: 120%;</code></p></blockquote>
<p>که صورت خلاصه به این شکل است:</p>
<blockquote><p><code>font: style weight size/line-height family;<br />
font: italic normal 12px/120% tahoma, verdana, sans-serif;</code></p></blockquote>
<p>دقت کنید که فقط در صورت تعریف line-height لازم هست از / (اسلش) به همراه size استفاده کنید و اگر فقط یک مقدار (پیکسلی یا درصدی) باشه به عنوان font-size در نظر گرفته میشه.</p>
<p><strong>نکات اضافی</strong><br />
صورت خلاصه نویسی که برای margin گفته شد تقریبا برای تمامی مواردی که با ابعاد (dimension) سر و کار داره صدق میکنه. مثلا برای border-width.<br />
همونطور که در مورد border با مثالی اشاره کردم، خلاصه نویسی با کمی خلاقیت نتیجه خوبی میده، شما میتونید با استفاده از ترکیبی از صورت خلاصه و گسترده دستورات در مجموع کد کوتاه‌تری داشته باشید.<br />
اگر فکر میکنید موارد و مقادیری لازم هست به دفعات توسط فردی ناآشنا با طراحی وب تغییر بکنه، بهتره از صورت خلاصه استفاده نکنید یا با یک comment ترتیب و شکل نوشتن مقادیر رو توضیح بدید.</p>
<p>مطلب مرتبط: <a href="http://weblog.alvanweb.com/2005/08/17/css-shorthand">http://weblog.alvanweb.com/2005/08/17/css-shorthand</a></p>
<p>امیدوارم این مطلب کوتاه و نه چندان مهم، هم به شما برای خوندن و نوشتن بهتر کدهای CSS کمک کنه و هم کمی وبلاگ گریزی من رو بهتر کنه! <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1387/02/17/css-shorthands/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>CSS Rollover</title>
		<link>http://weblog.corelist.net/archives/1384/05/08/css-rollover/</link>
		<comments>http://weblog.corelist.net/archives/1384/05/08/css-rollover/#comments</comments>
		<pubDate>Sat, 30 Jul 2005 03:38:23 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[طراحی وب]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/1384/05/01//</guid>
		<description><![CDATA[یکی از افکتهای معمول در طراحی وب ایجاد دکمه ها و کلیدهایی است که در حالتهای مختلف تغییر میکنند.
به عنوان مثال در زمان قرار گرقتن ماوس بر روی آنها (Hover) ، کلیک ماوس و حالت فعال بودن لینک تغییر شکل یا تغییر رنگ میدهند. به این کلیدها اصطلاحا  Rollover گفته میشود.
روشهای زیاد و متفاوتی [...]]]></description>
			<content:encoded><![CDATA[<p>یکی از افکتهای معمول در طراحی وب ایجاد دکمه ها و کلیدهایی است که در حالتهای مختلف تغییر میکنند.<br />
به عنوان مثال در زمان قرار گرقتن ماوس بر روی آنها (Hover) ، کلیک ماوس و حالت فعال بودن لینک تغییر شکل یا تغییر رنگ میدهند. به این کلیدها اصطلاحا  Rollover گفته میشود.<br />
روشهای زیاد و متفاوتی برای ایجاد چنین اثر و افکتی وجود دارد ، مانند استفاده از فلش ، استفاده از جاوا و &#8230; و استفاده از CSS !<br />
در این مقاله به شما نحوه ساخت یک Rollover ساده با CSS را آموزش میدهیم. در اینجا ما فرض میکنیم که میخواهیم یک منوی افقی برای سایت خود بسازیم .<br />
ابتدا باید به فکر گرافیک و شکل ظاهری و طرز ایجاد عکسها باشیم. شکل ظاهری کلید به شما و طرح سایر بخشهای سایت بستگی دارد در این مورد فقط توصیه میکنم که کار گرافیکی خود را با زیرکی و ظرافت نامحسوسی در قالب کادرهای یک قد مستطیلی جای دهید و با یک منحنی 5 پیکسلی که از کادر بیرون زده کار خود را سخت و پیچیده نکنید <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
برای افکت قرار گرفتن ماوس ، کلیک و حالت فعال بودن لینک معمولا از تغییر رنگ و حداکثر از تغییر حالت متن از معمولی به درشت استفاده میشود و در این مورد هم بستگی به سلیقه شما دارد.<br />
طرح گرافیکی مورد نظر من به این صورت است :<br />
 <img src="http://weblog.corelist.net/files/css-rollover/f_1.jpg" alt="Figure #1" class="centered"/><span id="more-52"></span><br />
یک نوار 30 پیکسلی ساده با دو خط 2 پیکسلی در بالا و پایین و یک طیف زمینه کم رنگ خاکستری. تغییرات برای حالتهای مختلف در رنگ نوشته ها و نوار 2 پیکسلی پایینی اعمال میشود و در نهایت برای حالت معمولی ، Hover یا قرار گرفتن ماوس و حالت Active یا لینک فعال این شکلها را داریم.<br />
مهمترین نکته این بخش نحوه خروجی گرفتن و ایجاد فایل تصویری برای استفاده در وب است. شاید ساده ترین راه ایجاد یک تصویر از هر یک از حالتهای کلید باشد که در این صورت بری هر کلید سه تصویر داریم که این تعدد تصاویر مشکلاتی چون حجم بیشتر  و تاخیر در بارگذاری کامل صفحه ایجاد میکنند و نیز مدیریت و نگه داری طرح وقت گیر میشود و مهمترین اشکال و یکی از نکته های اصلی این آموزش تاخیر در بارگذاری عکسها در حالتهایHover  و Active است به این معنی که در حالت عادی اگر عکسها به صورت جداگانه قرار گرفته باشد تنها در صورت وقوع رویداد (Event) خاص Hover یا Active این عکسها بارگذاری میشوند که از زیبایی و یکپارچگی طراحی میکاهد.<br />
<strong>راه حل و به نوعی بهترین راه چیست ؟!</strong><br />
بهترین راه استفاده از یک فایل برای هر سه حالت است . بله ! با این کار از تعداد تصاویر کاسته شده و تمام حالات به طور همزمان و یکجا بارگذاری میشوند. اما چطور ؟! <img src="http://weblog.corelist.net/files/css-rollover/f_2.jpg" alt="Figure #2" class="imgleft"/><br />
بهترین راه قرار دادن و سه حالت معمولی ، Hover و Active به طور ستونی است به شکلی که حالت اصلی در پایین ، حالت Hover در وسط  و حالت Active در بالا قرار گیرد. به این شکل :<br />
حال ما به ازای هر کلید یک تصویر داریم که ارتفاعی سه برابر ارتفاع نوار یا منوی ما دارد.<br />
اکنون به سراغ کدنویسی و بخش اصلی کار میرویم.<br />
قبل از توضیح به شما پیشنهاد میکنم مجموعه <a href="http://css.maxdesign.com.au/listutorial">آموزشهای MaxDesign در مورد لیستها</a> را مطالعه کنید.<br />
برای ایجاد یک منوی افقی از یک لیست نامرتب (UnorderedList) استفاده میکنیم و مطلقا درون صفحه از عکس (تگ img) استفاده نمیکنیم !<br />
ابتدا کدهای صفحه را مینویسیم :</p>
<blockquote><pre><code>
  &lt;ul id=&quot;nav&quot;&gt;
     &lt;li&gt;&lt;a href=&quot;/home&quot;&gt;خانه&lt;/a&gt;&lt;/li&gt;
     &lt;li&gt;&lt;a href=&quot;/hosting/&quot;&gt;میزبانی وب&lt;/a&gt;&lt;/li&gt;
     &lt;li&gt;&lt;a href=&quot;/support/&quot;&gt;پشتیبانی&lt;/a&gt;&lt;/li&gt;
     &lt;li&gt;&lt;a href=&quot;/web-develop/&quot;&gt;توسعه وب&lt;/a&gt;&lt;/li&gt;
     &lt;li&gt;&lt;a href=&quot;/web-design/&quot;&gt;طراحی وب&lt;/a&gt;&lt;/li&gt;
     &lt;li&gt;&lt;a href=&quot;/about-us/&quot;&gt;درباره ما&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
</code></pre>
</blockquote>
<p>در ادامه به سراغ شیوه نامه میرویم و به این لیست نامرتبمان شکل میدهیم.<br />
اول باید لیست عمودی خود را به صورت افقی نمایش دهیم پس یکراست به سراغ تگ UL رفته و آنرا با نام topmenu هدف قرار میدهیم. کمی ریزه کاری به خرج میدهیم، مکان و موقعیت لیست نامرتب خود را مشخص میکنیم و سپس یک پس زمینه به آن اختصاص میدهیم. این پس زمینه میله ای به اندازه یک پیکسل و به ارتفاع منوی ما (در اینجا 30  پیکسل) میباشد که به طور افقی در طول لیست تکرار میشود.<br />
توصیه میکنم با تنظیم padding بر روی صفر  مقادیر Margin راست و چپ روی auto منوی خود را در وسط بخش مورد نظر قرار دهید و همچنین کنترل li ها را به خود آنها واگذار کنیم !<br />
برای نمایش افقی کافیست مقدار display را برای liها روی inline قرار دهیم. که در نهایت کدهای اولیه به این شکل خواهد بود : </p>
<blockquote><pre><code>
ul#topmenu  {
	height: 30px;
	margin: 0 auto;
	padding: 0; 	list-style-type: none;
	text-align: center;
	background-image: url(images/tp_bg.gif);
 	background-repeat: repeat-x;
 	background-position: center;
}
ul#topmenu li  {
	margin: 0;
	padding: 0;
	display: inline;
}
</code></pre>
</blockquote>
<p>و حالا نوبت به بخشهای اصلی یعنی لینکها میرسد. برای اینکه لینکها تمامی سطح مورد نظر ما یعنی سطح کلید را پوشش دهد باید به یک عنصر بلوکی یا Block Level تبدیل شود. که در اینجا دقیقا بر عکس li باید مقدار display روی block قرار داده شود. همانطوریکه میدانید عناصر بلوکی در حالت عادی در زیر هم قرار میگرند. در نتیجه برای اینکه لینکها در کنار هم و به صورت افقی قرار بگیرند از خاصیت float استفاده میکنیم و مقدار float را برای لینک روی right قرار میدهیم.<br />
حالا ما یک لیست افقی برای کنترل بهینه عناصر و یکسری لینک بلوکی در کنار هم داریم که میتوانیم به این لینکها مقادیر عرض و ارتفاع نسبت دهیم.<br />
نکته باقیمانده متنی است که به عنوان لینک در صفحه قرار دارد که در حالت عادی این متن روی عکس با رنگ پس زمینه عنصر لینک قرار میگیرد. برای اینکه از شر این حروف و کلمات هم خلاص شویم با یک ترفند آنها را به بیرون صفحه میفرستیم و از دید بینندگان مخفی میکنیم ! (با استفاده از text-indent)<br />
در واقع این کار یک حرکت حرفه ای برای افزایش دسترس پذیری (Accessibility) و بهینه سازی برای موتورهای جستجو (SEO) نیز میباشد و همچنین گامی موثر برای پشتیبانی از مرورگرهای قدیمی. چرا که اگر به هر علتی مانند قدیمی بودن مرورگر ، عدم پشتیبانی از CSS یا &#8230; فایل CSS اجرا نشود این متنها به درستی و در جای خود نمایش داده میشوند و همچنین در مورد Spiderها ی موتورهای جستجو که فقط با متن و ساختار پایه ای صفحات سر و کار دارند و همچنین برای دستگاههای Screen Reader که افراد نابینا استفاده میکنند موثر است. ( یک تیر و چند نشان ! )<br />
مورد آخر برای لینک تعیین موقعیت عکس پس زمینه با ویژگی background-position است که در حالت معمولی باید در جای اصلی خود یعنی به فاصله 0 پیکسل از پایین لینک باشد و همواره تصویر در وسط کادر لینک قرار گیرد ، هر چند که ما ابعاد لینک را دقیقا به اندازه تصویر انتخاب میکنیم.<br />
حال ما کدی شبیه به این برای لینکها داریم :</p>
<blockquote><pre><code>
ul#nav li a  {
 	display:block;
 	text-indent:-9000px;
	text-decoration:none;
	background-position: center 0px;
	height: 30px;
 	float: right;
}
</code></pre>
</blockquote>
<p>اکنون باید به فکر حالتهای دیگر یعنی Hover و Active باشیم. برای حالتهای Hover و Active تنها کافیست محل قرار گیری عکس پس زمینه خود را به اندازه لازم (در اینجا هر با 30 پیکسل) به پایین حرکت دهیم. پس داریم :</p>
<blockquote><pre><code>
ul#nav li a:hover  {
  	text-decoration:none;
	background-position: center -30px;
}
ul#nav li a:active  {
  	text-decoration:none;
 	background-position: center -60px;
}
</code></pre>
</blockquote>
<p>حال باید به هر لینک عکس پس زمینه مربوطه را اختصاص دهیم. برای اینکار به li مربوط به هر لینک نام لینک را به عنوان ID اختصاص میدهیم : </p>
<blockquote><pre><code>
  &lt;ul id=&quot;nav&quot;&gt;
     &lt;li id=&quot;home&quot;&gt;&lt;a href=&quot;/home&quot;&gt;خانه&lt;/a&gt;&lt;/li&gt;
     &lt;li id=&quot;host&quot;&gt;&lt;a href=&quot;/hosting/&quot;&gt;میزبانی وب&lt;/a&gt;&lt;/li&gt;
     &lt;li id=&quot;supp&quot;&gt;&lt;a href=&quot;/support/&quot;&gt;پشتیبانی&lt;/a&gt;&lt;/li&gt;
     &lt;li id=&quot;webdev&quot;&gt;&lt;a href=&quot;/web-develop/&quot;&gt;توسعه وب&lt;/a&gt;&lt;/li&gt;
     &lt;li id=&quot;webdes&quot;&gt;&lt;a href=&quot;/web-design/&quot;&gt;طراحی وب&lt;/a&gt;&lt;/li&gt;
     &lt;li id=&quot;about&quot;&gt;&lt;a href=&quot;/about-us/&quot;&gt;درباره ما&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
</code></pre>
</blockquote>
<p>و در CSS به این شکل از این IDها استفاده میکنیم و عکس پس زمینه را برای هر لینک مشخص میکنیم و همچنین عرض تصویر پس زمینه هر لینک را به عنوان خاصیت width مشخص میکنیم :</p>
<blockquote><pre><code>
ul#nav li#home a  {
 	background-image: url(images/home.gif);
 	width: 52px;
}
ul#nav li#host a  {
 	background-image: url(images/host.gif);
 	width: 98px;
}
ul#nav li#supp a  {
 	background-image: url(images/supp.gif);
	width: 83px;
}
ul#nav li#webdev a  {
 	background-image: url(images/webdev.gif);
 	width: 92px;
}
ul#nav li#webdes a  {
 	background-image: url(images/webdes.gif);
 	width: 90px;
}
ul#nav li#about a  {
 	background-image: url(images/about.gif);
 	width: 76px;
}
</code></pre>
</blockquote>
<p>الان ما یک منوی افقی با افکت Rollover با حداقل کدنویسی و حجم و حداکثر بازده و سازگاری داریم !</p>
<p>نکته اول : از آنجاییکه حالت active عموما در مرورگرهای مختلف حالتی ناپایدار و سطحی است توصیه میکنم این حالت را با استفاده از یک برنامه سمت سرور (Server Side) کنترل کنید و مثلا با استفاده از یک ساختار شرطی در برنامه مدیریت محتوای خود به لینک فعال خود کلاس active را نسبت دهید . به این شکل :</p>
<blockquote><pre><code>
...
     &lt;li id=&quot;home&quot; class=&quot;active&quot;&gt;&lt;a href=&quot;/home&quot;&gt;خانه&lt;/a&gt;&lt;/li&gt;
...
</code></pre>
</blockquote>
<p>و برای CSS  داریم :</p>
<blockquote><p><code>
<pre>
ul#nav li.active a  {
  	text-decoration: none;
	background-position: center -60px;
}
</pre>
<p></code></p></blockquote>
<p>نکته دوم : شاید مایل باشید حالت بازدید شده یا Visited را نیز کنترل کرده و شکل دهید که با توجه به توضیحات بالا کار سختی نیست ! اما برای منوهای شبیه آنچه ساختیم توصیه نمیشود.</p>
<p>و اما نکته آخر اینکه این حالت تقریبا سخت ترین و پیچیده ترین حالت ایجاد چنین افکتی بود. اگر قادر به اجرای این حالت هستید قطعا ایجاد منوهای عمودی و ساده تر برای شما مثل آب خوردن است !</p>
<p>یک نمونه منوی افقی را میتوانید در این آدرس مشاهده کنید : <a href="http://digitaldreamers.biz">DigitalDreamers.Biz</a><br />
و یک نمونه از منوی عمودی را در اینجا : <a href="http://orderedlist.com">OrderedList.Com</a> </p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1384/05/08/css-rollover/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>نسخه مخصوص چاپ با CSS</title>
		<link>http://weblog.corelist.net/archives/1384/02/15/printable-version-with-css/</link>
		<comments>http://weblog.corelist.net/archives/1384/02/15/printable-version-with-css/#comments</comments>
		<pubDate>Thu, 05 May 2005 04:38:47 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[طراحی وب]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/2005/04/29/printable-version-css/</guid>
		<description><![CDATA[برای نمایش سایتها رسانه های گوناگونی وجود دارد که هر یک خصوصیات خاص خود را دارند. و شما به عنوان یک طراح وب یا مدیر سایت میتوانید نحوه نمایش سایت را در این رسانه ها کنترل کنید و ازنمایش صحیح سایت در هر یک از این رسانه ها مطمئن باشید.
یکی از این رسانه ها چاپ [...]]]></description>
			<content:encoded><![CDATA[<p>برای نمایش سایتها رسانه های گوناگونی وجود دارد که هر یک خصوصیات خاص خود را دارند. و شما به عنوان یک طراح وب یا مدیر سایت میتوانید نحوه نمایش سایت را در این رسانه ها کنترل کنید و ازنمایش صحیح سایت در هر یک از این رسانه ها مطمئن باشید.<br />
یکی از این رسانه ها چاپ است. اگر شما صاحب سایت مرجعی هستید یا مقالات و محتوای متنی زیادی در سایت شما وجود دارد و کاربران حق چاپ این مطالب را دارند قطعا تمایل دارید که نسخه قابل چاپ مناسبی به کاربران خود ارائه کنید.<br />
طراحان و توسعه دهندگان وب روشهای گوناگونی برای ایجاد نسخه مناسب چاپ برای وب سایتها دارند. با استفاده از برنامه های سمت سرویس دهنده و یا با شیوه نامه های چاپ ! بله شما با استفاده از CSS میتوانید نمایش سایت خود را در هر رسانه ای کنترل کنید.<br />
چاپ جزو رسانه های ایستا است و مطالب بعد از چاپ قابل تغییر نیستند. و قطعا در نسخه چاپ شده از سایت شما بخشهای زیادی هستند که معنی خود را از دست میدهند.<br />
به عنوان مثال تبلیغاتی که صرفا برای کلیک کردن در نظر گرفته شده ، عناصر گرافیکی صفحه و تصاویر متحرک نمایشی ، منوهای مختلف سایت و یا هر عنصری که مناسب چاپ نیست. و لازم است که این موارد از نسخه مخصوص چاپ شما حذف شوند. و شما مطالب مورد نظر را در یک ستون واحد و با رنگ زمینه و اندازه فونت مناسبی داشته باشید.<br />
<strong>و حالا چطور این موارد را اجرا کنیم ؟</strong><br />
قبل از توضیح مراحل انجام لازم به تذکر است که اگر سایت شما بر اساس استانداردهای وب طراحی شده و بخش نمایشی (Presentation) توسط CSS کاملا از بخش ساختاری (Structural) سایت جدا باشد شما با کمترین زحمت و در کوتاه ترین زمان میتوانید نسخه مخصوص چاپ داشته باشید. <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>مراحل کلی از این قرار است :</p>
<ol>
<li>نمایش و دسته بندی بخشهای مختلف سایت</li>
<li>جدا کردن عناصر دربرگیرنده مطالب</li>
<li>مخفی کردن کردن عناصر و بخشهای اضافی توسط CSS
</li>
<li>شکل دهی صفحه و تعیین فواصل ، فونتها و رنگهای مناسب با CSS
</li>
</ol>
<p>که در ادامه به شرح هر مورد میپردازیم.<br />
<span id="more-46"></span><br />
<strong>1 نمایش و دسته بندی بخشهای مختلف سایت</strong><br />
شما باید بخشهای مختلف سایت را از لحاظ کاربرد و محتوا دسته بندی کنید ما برای نمونه یک وبلاگ را در نظر میگیریم. به عنوان مثال وبلاگ بخشهایی مثل سرآیند (Header) ، منوی کناری (Side Menu) ، بخش مطالب و بخش پاورقی (Footer) دارد که در بین هر مطلب هم یک کادر تبلیغاتی وجود دارد.<br />
شما لازم است که که به این شکل دسته بندی کنید و مواردی که لازم است حذف شوند را مشخص کنید.<br />
در این مثال عناصر گرافیکی بخش سرآیند ، منوی کناری ، بخش پاورقی و تبلیغات مابین مطالب باید حذف شوند.<br />
<strong>2 جدا کردن عناصر دربرگینده مطالب</strong><br />
در این مرحله باید از لحاظ ساختاری عناصر دربرگینده مطالبتان را پیدا کنید. که معمولا یک Div یا Table cell هستند. همانطور که گفته شد اگر طراحی سایت استاندارد باشد این کار را به آسانی و به کمک نوارابزار <a href="http://webdeveloper.mozdev.org/">Web Developer&#8217;s Toolbar</a> مخصوص مرورگر <a href="http://www.mozilla.org/products/firefox">FireFox</a> میتوانید انجام دهید.<br />
برای این کار کافی است که نوارابزار مورد نظر را دریافت کرده و بر روی فایرفاکس نصب کنید. و با استقاده از قسمت Outline و با انتخاب گزینه Outline block level elements تمامی عناصر بلوکی صفحه را مشاهده کنید  در آخر با استفاده از قسمت Information و گزینه Display ID &#038; Class Details میتوانید به راحتی ID یا Class عنصر مورد نظر را پیدا کنید !<br />
و اگر برای طراحی از CSS استفاده نکردید متاسفانه باید وقت بیشتری بگذارید و با مرور کردن Source صفحه قسمتهای مورد نظر را پیدا کنید.<br />
<strong>3 مخفی کردن عناصر  بخشهای اضافی توسط CSS</strong><br />
الان که به وضوح از مشخصات عنصر حاوی مطالب آگاهی دارید میتوانید به سادی توسط CSS بخشهای دیگر را مخفی کنید. شما باید تک تک  عناصر اضافی را حذف کنید :</p>
<blockquote><p><code>#header, #sidemenu, #footer , .ads {<br />
display: none;<br />
}</code>
</p></blockquote>
<p>و این برای حالتی بود که شما از CSS استفاده کردید ! و اگر غیر از این است کار شما کمی پیچیده تر میشود و باید با استفاده زیرکانه از CSS Selectorها عناصر مورد نظر را تحت تاثیر قرار بدهید :<br />
مثلا این Selector دومین سلول جدول در اولین ردیف از سومین جدول داخل صفحه را در حالی که اولین و دومین سلولهای جدول قابل نمایش و سومین سلول مخفی هستند را تحت تاثیر قرار میدهد ! </p>
<blockquote><p>
<code>html body table+table+table tr td+td {<br />
visibility: visible;<br />
}<br />
html body table+table+table tr td+td+td {<br />
visibility: hidden;<br />
}</code></p></blockquote>
<p><strong>4 شکل دهی صفحه و تعیین فواصل ، فونتها و رنگهای مناسب با CSS</strong><br />
حالا نوبت شکل دهی صفحه است. شما میتوانید با سلیقه خود نسخه مخصوص چاپی ایجاد کنید.<br />
واگر این موارد را در نظر بگیرید نسخه چاپ شده زیباتر و بهتر خواهد بود.<br />
سعی کنید برای نوشته ها عرض مشخصی تعیین کنید مثلا با درصد 80% صفحه و یا با مقادیر ثابت 6.5 اینچ تا متن شما از کناره های کاغذ چاپ فاصله مناسبی داشته باشد.<br />
بهتر است رنگ پس زمینه مطالب سفید و رنگ متنها مشکی باشد.<br />
در صورت نیاز اندازه فونت ها را کمی درشت تر کنید.</p>
<p>بله ، الان شما نسخه قابل چاپی برای سایت دارید پس امتحان کنید !</p>
<p>نکات قابل توجه :</p>
<ul>
<li>با مطالعه مراجعی چون مرجع CSS در <a href="http://www.w3.org/Style/CSS">W3C</a> میتوانید از امکانات حرفه ای تری استفاده کنید و کنترل بهتری روی اجزای صفحه داشته باشید.
</li>
<li>اگر هنوز در طراحی سایت خود از CSS و مدلهای استاندارد استفاده نمیکنید باید به فکر نیروهای اضافی و هزینه بیشتر و وقت زیادی برای مدیریت و نگه داری سایت خود باشید !
</li>
<li>از مزایای این روش برای ایجاد نسخه قابل چاپ سهولت ویرایش و آماده کردن برای شما و سرعت در انجام کار برای کاربر نهایی خواهد بود ! زیرا برای چاپ محتوا نیازی به ارتباط مجدد با سایت شما و دریافت نسخه قابل چاپ از یک برنامه سمت سرور نیست.
</li>
</ul>
<p><strong>> اگر امکانات پیشرفته تری میخواهید :</strong><br />
ما اغلب حالتهایی که برای نسخه چاپ بی مورد بودند را حذف و ویرایش کردیم ولی برای لینکها و حروف اختصاری چه طور ؟!<br />
فکر نمیکنید کلمه ای که در مطلب شما به مرجع دیگری از طریق لینک متصل شده است برای نسخه قابل چاپ نا مفهوم میشود ؟! بله ، ولی شما میتوانید این مشکل را با CSS حل کنید !<br />
شما میتوانید آدرس لینکهای داخل صفحه را در کنار مطلب خود داشته باشید و یا عنوان کامل کلمه اختصاری را . به این مثال توجه کنید :</p>
<blockquote><p>
&#8230;</p>
<p>some texts as <a href="http://example.com" >paragraph</a> text here</p>
<p>&#8230;
</p></blockquote>
<p>و یا </p>
<blockquote><p>
…</p>
<p>Tim Berners lee is the inventor of web and the main <abbr title="World Wide Web Consortium">W3C</abbr> Leader</p>
<p>…
</p></blockquote>
<p>شما میتوانید از طریق CSS به این شکل متن را برای چاپ اصلاح کنید :</p>
<blockquote><p><code>acronym:after, abbr:after {<br />
	content: " ( " attr(title) " ) ";<br />
	font-size: smaller;<br />
	color: #666666;<br />
}<br />
a:after {<br />
	content: " ( " attr(href) " ) ";<br />
	font-size: smaller;<br />
	color: #666666;<br />
}<br />
</code></p></blockquote>
<p>و میتونید این آدرس را کمی کوچکتر از متن اصلی و کمرنگتر نمایش بدهید.<br />
که متنی شبیه به این خواهید داشت :</p>
<blockquote><p>some texts as paragraph <small>(http://example.com)</small> text here</p></blockquote>
<p>و</p>
<blockquote><p>Tim Berners lee is the inventor of web and the main W3C <small>(World Wide Web Consortium)</small> Leader</p></blockquote>
<p>در این مطلب سعی شد که شما با اصول کار آشنا شده و یک نمونه ساده از نسخه مخصوص چاپ داشته باشید. ادامه کار به سلیقه شما بستگی دارد. CSS یاد بگیرید و بهترین نسخه چاپ را درست کنید. <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
<p><em>برای نمونه در همین وبلاگ برای نسخه قابل چاپ از همین روش استفاده شده است ، امتحان کنید !</em></p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1384/02/15/printable-version-with-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Whatever:Hover</title>
		<link>http://weblog.corelist.net/archives/1383/08/13/hover-effect/</link>
		<comments>http://weblog.corelist.net/archives/1383/08/13/hover-effect/#comments</comments>
		<pubDate>Wed, 03 Nov 2004 17:19:08 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[طراحی وب]]></category>

		<guid isPermaLink="false">/?p=30</guid>
		<description><![CDATA[سلام
حتما برای شما هم تا به حال پیش اومده که بخواید برای بخشهایی از سایتتون و یا سایتی که طراحی میکنید افکتی بزارید و زیبا تر و کاربرپسندترش کنید &#8230;
و اصولا اگر به حجم صفحه و سرعت لود هم اهمیت بدید استفاده از CSS میتونه گزینه مناسبی باشه نسبت به فلش یا بعضی برنامه های [...]]]></description>
			<content:encoded><![CDATA[<p>سلام<br />
حتما برای شما هم تا به حال پیش اومده که بخواید برای بخشهایی از سایتتون و یا سایتی که طراحی میکنید افکتی بزارید و زیبا تر و کاربرپسندترش کنید &#8230;<br />
و اصولا اگر به حجم صفحه و سرعت لود هم اهمیت بدید استفاده از CSS میتونه گزینه مناسبی باشه نسبت به فلش یا بعضی برنامه های جاوا و &#8230;<br />
تویه این مطلب میخوام براتون درباره افکت Hover صحبت کنم ..<br />
نحوه کاربردش و امکاناتش و محدودیتها و راه حلهاش !<br />
حتما اسم Hover رو برای رنگ متن لینکها زمانی که موس رویه اونها قرار میگیره رو شنیدید ( در واقع OnMouseOver Event هست )<br />
ولی امروز برای طراحی های حرفه ای تر کاربرد Hover فقط به لینک محدود نمیشه .<br />
در واقع شما میتونید برای هر عنصری از صفحتون استفاده کنید ..<br />
به عنوان مثال برای Paragraph یا یک Box به صورت DIV یا &#8230;<br />
و البته طبق معمول Internet Explorer با این افکت مشکل داره و در حقیقت اصلا نمایش نمیده .<br />
راه حلی برای IE موجوده که بعدا توضیح میدم ..<br />
برای درک ساده تر براتون مثالی میزنم :<br />
فرض کنید شما میخواید یک منوی خیلی ساده برای یک سایت طراحی کنید&#8230;<br />
شما تصمیم میگیرید با یک لیست غیر ترتیبی (Unordered List یا UL ) کارتون رو انجام بدید و میخواید که افکتی براش داشته باشید &#8230;<br />
خیلی ساده میتونید با تعریف یک کلاس و حالت Hover اون کلاس این کارو رو انجام بدید &#8230;<br />
نمونه کد CSS :</p>
<blockquote><p><code>.menu ul li {<br />
background: #CCCCCC;<br />
height: 18px;<br />
margin: 3px 0px 2px;<br />
padding: 0px 5px 0px 5px;<br />
border-right: 7px solid #666666;<br />
font: normal 12px Georgia, &quot;Times New Roman&quot;, Times, serif;<br />
}</code></p></blockquote>
<p>و برای قسمت Hover :</p>
<blockquote><p><code>.menu ul li:hover {<br />
  font: normal 12px Georgia, &quot;Times New Roman&quot;, Times, serif;<br />
  color: #000066;<br />
  background: #FFFFCC;<br />
  border-right: 7px solid #FF9900;<br />
  padding-left: 7px;<br />
  } </code></p></blockquote>
<p>و داخل صفحتون کد HTML به این شکل :</p>
<blockquote><p><code>…<br />
&lt;ul&gt;Menu 1<br />
&lt;li&gt;Item 1&lt;/li&gt;<br />
&lt;li&gt;Item 2&lt;/li&gt;<br />
&lt;li&gt;Item 3&lt;/li&gt;<br />
&lt;li&gt;Item 4&lt;/li&gt;<br />
&lt;/ul&gt;<br />
  …</code></p></blockquote>
<p>قرار میگیره ! <br />
  نمونه این منوها رو تویه <a href="http://weblog.corelist.net/files/hover/">این صفحه</a> میتونید ببینید . هم افقی هم عمودی .<br />
  به همین شکل شما میتونید این افکت رو برای جدولها ، متنها و &#8230; استفاده کنید &#8230;<br />
  و اما بخش مهمتر موضوع IE و سازگاری با اون هست &#8230;<br />
  معمولا اگر بخواید همچین افکتی رو برای IE داشته باشیم باید از Event های onmouseover و onmouseout و .. استفاده کنیم که در واقع برنامه نویسی جاوا هست &#8230;<br />
  ولی مشکل اینجاست برای صفحات بزرگ و بخشهای مختلف استفاده زیاد از این موارد برای افکتمون خیلی جالب نیست و علاوه بر بالا بردن حجم ، سرعت Rendering صفحه هم پایین میاره و کدهامونو شلوغ میکنه !<br />
  حالا راه حل <a href="http://webpages.charter.net/mmmbeer/code/arbitrary-hover/">اینجاست</a> !<br />
  خیلی ساده میشه با استفاده از یک فایل جاوا اسکریپت خارجی و CSS این مشکل رو حل کرد ..<br />
  و در واقع این فایل هم دقیقا از همون Event هایی که گفتم استفاده میکنه ولی احتیاجی به تکرار اونها برای هر مورد نیست !<br />
  و تنها نکتش برای استفاده اینه که شما تویه فایل CSS تون دقیقا اون خواص مورد نظرتون رو که میخواید در حالت Hover داشته باشید رو به صورت کلاسی به همون نام تکرار میکنید !<br />
  برای مثال برای منویی که بالا گفتم میشه :</p>
<blockquote><p><code>.menu ul li.hover {<br />
 font: normal 12px Georgia, &quot;Times New Roman&quot;, Times, serif;<br />
  color: #000066;<br />
  background: #FFFFCC;<br />
  border-right: 7px solid #FF9900;<br />
  padding-right: 7px;<br />
  }</code></p></blockquote>
<p>و به همین صورت .<br />
  که اون فایل جاوا میاد و از تویه CSS تون این کلاسهایی که با .hover ختم میشه را به عنوان Event ه onmouseover قرار میده و مشکل حل میشه !<br /><a href="http://weblog.corelist.net/files/hover/hover.zip"><br />
  دریافت فایلهای نمونه و فایل جاوا</a><br />
  امیدوارم به دردتون بخوره &#8230;<br />
  موفق و پیروز باشید&#8230;<br />
  علی </p>
]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1383/08/13/hover-effect/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
