<?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>مدونة أحمد الحداد &#187; height</title>
	<atom:link href="http://www.cdes.ws/tag/height/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cdes.ws</link>
	<description>المصمم الكلاسيكي - CDES - مصمم ويب و جرافيكس</description>
	<lastBuildDate>Mon, 08 Mar 2010 05:30:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>نصيحة CSS: التوسيط العمودي</title>
		<link>http://www.cdes.ws/2009/10/23/%d9%86%d8%b5%d9%8a%d8%ad%d8%a9-css-%d8%a7%d9%84%d8%aa%d9%88%d8%b3%d9%8a%d8%b7-%d8%a7%d9%84%d8%b9%d9%85%d9%88%d8%af%d9%8a/</link>
		<comments>http://www.cdes.ws/2009/10/23/%d9%86%d8%b5%d9%8a%d8%ad%d8%a9-css-%d8%a7%d9%84%d8%aa%d9%88%d8%b3%d9%8a%d8%b7-%d8%a7%d9%84%d8%b9%d9%85%d9%88%d8%af%d9%8a/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 20:21:23 +0000</pubDate>
		<dc:creator>أحمد الحداد</dc:creator>
				<category><![CDATA[نصائح CSS]]></category>
		<category><![CDATA[height]]></category>
		<category><![CDATA[padding]]></category>
		<category><![CDATA[tabs]]></category>
		<category><![CDATA[vertical-align]]></category>

		<guid isPermaLink="false">http://www.cdes.ws/?p=100</guid>
		<description><![CDATA[لغة CSS عالم واسع جداً بشكل مخيف&#8230; تقريباً لا حدود له.  فيه أفكار خيالية، وجنونية ما تجي على بالي وبالك 
بعض هذي الأفكار، ممكن تكون بسيطة جداً، ولا فيها أي شيء من التعقيد، لكنها ممكن تحل لك مشكلة عويصة جابت لك المرض.
أحد هذي الأفكار، تتضمن: التوسيط العمودي
في هذا الموضوع، راح أتكلم بشكل شامل عن هذه [...]]]></description>
			<content:encoded><![CDATA[<p>لغة CSS عالم واسع جداً بشكل مخيف&#8230; تقريباً لا حدود له.  فيه أفكار خيالية، وجنونية ما تجي على بالي وبالك <img src='http://www.cdes.ws/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
بعض هذي الأفكار، ممكن تكون بسيطة جداً، ولا فيها أي شيء من التعقيد، لكنها ممكن تحل لك مشكلة عويصة جابت لك المرض.</p>
<p>أحد هذي الأفكار، تتضمن: التوسيط العمودي</p>
<p>في هذا الموضوع، راح أتكلم بشكل شامل عن هذه فكرة، وفوائدها، والمشاكل اللي تحلها.</p>
<p>بسم الله نبدأ،<br />
<span id="more-100"></span></p>
<h2>التوسيط العمودي</h2>
<p>لنفترض بأنني حاولت أصمم وأنسّق تبويبات (Tabs) بإستخدام الـ HTML والـ CSS.<br />
علشان أوصل للنتيجة المرغوبة، راح أستخدم الشفرة التالية:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#tabs</span> ul <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">list-style</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span>
&nbsp;
<span style="color: #cc00cc;">#tabs</span> li <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">3px</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>      <span style="color: #808080; font-style: italic;">/* لوضع مسافات بين أطراف العنصر ومحتواه */</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">2px</span><span style="color: #00AA00;">;</span>       <span style="color: #808080; font-style: italic;">/* لوضع مسافات بين كل عنصر، والعنصر الذي على يساره */</span>
  <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>


<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="html4strict" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">ul</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;tabs&quot;</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>رابط أول<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>رابط ثاني<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>رابط ثالث<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
	<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">li</span>&gt;</span>رابط رابع<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">li</span>&gt;</span>
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">ul</span>&gt;</span></pre></td></tr></table></div>

<p>وراح تكون النتيجة كالتالي:</p>
<p><img class="alignnone size-full wp-image-110" title="padding" src="http://www.cdes.ws/wp-content/uploads/2009/10/padding.png" alt="padding" width="287" height="41" /></p>
<p>طبعاً، ما راح أواجه أي مشكلة لو إستخدمت الشفرة السابقة، لأن نص الروابط راح يتم توسيطه عمودياً في الحاوي Container، والسبب أني حطيت قيمة التبطين Padding متساوية من الأعلى والأسفل.</p>
<p>المشكلة تتخثر لو جا على بالي أخلي إرتفاع التبويبات Tabs محدد، بإستخدام الخاصية height في الـCSS.</p>
<h2>طيب السؤال،</h2>
<p><strong>وش يخليني أستخدم height دام أنها راح تسوي لي مشكلة؟ ليه ما أستمر بإستخدام التبطين Padding فقط؟</strong><br />
الجواب هو أنك لو إستخدمت التبطين Padding ما راح تعرف إرتفاع كل تبويب Tab، وراح تبني تصميمك على &#8220;التقريب&#8221; و&#8221;التلفيق&#8221; في المقاسات،</p>
<p>وهذا عيييييييييييب&#8230; كيف ترضى تلفّق؟؟؟</p>
<p>تخيل أنك جالس تصمم شكل أزرار حق جهاز، وبنيتها على التقريب، ولما جاو بيركبونها، شافو بأن أزرارك يا حضرة المهندس أكبر من المساحة اللي متوفرة في جسم الجهاز، يا سلام عليك يا بطل.. هذاك خسرت شركتك ملايين، ولازم يصنعون الأزرار من جديد.. <img src='http://www.cdes.ws/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>تدري بأن نفس المشكلة راح تواجهك في تصميم المواقع، وهو أنك تبني تصميمك على قياسات تقريبية وبعدين تكتشف أن هذا العنصر ما ينحط في المكان الفلاني، وتضطر تستمر في التلفيق هنا وهناك علشان يزبط الموضوع.  يا أخي وش رايك تبدأ من البداية صح، علشان حتى لو جا واحد بيعدل على تصميمك، ما يحتاج يصير عبقري زمانه علشان يؤدي مهمته.</p>
<h2>خلصنا تهزيء، نرجع للشغل&#8230;</h2>
<p>فهمت الحين ليش لازم تستخدم height بدل padding ؟</p>
<p>النتيجة السيئة بإستخدام الـ height شفرتها ونتيجتها كالتالي:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#tabs</span> li <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">35px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">2px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p><img class="alignnone size-full wp-image-111" title="height" src="http://www.cdes.ws/wp-content/uploads/2009/10/height.png" alt="height" width="294" height="51" /></p>
<p>لاحظ بأن نص الروابط مرتفع فوق شوي، ومهو صاير في المنتصف، وهذي نتيجة غير مرضية.</p>
<p>طبعاً بإمكانك إضافة تبطين، وتجلس تلفق فيه إلى أن يصير في المنتصف، لكن لا تنسى أنك راح تضطر تقلل من قيمة height لأن إضافة التبطين، يؤثر على القيمة النهائية لإرتفاع العنصر.  كيف؟</p>
<p>لا تقول لي أنك ما تدري!!&#8230; ترى إرتفاع العنصر ما يتحدد بس بقيمة height.. لا لا يا حبيبي، إرتفاع العنصر يتأثر بأربعة أشياء، ألا وهي:</p>
<ul>
<li>قيمة الإرتفاع height</li>
<li>قيمة الهامش margin</li>
<li>قيمة التبطين padding</li>
<li>قيمة الحدود border</li>
</ul>
<p>يعني، لو عندك div قيم خصائصه كالتالي:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">div <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #cc66cc;">0</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>إستناداً للكلام اللي مكتوب فوق، راح نستنتج أن إرتفاع الـ div بيكون: ١٨ بيكسل&#8230;!!</p>
<p>التفاصيل كالتالي:</p>
<ul>
<li>١٠ بيكسل من قيمة height</li>
<li>٢ بيكسل من قيمة margin (١ فوق و ١ تحت)</li>
<li>٤ بيكسل من قيمة padding (٢ فوق و ٢ تحت)</li>
<li>٢ بيكسل من قيمة border (١ فوق و ١ تحت)</li>
</ul>
<p>علشان كذا، لازم تتذكر هذا القانون لو شفت بيكسلات زايدة في تصميمك وقمت تبكي لأنك ما تعرف من وين جات.</p>
<h2>الحل</h2>
<p>الحل جداً بسيط، ولا يطري على البال، كيف؟<br />
كل ما عليك فعله، هو إستخدام خاصية line-height للتبويب وإعطائها نفس قيمة height بالضبط.<br />
الحل منطقي جداً، وهي جعل إرتفاع السطر <strong>يساوي</strong> إرتفاع الحاوي أو الـ Container، وبما أن النص دائماً ما يكون في وسط السطر اللذي هو عليه، إذاً سيكون في وسط السطر الذي هو عليه وإرتفاعه مثلاً ٣٥ بيكسل، هذا يعني بأنه سيكون في وسط الـ ٣٥ بيكسل&#8230; Bingo!!!</p>
<p>الشفرة راح تكون كالتالي:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#tabs</span> li <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>  <span style="color: #808080; font-style: italic;">/* لا نرغب بإضافة تبطين علوي أو سفلي حتى لا تتأثر القيمة المطلقة لإرتفاع التبويب */</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">35px</span><span style="color: #00AA00;">;</span>  <span style="color: #808080; font-style: italic;">/* إرتفاع التبويب المرغوب */</span>
  <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">35px</span><span style="color: #00AA00;">;</span>  <span style="color: #808080; font-style: italic;">/* قيمة مطابقة لإرتفاع التبويب المرغوب */</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">2px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>والنتيجة كالتالي:</p>
<p><img class="alignnone size-full wp-image-112" title="height-fixed" src="http://www.cdes.ws/wp-content/uploads/2009/10/height-fixed.png" alt="height-fixed" width="289" height="49" /></p>
<h2>على فكرتين</h2>
<ul>
<li>تقدر تستخدم هذه الفكرة لحل مشاكل التوسيط العمودي للنصوص في أي حاوية بشرط يكون النص في سطر واحد فقط، ولا يمتد لأكثر من سطر.</li>
<li>إستخدام الخاصية vertical-align لا يفي بالغرض، لأن هذه الخاصية مخصصة لتوسيط محتويات خلايا الجداول td و th</li>
</ul>
<h2>الختام</h2>
<p>في نهاية هذه الحلقة، أتمنى أن أكون ما طولت عليكم، وتكون هذه الفكرة، مفيدة.. لا تنسى تحط بعض البهارات على التبويبات، مثل:<br />
<img src="http://www.cdes.ws/wp-content/uploads/2009/10/beautifiedtabs.png" alt="beautifiedtabs" title="beautifiedtabs" width="305" height="56" class="alignnone size-full wp-image-116" /></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code"><pre class="css" style="font-family:monospace;"><span style="color: #cc00cc;">#tabs</span> li <span style="color: #00AA00;">&#123;</span>
  <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">35px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">line-height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">35px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #cc66cc;">0</span> <span style="color: #933;">2px</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#ccc</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#333</span><span style="color: #00AA00;">;</span>
  <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">center</span><span style="color: #00AA00;">;</span>
  -moz-border-radius-topleft<span style="color: #00AA00;">:</span> <span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>           <span style="color: #808080; font-style: italic;">/* تدوير الزاوية العلوية اليسرى لمتصفح فايرفوكس */</span>
  -moz-border-radius-topright<span style="color: #00AA00;">:</span> <span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>        <span style="color: #808080; font-style: italic;">/* تدوير الزاوية العلوية اليمنى لمتصفح فايرفوكس */</span>
  -webkit-border-top-left-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>        <span style="color: #808080; font-style: italic;">/* تدوير الزاوية العلوية اليسرى لمتصفح سفاري وكروم */</span>
  -webkit-border-top-right-radius<span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>     <span style="color: #808080; font-style: italic;">/* تدوير الزاوية العلوية اليمنى لمتصفح سفاري وكروم */</span>
  <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#aaa</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

]]></content:encoded>
			<wfw:commentRss>http://www.cdes.ws/2009/10/23/%d9%86%d8%b5%d9%8a%d8%ad%d8%a9-css-%d8%a7%d9%84%d8%aa%d9%88%d8%b3%d9%8a%d8%b7-%d8%a7%d9%84%d8%b9%d9%85%d9%88%d8%af%d9%8a/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
