<?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>Code.ge Blog &#187; XHTML</title>
	<atom:link href="http://www.code.ge/posts/tag/xhtml/feed" rel="self" type="application/rss+xml" />
	<link>http://www.code.ge</link>
	<description>ბლოგი ვებ პროგრამირებისა და ტექნოლოგიების შესახებ</description>
	<lastBuildDate>Fri, 03 Dec 2010 12:05:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.2</generator>
		<item>
		<title>Jetpak &#8211; დამატებების ახალი სისტემა Mozilla &#8211; სგან</title>
		<link>http://www.code.ge/posts/jetpak</link>
		<comments>http://www.code.ge/posts/jetpak#comments</comments>
		<pubDate>Thu, 21 May 2009 11:27:59 +0000</pubDate>
		<dc:creator>იოსები</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google Chrome]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=260</guid>
		<description><![CDATA[საერთოდ ცნობილია რომ კონკურენცია ძალიან კარგი რამ არის. ამ მტკიცებულების სისწორის კიდევ ერთი ძალიან კარგი მაგალითი გვაქვს სახეზე კერძოდ კი Google Chrome &#8211; სა და Mofilla Firefox &#8211; ის ე.წ. extension &#8211; ების სისტემების სახით. მოგეხსენებათ რომ Google Chrome ძალიან ახალი ბრაუზერია რომელიც გასული წლის სექტემბრის დასაწყისში მოევლინა სამყაროს. მიუხედავად მისი ინოვაციურობისა მისი კრიტიკის ერთერთ [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.code.ge/javascript/jetpak/attachment/jetpack_logo" rel="attachment wp-att-261"><img src="http://www.code.ge/wp-content/uploads/jetpack_logo.png" alt="jetpack_logo" title="jetpack_logo" width="486" height="233" class="alignleft size-full wp-image-261" style="float: left; margin: 0 4px 4px 0;"/></a> საერთოდ ცნობილია რომ კონკურენცია ძალიან კარგი რამ არის. ამ მტკიცებულების სისწორის კიდევ ერთი ძალიან კარგი მაგალითი გვაქვს სახეზე კერძოდ კი Google Chrome &#8211; სა და Mofilla Firefox &#8211; ის ე.წ. extension &#8211; ების სისტემების სახით.</p>
<p>მოგეხსენებათ რომ Google Chrome ძალიან ახალი ბრაუზერია რომელიც გასული წლის სექტემბრის დასაწყისში მოევლინა სამყაროს. მიუხედავად მისი ინოვაციურობისა მისი კრიტიკის ერთერთ მთავარ მიზეზად იქცა FF &#8211; ის მსგავსი დამატებების სისტემის არ ქონის გამო. </p>
<p>ცხადია ასე პირველივე დღიდან ყველაფერის ჩადებას ვერ მოახერხებდა Google თავის ახალ ბრაუზერში, თუმცა, როგორც მალე გაირკვა შეჩერებასაც არ აპირებდა. სულ რამდენიმე თვეში გამოჩნდა პირველი პროპოზალი რომელიც <a href="http://dev.chromium.org/developers/design-documents/extensions">Chrome &#8211; ს დამატებების პლატფორმას შეეხებოდა</a>. თუმცა ამ პროპოზალში ერთმა მეტად საგულისხმო დეტალმა გაიჟღერა &#8211; განსხვავებით FF &#8211; ის ანალოგიური სისტემისგან Chrome &#8211; ს დამატებების შესაქმნელად საკმარისია მხოლოდ HTML/CSS და JavaScript. არავითარი XUL, არავითარი რთული XML კონფიგურაციის ფაილები დამატების ინსტალაციისათვის და ა.შ.</p>
<p>Google &#8211; ს ეს გდაწყვეტილება ჩემთვის პირადად გაცილებით მისაღები იყო რადგან XUL &#8211; ის ვერანაირ აუცილებლობას ვერც FF &#8211; ში ვხედავდი მანამდე და სიმართლე ითქვას ვერც დღეს ვერ ვხედავ&#8230; თუმცა არც Mozilla &#8211; მ დააყოფნა და დღეს უკვე შემოგვთავაზა FF &#8211; ის დამატებების შექმნის ახალი მექანიზმი. კერძოდ კი <a href="http://labs.mozilla.com/2009/05/introducing-jetpack-call-for-participation/">Jetpak</a>!</p>
<p>ციტატა პროექტის საიტიდან:</p>
<blockquote><p>
In short, Jetpack is an API for allowing you to <strong>write Firefox add-ons using the web technologies you already know</strong>.
</p></blockquote>
<p>რითია საინტერესო Jetpak? პირველ რიგში ისევე როგორც Crhome &#8211; ს შემთხვევაში, Jetpak &#8211; ის შემთხვევაშიც დამატების შესაქმნელად საკმარისია მხოლოდ HTML/CSS და JavaScript. ამ შემთხვევაშიც არავითარი XUL და რთული XML კონფიგურაციის ფაილები. ასევე არავიტარი ბრაუზერის გადატვირთვა დამატების ინსტალაციის შემდგომ და რაც ყველაზე ყველაზე ყველაზე მნიშვნელოვანია დეველოპმენტის პროცესში შეგვიძლია გამოვიყენოთ ნებისმიერი არსებული ინსტრუმენტული საშუალებები და Firebug დებაგირებისათვის რაც არსებულ მოდელში პრაქტიკულად შეუძლებელია. ასევე jQuery &#8211; ს მოყვარულთათვის ძალიან მნიშვნელოვანი ფაქტია რომ ეს ბიბლიოთეკა ნაგულისხმევად არის ჩადებული Jetpak &#8211; ში, რაც კიდევ უფრო გაამარტივებს დამატებების პროგრამირებას.</p>
<p>მართალია დასრულებამდე და საყოველთაო გავრცელებამდე კიდევ დიდი გზა აქვს გასავლელი Jetpak &#8211; ს, თუმცა მისი გამოყენება უკვე შესაძლებელია. ასე რომ თუ არ გეზარებათ შეგიძლიათ დააინსტალიროთ და დამატებების წერასაც შეუდგეთ <img src='http://www.code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.code.ge/posts/jetpak/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>მარტივი XPath რეალიზაცია JavaScript &#8211; ში</title>
		<link>http://www.code.ge/posts/simple-xpath-implementation-in-javascript</link>
		<comments>http://www.code.ge/posts/simple-xpath-implementation-in-javascript#comments</comments>
		<pubDate>Mon, 14 May 2007 08:49:33 +0000</pubDate>
		<dc:creator>იოსები</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JavaScript DOM]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.code.ge/javascript/simple-xpath-implementation-in-javascript</guid>
		<description><![CDATA[ვებ დოკუმენტის (ან მისი რომელიმე ნაწილის) კლიენტის მხარეს დამუშავებისას გარდაუვალია დოკუმენტის ელემენტებთან მუშაობა. დღესდღეობით დოკუმენტის ელემენტებთან მუშაობის ორი ყველაზე გავცელებული ე.წ. DOM ფუნქცია არსებობს ერთი ესენია: 1) document ობიექტის getElementById(&#8220;element-id&#8221;) მეთოდი რომელიც აბრუნებს ელემენტს მითითებული უნიკალური იდენტიფიკატორით (ელემენტის id ატრიბუტის მნიშვნელობა); 2) ელემენტის getElementsByTagName(&#8220;tagname&#8221;) მეთოდი რომელიც აბრუნებს ელემენტის ქვემდგომ იერარქიაში არსებულ ყველა &#8220;tagname&#8221; პარამეტრის შესაბამის [...]]]></description>
			<content:encoded><![CDATA[<p>ვებ დოკუმენტის (ან მისი რომელიმე ნაწილის) კლიენტის მხარეს დამუშავებისას გარდაუვალია დოკუმენტის ელემენტებთან მუშაობა. დღესდღეობით დოკუმენტის ელემენტებთან მუშაობის ორი ყველაზე გავცელებული ე.წ. DOM ფუნქცია არსებობს ერთი ესენია: 1) document ობიექტის getElementById(&#8220;element-id&#8221;) მეთოდი რომელიც აბრუნებს ელემენტს მითითებული უნიკალური იდენტიფიკატორით (ელემენტის id ატრიბუტის მნიშვნელობა); 2) ელემენტის getElementsByTagName(&#8220;tagname&#8221;) მეთოდი რომელიც აბრუნებს ელემენტის ქვემდგომ იერარქიაში არსებულ ყველა &#8220;tagname&#8221; პარამეტრის შესაბამის ელემენტს.</p>
<p>აღნიშნული ორი მეთოდი საკმაოდ ეფექტურად მუშაობს მარტივ შემთხვევებში თუმცა არსებობს რამდენიმე უარყოფითი დეტალიც:</p>
<ol>
<li>შეუძლებელია (და არც არის სასურველი. იხ. <a href="http://www.code.ge/css/minimizing-css-selectors">CSS სელექტორების მინიმიზაცია</a>) რომ დოკუმენტში ყველა ელემენტს გააჩნდეს უნიკალური იდენტიფიკატორი;</li>
<li>გამომდინარე პირველი მიზეზიდან ყოველთვის როდესაც კი დაგვჭირდება ელემენტის ქვეშ მყოფი რომელიმე ელემენტის მოპოვება მისი ტეგის დასახელების მიხედვით გვიწევს უამრავი არასაჭირო იტერაციის განხორციელება;</li>
</ol>
<p><span id="more-60"></span></p>
<p>მსგავსი ტიპის ამოცანების უფრო მოქნილი ხერხებით გადასაჭრელად არსებობს სპეციალური ენა სახელად <strong>XPath</strong>. თავისთავად ამ ენის დანიშნულება მდგომარეობს იმაში რომ მარტივად მოვიპოვოთ ინფორმაცია XML დოკუმენტში არსებული რომელიმე ელემენტის შესახებ.</p>
<p>არსებობს თუ არა XPath &#8211; ის მხარდაჭერა თანამედროვე ბრაუზერებში? დიახ არსებობს&#8230; თუმცა თავსებადობა სხვადასხვა რეალიზაციებს შორის საკმაოდ უხარისხოა.</p>
<p>არსებობს თუ არა რაიმე მზა ბიბლიოთეკები რომლებიც თავიდან აგვარიდებს არსებულ არათავსებადობის პრობლემებს? დიახ არსებობს&#8230; მაგრამ რამდენად საჭიროა ყოველი ამოცანისათვის მსგავსი ბიბლიოთეკების გამოყენება? პირადად ჩემის აზრით ამის არანაირი აუცილებლობა არ არსებობს&#8230; ხშირ შემთხვევაში საკმაოდ მარტივი გამოსავალიც საკმარისია მიზნის მისაღწევად.</p>
<p>მაგალითად შემდეგი XML დოკუმენტიდან თუ გვსურს ამოვიღოთ &#8220;Ann Smith&#8221; &#8211; ის შესაბამისი sex ელემენტი, XPath გამოსახულებას ექნება ასეთი სახე: &#8220;/persons/person[1]/name&#8221; (person[1] &#8211; აქ იგულისხმება მეორე person ელემენტი რადგან ელემენტების ინდექსაცია იწყება 0 &#8211; იდან):</p>
<pre>
&lt;persons&gt;
  &lt;person&gt;
     &lt;name&gt;John Doe&lt;/name&gt;
     &lt;sex&gt;M&lt;/sex&gt;
  &lt;/person&gt;
  &lt;person&gt;
     &lt;name&gt;Ann Smith&lt;/name&gt;
     &lt;sex&gt;F&lt;/sex&gt;
  &lt;/person&gt;
&lt;/persons&gt;
</pre>
<p>ამ მარტივი მაგალითიდან კარგად ჩანს თუ რამდენად მარტივია დოკუმენტთან მუშაობა XPath &#8211; ის მეშვეობით და რამდენი არასაჭირო კოდის დაწერა დაგვჭირდებოდა იგივე შედეგის მისაღწევად JavaScript &#8211; ის სტანდარტული DOM მეთოდების გამოყენებით.</p>
<p>როგორ მივაღწიოთ იგივე შედეგს JavaScript &#8211; ით? რადგან ლაპარაკი გვაქვს მარტივ რეალიზაციაზე ჩემს შემთხვევაში საყრდენ წერტილად ავიღე ელემენტის უნიკალური იდენტიფიკატორი,  ასეთი ელემენტი აუცილებლად საჭიროა რადგან უმეტეს შემთხვევაში სწორედ კონკრეტული ელემენტის ქვეელემენტებთან მოგვიწევს მუშაობა.</p>
<p>მაგალითად თუ გვაქვს მსგავსი (X)HTML კოდი:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;test-id&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span>Menu Item One<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span>Menu Item Two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Menu Item Three<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span>Sub Menu Item One<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span>Sub Menu Item Two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span>Sub Menu Item Three<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>და გვსურს რომ ამოვიღოთ ქვემენიუს &#8220;Sub Menu Item Two&#8221; ელემენტი გამოსახულებას ექნება ასეთი სახე: &#8220;#test-id/ul/li[2]/ul/li[1]&#8220;; გამოსახულება თავსითავად მარტივია თუმცა ზოგიერთ დეტალზე ღირს ყურადღების მიქცევა:</p>
<ol>
<li>თუ გვსურს რომ მეთოდმა გადაცემული სტრიქონი მიიღოს XPath გამოსახულებად იგი აუცილებლად უნდა იწყებოდეს # სიმბოლოთო და კონკრეტული ელემენტის უნიკალური იდენტიფიკატორით (მაგ. #test-id);</li>
<li>ქველემენტების მიმართვა ხდება შემდეგნრაირად: /ul (სლეში და ელემენტის ტეგის სახელი) და იგულისხმება პირველივე მითითებული ტიპის ტეგი;</li>
<li>კონკრეტული ქველემენტის ამოღება ინდექსით განისაზღვრება შემდეგნაირად: li[2] (ელემენტის დასახელება და შესაბამისი ინდექსი, ამ შემთხვევაში იგულისხმება მესამე li ელემენტი);</li>
</ol>
<p>თავისთავად ფუნქციის გამოიყურება შემდეგნაირად იგი პარამეტრად ღებულობს სტრიქონს, რომელიც არის ან უბრალოდ ელემენტის უნიკალური იდენტიფიკატორი ან XPath &#8211; ის მსგავსი გამოსახულება:</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> Util <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; dom<span style="color: #339933;">:</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; get<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>expression<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//check if passed argument is XPath like expression</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>str.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'#'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; expression <span style="color: #339933;">=</span> expression.<span style="color: #660066;">substr</span><span style="color: #009900;">&#40;</span>1<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>&nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> tokens &nbsp;<span style="color: #339933;">=</span> expression.<span style="color: #660066;">split</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> id &nbsp; &nbsp; &nbsp;<span style="color: #339933;">=</span> tokens.<span style="color: #660066;">shift</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//retrive desired element</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> el&nbsp; &nbsp; <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> pattern <span style="color: #339933;">=</span> <span style="color: #009966; font-style: italic;">/(\w+)\[(\d+)\]/</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #003366; font-weight: bold;">var</span> match<span style="color: #339933;">,</span> child<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>el<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span>tokens.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>match <span style="color: #339933;">=</span> tokens<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span>pattern<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> j <span style="color: #339933;">=</span> 0<span style="color: #339933;">,</span> index <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> j <span style="color: #339933;">&lt;</span> el.<span style="color: #660066;">childNodes</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; child <span style="color: #339933;">=</span> el.<span style="color: #660066;">childNodes</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>child.<span style="color: #660066;">tagName</span> <span style="color: #339933;">&amp;&amp;</span> child.<span style="color: #660066;">tagName</span>.<span style="color: #660066;">toLowerCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> match<span style="color: #009900;">&#91;</span>1<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>match<span style="color: #009900;">&#91;</span>2<span style="color: #009900;">&#93;</span> <span style="color: #339933;">==</span> index<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; el <span style="color: #339933;">=</span> child<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; index<span style="color: #339933;">++</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; el <span style="color: #339933;">=</span> el.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span>tokens<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span>.<span style="color: #000066; font-weight: bold;">item</span><span style="color: #009900;">&#40;</span>0<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//return found element</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> el<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #006600; font-style: italic;">//if expression parameter is simple string just return element</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>expression<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; <br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span> <br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//Usage sample</span><br />
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>Util.<span style="color: #660066;">dom</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#test-id/ul/li[2]/ul/li[1]'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>Util.<span style="color: #660066;">dom</span>.<span style="color: #660066;">get</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#test-id/ul/li[2]/ul/li'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>თავისთავად ეს მარტივი რეალიზაცია შორს დგას იდეალურისგან, თუმცა მთელ რიგ შემთხვევებში საკმაოდ მოსახერხებელია მისი გამოყენება&#8230; ასევე უფრო მეტად განვითარებაც არ არის რთული, თუმცა ხაზს ვუსვავ რომ უფრო რთული და კომპლექსური შემთხვევებისათვის უმჯობესია ბროუზერებში არსებული შესაბამისი საშუალების გამოყენება მიუხედავად იმისა რომ არსებობს თავსებადობის პრობლემები.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code.ge/posts/simple-xpath-implementation-in-javascript/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ცოტა რამ (X)HTML დოკუმენტის სემანტიკის შესახებ</title>
		<link>http://www.code.ge/posts/few-words-about-xhtml-semnatics</link>
		<comments>http://www.code.ge/posts/few-words-about-xhtml-semnatics#comments</comments>
		<pubDate>Thu, 12 Apr 2007 13:37:30 +0000</pubDate>
		<dc:creator>იოსები</dc:creator>
				<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.code.ge/xhtml/few-words-about-xhtml-semnatics</guid>
		<description><![CDATA[სწორად აგებული ვებ დოკუმენტის უმთავრესი დეტალი სტრუქტურასა და ლოგიკასთან ერთად არის სემანტიკურად სწორი (X)HTML კოდი. რას ნიშნავს სემანტიკურად სწორი კოდი? პირველ რიგში თავად ამ სიტყვის განმარტება ლექსიკონის მიხედვით: semantics &#124;səˈmantiks&#124; plural noun [usu. treated as sing. ] the branch of linguistics and logic concerned with meaning. There are a number of branches and subbranches of [...]]]></description>
			<content:encoded><![CDATA[<p>სწორად აგებული ვებ დოკუმენტის უმთავრესი დეტალი სტრუქტურასა და ლოგიკასთან ერთად არის სემანტიკურად სწორი (X)HTML კოდი. რას ნიშნავს სემანტიკურად სწორი კოდი? პირველ რიგში თავად ამ სიტყვის განმარტება ლექსიკონის მიხედვით:</p>
<p><strong>semantics |səˈmantiks| </strong></p>
<blockquote><p>plural noun [usu. treated as sing. ] the branch of linguistics and logic concerned with meaning. There are a number of branches and subbranches of semantics, including formal semantics, which studies the logical aspects of meaning, such as sense, reference, implication, and logical form, lexical semantics, which studies word meanings and word relations, and conceptual semantics, which studies the cognitive structure of meaning.<br />
<strong>the meaning of a word, phrase, sentence, or text</strong> : such quibbling over semantics may seem petty stuff.
</p></blockquote>
<p><a href="http://www.google.com/search?sourceid=navclient&#038;ie=UTF-8&#038;rls=GGLG,GGLG:2006-51,GGLG:en&#038;q=define+semantics">Google</a> &#8211; ს მიერ შემოთავაზებული განმარტება:</p>
<blockquote><p>Intended meaning. In computing, <strong>semantics </strong>is the assumed or explicit set of understandings used in a system <strong>to give meaning to data</strong>.</p></blockquote>
<p>ყველასათვის კარგად ცნობილია (X)HTML ენა წარმოადგენს ტეგების კრებულს. ტეგების უდიდეს ნაწილს(თუმცა არა ყველას) გააჩნია სემანტიკური(აზრობრივი) დატვირთვა და სწორად ასეთი ტეგების გამოყენებით იქმნება სემანტიკურად სწორი დოკუმენტი. რას ნიშნავს ეს?<span id="more-56"></span></p>
<p>სემანტიკურად სწორი დოკუმენტი თავისთავად გულისხმობს რომ მისი ის ტექსტური ნაწილი რომელიც შეიცავს გარკვეულ ინფორმაციას უნდა იყოს შესაბამისი ტეგებით დამუშავებული. მაგალითად დოკუმენტში არსებული დასათაურებები(სათაურები, ქვესათაურები) უნდა იყვნენ მოთავსებული h1, h2 და ა.შ. ტეგებში. ჩამონათვალი უნდა გაკეთდეს შესაბამისად ul/li ან ol/li ტეგების კომბინაციით. ტექსტი პარაგრაფებად უნდა დაიყოს P ტეგების გამოყენებით და არა BR ან სხვა რომელიმე ტეგების გამოყენებით და ა.შ.</p>
<p>იმისათვის რათა ავაგოთ სემანტიკურად სწორი დოკუმენტები საჭიროა გავერკვიოთ თვითონ იმ ტეგებში რომლებსაც გააჩნიათ სათანადო სემანტიკური დატვირთვა, ასეთი ტეგები არცთუ ისე ბევრია ამიტომ მათი აქ ჩამოთვლა არ წარმოადგენს პრობლემას.</p>
<ul>
<li>დასათაურებები &#8211; <strong>h1, h2, h3, h4, h5, h6</strong> ელემენტები</li>
<li>პარაგრაფი &#8211; <strong>P</strong> ელემენტი</li>
<li>დატვირთვის(მნიშვნელობის) მინიჭება &#8211; <strong>em </strong>ელემენტი</li>
<li>უფრო მეტი დატვირთვის(მნიშვნელობის) მინიჭება &#8211; <strong>strong </strong>ელემენტი</li>
<li>აბრევიატურა &#8211; <strong>abbr </strong>ელემენტი</li>
<li>კოდი &#8211; <strong>code</strong> ელემენტი</li>
<li>ციტირება &#8211; <strong>cite</strong> ელემენტი</li>
<li>ციტირება &#8211; <strong>blockquote </strong>ელემენტი</li>
<li>ჩამონათვალი &#8211; <strong>ul, ol, li</strong> ელემენტები</li>
<li>განმარტებების ჩამონათვალი &#8211; <strong>dl, dt, dd</strong> ელემენტები</li>
</ul>
<p>როგორც ხედავთ ტეგების რაოდენობა საკმაოდ მცირეა&#8230; თუმცა ეს ტეგები სავსებით საკმარისია ლოგიკურად და სემანტიკურათ სწორი დოკუმენტების ასაგებად.</p>
<h2>დასათაურებები &#8211; <strong>h1, h2, h3, h4, h5, h6</strong> ელემენტები</h2>
<p>დასათაურებები(Headings) როგორც მათი სახელი გვეუბნება გამოიყენება დოკუმენტის სხვადასხვა ნაწილების დასათაურებისათვის. ასეთი ტეგი სულ ექვსი ცალია რაზეც მიუთითებს ტეგების ინდექსები და განსაზღვრავს დასათაურების მნიშვნელობას(წონას). მაგალითად ამ პოსტის სათაური მოთავსებულია h1 ტეგში რაც მიუთითებს იმას რომ იგი ყველაზე მნიშვნელოვანია.</p>
<p>დოკუმენტის აგებისას სათაურებისა და ქვესათაურების გამოსაყოფად აუცილებლად უნდა გამოვიყენოთ ეს ტეგები. მაგალითად:</p>
<pre>&lt;h1&gt;დოკუმენტის სათაური&lt;/h1&gt;
&lt;h2&gt;დოკუმენტის ქვესათაური&lt;/h2&gt;
</pre>
<h2>პარაგრაფი(აბზაცი?) &#8211; <strong>P</strong> ელემენტი</h2>
<p>ამ ელემენტის გამოყენება აუცილებელია ნებისმიერ დროს როდესაც ვმუშაობთ ტექსტებთან და დოკუმენტის რომელიმე ნაწილს ვყოფთ პარაგრაფებად(იმ შემთხვევაშიც კი როდესაც პარაგრაფების რაოდენობა არ აღემატება ერთს) სხვა რომელიმე ტეგის(მაგალითად div ან span) ამ მიზნით გამოყენება არასწორია რადგან <strong>P</strong> ტეგის გარდა არც ერთს არ გააჩნია მსგავსი სემანტიკური დატვირთვა. ასევე აღსანიშნავია რომ ახალი პარაგრაფის დასაწყებად არ არის რეკომენდირებული <strong>BR</strong> ტეგის გამოყენება.</p>
<p>მაგალითად შემდეგი კოდი სემანტიკურად გამართულია:</p>
<pre>
&lt;p&gt;
	Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
        eiusmod tempor incididunt ut labore et dolore magna aliqua.
&lt;/p&gt;
&lt;p&gt;
	Ut enim ad minim veniam, quis nostrud exercitation
        ullamco laboris nisi ut aliquip ex ea commodo consequat.
&lt;/p&gt;
</pre>
<p>ხოლო შემდეგი კოდი არ არის სემანტიკურად სწორი, რადგან <strong>DIV </strong>ტეგს არ გააჩნია არანაირი სემანტიკური დანიშნულება, იგი გამოიყენება დოკუმენტის ლოგიკური სტრუქტურის ასაგებად და არა ტექსტების პარაგრაფებად დასაყოფად.</p>
<pre>
&lt;div&gt;
	Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor
        incididunt ut labore et dolore magna aliqua.
	&lt;br /&gt;&lt;br /&gt;
	Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
        nisi ut aliquip ex ea commodo consequat.
&lt;/div&gt;
</pre>
<h2>დატვირთვის(მნიშვნელობის) მინიჭება &#8211; <strong>em, strong </strong>ელემენტები</h2>
<p>იმ შემთხვევაში თუ საჭიროა ტექსტის რომელიმე ნაწილის გამოყოფა სხვა დანარჩენისგან, და მისთვის გარკვეული მნიშნველობის მიცემა ეს შეიძლება გაკეთდეს ან <strong>em</strong> ტეგის მეშვეობით, ან თუ ტექსტის ნაწილს უნდა მიენიჭოს უფრო მეტი დატვირთვა უნდა გამოვიყენოთ <strong>strong</strong></p>
<p>მაგალითად:</p>
<pre>
&lt;p&gt;
	&lt;strong&gt;Lorem ipsum dolor sit amet&lt;/strong&gt;, consectetur adipisicing elit, sed do
        eiusmod tempor incididunt ut labore et &lt;em>dolore magna aliqua&lt;/em&gt;.
&lt;/p&gt;
</pre>
<p>უნდა აღინიშნოს რომ ხშირად ამ მიზნისთვის იყენებენ <strong>B</strong> და <strong>I</strong> ტეგებს, თუმცა მათ არ გააჩნიათ არავითარი სემანტიკური დატვირთვა და ასევე ეს ტეგები იქნება ამოღებული (X)HTML &#8211; ს მომავალი ვერსიებიდან.</p>
<p><strong>em</strong> და <strong>strong </strong> ელემენტებმა შეიძლება გარკვეული პროტესტი გამოიწვიონ იმ მიზეზით რომ მათ აქვთ წინასწარ განსაზღვრული სტილი(em ტეგში მოთავსებული ტექსტი ბრაუზერში ჩანს დახრილი(italic) ხოლო strong ტეგში მოთავსებული ტექსტი კი გამუქებული(bold)) თუმცა არავითარი შეზღუდვა არ არსებობს იმისათვის რათა ეს წინასწარ განსაზღვრული სტილები შევცვალოთ CSS &#8211; ის მეშვეობით, და რაც მთავარია ამითი ელემენტის სემანტიკა არ იცვლება.</p>
<h2>აბრევიატურა &#8211; <strong>abbr </strong>ელემენტი</h2>
<p>ეს ტეგი გამოიყენება აბრევიატურებთან. მაგალითად <abbr title="Really Simple Syndication">RSS</abbr> და <abbr title="Cascading Style Sheets">CSS</abbr> არის აბრევიატურები. შესაბამისად ასეთი ტიპის ტექსტისთვის სემანტიკური დატვირთვის მისანიჭებლად უნდა გამივყენოთ <strong>abbr</strong> ტეგი.</p>
<p>მაგალითად:</p>
<pre>
  &lt;abbr title="Really Simple Syndication"&gt;RSS&lt;/abbr&gt;
  &lt;abbr title="Cascading Style Sheets"&gt;CSS&lt;/abbr&gt;
</pre>
<p>როგორც მაგალითიდან ჩანს abbr ტეგის title ატრიბუტი გამოიყენება აბრევიატურის სრული ტექსტის მისათითებლად.</p>
<h2>ციტირება &#8211; <strong>cite</strong> ელემენტი</h2>
<p>cite ელემენტი გამოიყენება ტექსტის ციტირებისა ან წყაროზე მისათითებლად.</p>
<pre>
     &lt;cite&gt;ცოტა რამ (X)HTML დოკუმენტის სემანტიკის შესახებ&lt;/cite&gt;
</pre>
<h2>ციტირება &#8211; <strong>blockquote </strong>ელემენტი</h2>
<p>blockquote ელემენტი გამოიყენება დიდი მოცულობის ტექსტის ციტირებისათვის. აღსანიშნავია რომ განსხვავებით <strong>cite</strong> ელემენტისგან იგი არის ბლოკის ტიპის ელემენტი. </p>
<p>მაგალითად:</p>
<pre>
&lt;blockquote&gt;
	Lorem ipsum dolor sit amet, consectetur adipisicing elit,
        sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
&lt;/blockquote&gt;
</pre>
<p>ასევე საჭიროების შემთხვევაში სასურველია ამ ელემენტის <strong>cite </strong>და <strong>title </strong> ატრიბუტების გამოყენება, შესაბამისად cite ატრიბუტი გამოიყენება წყაროს მისამართის მისათითებლად, ხოლო title ატრიბუტი ტექსტის სათაურის(და ავტორის საჭიროების შემთხვევაში) მისათითებლად. მაგალითად:</p>
<pre>
&lt;blockquote cite="http://www.lipsum.com/"
   title="The standard Lorem Ipsum passage, used since the 1500s"&gt;
	Lorem ipsum dolor sit amet, consectetur adipisicing elit,
        sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
        Ut enim ad minim veniam, quis nostrud exercitation ullamco
        laboris nisi ut aliquip ex ea commodo consequat.
        Duis aute irure dolor in reprehenderit in voluptate
        velit esse cillum dolore eu fugiat nulla pariatur.
        Excepteur sint occaecat cupidatat non proident,
        sunt in culpa qui officia deserunt mollit anim id est laborum
&lt;/blockquote&gt;
</pre>
<h2>ჩამონათვალი &#8211; <strong>ul, ol, li</strong> ელემენტები</h2>
<p>ამ ელემენტების კომბინაცია(კერძოდ: ul/li ან ol/li) უნდა გამოვიყენოთ ნებისმიერი ტიპის ჩამონათვალის გასაკეთებლად (განსაკუთრებით ხშირად გამოიყენება მენიუების ასაგებად). მაგალითად მარტივი ჩამონათვალის კოდი გამოიყურება ასე:</p>
<pre>
&lt;ul&gt;
	&lt;li&gt;Liste Item One&lt;/li&gt;
	&lt;li&gt;Liste Item Two&lt;/li&gt;
	&lt;li&gt;Liste Item Three&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>შემდეგი კოდი კი არასწორია სემანტიკური თვალსაზრისით მიუხედავად იმისა რომ ვიზუალური შედეგი შესაძლოა ერთნაირი იყოს:</p>
<pre>
&lt;div&gt;
	Liste Item One
	&lt;br /&gt;
	Liste Item Two
	&lt;br /&gt;
	Liste Item Three
&lt;/div&gt;
</pre>
<h2>განმარტებების ჩამონათვალი &#8211; <strong>dl, dt, dd</strong> ელემენტები</h2>
<p>გამოიყენება ნებისმიერი ტიპის განმარტებიბის ჩამონათვალის გასაკეთებლად. მაგალითად:</p>
<pre>
&lt;dl&gt;
	&lt;dt&gt;CSS&lt;/dt&gt;
	&lt;dd&gt;Cascading Style Sheets&lt;/dd&gt;
	&lt;dt&gt;RSS&lt;/dt&gt;
	&lt;dd&gt;Really Simple Syndication&lt;/dd&gt;
	&lt;dt&gt;HTML&lt;/dt&gt;
	&lt;dd&gt;Hypertext Markup Language&lt;/dd&gt;
&lt;/dl&gt;
</pre>
<p>ასევე ამ ტეგების კომბინაციით ლოგიკურად შეიძლება ორი ადამიანის დილოგის გადმოცემა(საუკეთესო მაგალითია ჩატი). მაგალითად:</p>
<pre>
&lt;dl&gt;
	&lt;dt&gt;სოსო:&lt;/dt&gt;
	&lt;dd&gt;როგორ ხარ იკა?&lt;/dd&gt;
	&lt;dt&gt;ირაკლი:&lt;/dt&gt;
	&lt;dd&gt;კარგად, შენ?&lt;/dd&gt;
	&lt;dt&gt;სოსო:&lt;/dt&gt;
	&lt;dd&gt;მეც კარგად <img src='http://www.code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> &lt;/dd&gt;
&lt;/dl&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.code.ge/posts/few-words-about-xhtml-semnatics/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>ცოტა რამ (X)HTML &#8211; ს შესახებ</title>
		<link>http://www.code.ge/posts/few-words-about-xhtml</link>
		<comments>http://www.code.ge/posts/few-words-about-xhtml#comments</comments>
		<pubDate>Thu, 12 Apr 2007 12:12:54 +0000</pubDate>
		<dc:creator>იოსები</dc:creator>
				<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.code.ge/xhtml/fiew-words-about-xhtml</guid>
		<description><![CDATA[(X)HTML დოკუმენტის სწორი ფორმირება და მისი სემანტიკა თანამედროვე ვების ერთერთი მთავარი და განუყოფელი დეტალია რომელიც რატომღაც 99% შემთხვევაში საერთოდ უგულებელყოფილია და არ ექცევა სათანადო ყურადღება. მთავარი პრობლემა მდგომარეობს იმაში რომ ვებ დოკუმენტების აგება საფუძველშივე არასწორად ხდება რადგან პირველ რიგში დოკუმენტის წარმოდგენა და დაგეგმვა ხდება მისი ვიზუალური დატვირთვის მიხედვით და მის კორექტულობას არ ექცევა სათანადო(უფრო ხშირად [...]]]></description>
			<content:encoded><![CDATA[<p>(X)HTML დოკუმენტის სწორი ფორმირება და მისი სემანტიკა თანამედროვე ვების ერთერთი მთავარი და განუყოფელი დეტალია რომელიც რატომღაც  99% შემთხვევაში საერთოდ უგულებელყოფილია და არ ექცევა სათანადო ყურადღება. </p>
<p>მთავარი პრობლემა მდგომარეობს იმაში რომ ვებ დოკუმენტების აგება საფუძველშივე არასწორად ხდება რადგან პირველ რიგში დოკუმენტის წარმოდგენა და დაგეგმვა ხდება მისი ვიზუალური დატვირთვის მიხედვით  და მის კორექტულობას არ ექცევა სათანადო(უფრო ხშირად კი არანაირი) ყურადღება.<span id="more-55"></span></p>
<p>ამის გამომწვევი მიზეზი რამდენიმეა და ყოველი მათგანი იმსახურებს  ყურადღებას.</p>
<h2>1) ისტორიული მიზეზები</h2>
<p>პირველი და ყველაზე საგულისხმო დეტალი თავად ვებისა და ვებ ბრაუზერების განვითარების ისტორიას უკავშირდება და ეს არის ერთერთი მთავარი გამომწვევი მიზეზი დოკუმენტის აგების არასწორი ჩვევებისა და ცოდნის ჩამოყალიბებისა. ეს მიზეზები ერთის მხრივ გამოწვეული იყო ცნობილი ბრაუზერების ომის დროს არ არსებული თავსებადობისა და სტანდარტების არასათანადო მხარდაჭერით, ხოლო მეორეს მხრივ კი სხვადასხვა ცნობილი ვიზუალური ვებ დოკუმენტების რედაქტორების(Adobe GoLive, Macromedia DreamViewer, MS FrontPage(განსაკუთრებული კატასტროფა) და ა.შ.) მიერ რომლებიც თავის მხრივ ამ არათავსებადობის დასაძლევად შესაბამის კოდს აგენერირებდნენ. ბრაუზერებს შორის არათავსებადობის, CSS – ის ან არასრული ან  არასწორი მხარდაჭერა, ვიზუალური რედაქტორების მიერ დაგენერირებული არასწორი(იმ ეპოქის ბრაუზერების შესაბამისად) კოდი წლების მანძილზე გახდა მიზეზი იმისა რომ მსგავსი არასწორი ჩვევები და ცოდნა ჩამოუყალიბდა ვებ მასტერების უდიდეს ნაწილს.</p>
<h2>2) არასწორი დამოკიდებულება (X)HTML – სა და CSS – ისადმი</h2>
<p><strong>ვებ მასტერები</strong><br />
მათ უდიდეს ნაწილს გაურკვეველი მიზეზების გამო რატომღაც ორივე ტექნოლოგია მიაჩნია ზედმეტად მარტივად და მათი ათვისებისათვის თითქმის არ ხარჯავენ დროს. </p>
<p><strong>Server Side დეველოპერები და პროგრამისტები</strong><br />
მათთვის ეს ტექნოლოგიები განსაკუთრებით “მარტივი” და “უმნიშვნელოა” თვლიან რომ მის შესწავლას არ სჭირდება განსაკუთრებული დროის დათმობა.</p>
<p><strong>ვებ დიზაინერები</strong><br />
ეს კატეგორია განსაკუთრებით დიდ ყურადღებას იმსახურებს რადგან, დიზაინერების საკმაოდ დიდ ნაწილს საერთოდ არ აქვს წარმოდგენა ვებისა და ვებ დოკუმენტების შესახებ(აღარაფერს ვამბობ ზემოთხსენებულ ტექნოლოგიებზე) ხშირ შემთხვევაში მათ მიერ შესრულებული თუნდაც უმაღლესი ხარისხის დიზაინი შეუსაბამოა ვებთან, მაგრამ რაც ყველაზე უარესია უამრავ დიზაინერს(და არა მარტო მათ) მიაჩნიათ რომ (X)HTML – სა და CSS – ის ცოდნა მათ არ მოეთხოვებათ და ეს არ არის მათი საქმე.</p>
<p><strong>დამქირავებლები</strong><br />
ამ კატეგორიაზეც ღირს ყურადღების შეჩერება რადგან გამომდინარე ისევ უცოდინრობიდან(შეგნებული თუ შეუგნებელი) უმეტეს წილად დამქირავებლის დამოკიდებულება ე.წ. (X)HTML და CSS კოდერების მიმართ არის ზედაპირული და რატომღაც ამ კატეგორიის კადრი არის ყოველთვის დაბალანაზღაურებადი, რაც თავისთავად გამომწვევია იმისა რომ ასეთ ადამიანებს არ გააჩნიათ არანაირი მოტივაცია იმისათვის რათა მუდმივად იმუშავონ საკუთარ თავზე და განვითარდნენ შესაბამისი მიმართულებით.</p>
<p>სინამდვილეში არც (X)HTML და არც CSS არ მიეკუთვნებიან მარტივთა რიცხვს და საკმაოდ საფუძვლიან ცოდნას საჭიროებს ორივე ტექნოლოგია. იმის გათვალისწინებით რომ თავსებადობის საკითხები დღემდე საკმაოდ აქტუალურია და ბრაუზერების უდიდესი ნაწილი არ არის სტანდარტებთან თავსებადი 100% &#8211; ით. </p>
<p>პირველ რიგში როდესაც ვსაუბრობთ ვებ დოკუმენტზე უნდა გვახსოვდეს<br />
რომ:</p>
<ol>
<li>ის არის (X)HTML დოკუმენტი რომელსაც უნდა გააჩნდეს სწორი და ლოგიკური სტრუქტურა;</li>
<li>უნდა იყოს ვალიდური;</li>
<li>უნდა იყოს სემანტიკურად სწორი რაც თავის მხრივ მიიღწევა შესაბამისი ტეგების სათანადო გამოყენებით. </li>
<li>ვებ დოკუმენტი არ არის(და არ უნდა განიხილებოდეს) როგორც საბოლოო ვიზუალური შედეგი რომელსაც შეიძლება მივაღწიოთ ნებისმირი გზით.</li>
<li>მისი ნახვა უნდა შეიძლებოდეს ნებისმიერი ტიპის ბრაუზერით(ტექსტური ბრაუზერების ჩათვლით)</li>
<li>დოკუმენტის ვიზუალური დეტალები მთლიანად უნდა იყოს დამუშავებული CSS – ის მეშვეობით.</li>
<li>დოკუმენტის ლოგიკური სტრუქტურა არ უნდა ირღვეოდეს იმ შემთხვევაში თუ ბროუზერს საერთოდ არ გააჩნია(ან გათიშული აქვს) CSS – ისა და JavaScript &#8211; ის მხარდაჭერა. </li>
</ol>
<p>ამ დეტალების გათვალისწინებით მე პირადად მებადება შეკითხვები რომელიც უკავშირდება ისევ და ისევ: (X)HTML და CSS კოდერების, ვებ მასტერების, ვებ დიზაინერების და ServerSide დეველოპერების ერთობლივ მუშაობას კონკრეტულ პროექტებზე(მასშტაბებს არანაირი მნიშვნელობა არ აქვს), ჩამოთვლილი კატეგორიებიდან რომელმა უნდა იცოდეს ყველა ეს დეტალი? </p>
<p>ჩემის აზრით CSS-ისა და JavaScript – ის ცოდნა არ არის სავალდებულო ყველასთვის, მაგრამ რაც შეეხება (X)HTML – ს, დოკუმენტის  სტრუქტურასა და სემანტიკას სავალდებულოა ყველა ჩამოთვლილი კატეგორიისათვის რადგან:</p>
<ol>
<li>(X)HTML – ს სათანადო შესწავლა ტექნიკუირად არც შეუძლებელია და არც სათაკილო, უფრო მეტიც საკმაოდ საინტერესოა.</li>
<li>ვალიდური დოკუმენტის აგება ცოდნის, გამოცდილებისა და უბრალოდ დროის საკითხია.</li>
<li>სემანტიკურად სწორი დოკუმენტის აგებაც ასევე ცოდნის გამოცდილებისა და დროის საკითხია.</li>
</ol>
<p>თუ რა საჭიროა ეს სავსებით თავისუფლად შესაძლებელია დავასაბუთოთ ServerSide დეველოპერის მაგალითზე. </p>
<p>ყველასათვის კარგად ცნობილია რომ ესა თუ ის ტექნოლოგია გვთავაზობს ვებ რესურსების აგების კომპონენტურ არქიტექტურას (მაგ. Java, .Net). არსებობს წინასწარ გამზადებული კომპონენტების დიდი რაოდენობა რომლებიც პირდაპირ შეგვიძლია გამოვიყენოთ თუმცა ხშირად(ძალიან ხშირად) არის მომენტები როდესაც საჭიროა რომელიმე არსებული კომპონენტის შესაძლებლობების გაფართოვება ან საერთოდ ახალი კომპონენტების შექმნა. </p>
<p>თუ განვიხილავთ ისეთ შემთხვევას როდესაც კომპანია ორიენტირებულია სტანდარტებზე დაფუძვნებული ვებ პროდუქტბის შექმნაზე და ამ კომპანიის რომელიმე ServerSide დეველოპერს ევალება სათანადო კომპონენტების შექმნა, რა მოხდება იმ შემთხვევაში თუ მან სათანადოდ არ იცის (X)HTML, არ აქვს წარმოდგენა ზოგადად დოკუმენტის სტრუქტურასა და აღარაფერს ვამბობ დოკუმენტის სემანტიკაზე? </p>
<p>ერთი შეხედვით ეს არ არის პრობლემა, თუმცა სინამდვილეში საკმაოდ მნიშვნელოვანი დეტალია რომელსაც ჩემის ღრმა რწმენით უნდა ეთმობოდეს შესაბამისი ყურადღება. </p>
<p>რატომ? ამისათვის უამრავი არგუმენტი შეგვიძლია მოვიყვანოთ, მაგრამ საკმარისია თუ ვიტყვით რომ თუ კომპანიაში არსებობს რამდენიმე  ServerSide დეველოპერი რომელიც ასრულებს აღნიშნულ სამუშაოს და ასრულებს იგივე “ხარისხით” და მიდგომით რომ (X)HTML არ არის მათი საქმე და თვლიან რომ საკმარისია მათმა შექმნილმა კომპონენტებმა დააგენერირონ რაიმე საბოლოო ვიზუალური რეზულტატი, გამოდის რომ ამით გარდა იმისა რომ მისაღები პროდუქტის საბოლოო ხარისხი ფუჭდება ასევე მსგავსი პრობლემების აღმოსაფხვრელად იკარგება დამატებითი დრო, ჩნდება დამატებითი დაბრკოლება (X)HTML და CSS კოდერებისათვის რაც თავის მხრივ იწვევს დამატებითი დროით დანახარჯებსა და ასევე აზრთა კონფლიქტს.</p>
<p>აბსოლუტურად იგივე ეხება ვებ დიზაინერებს, რადგან კიდევ ერთხელ გავიმეორებ რომ ვებ დოკუმენტი პირველ რიგში არის დოკუმენტი და არა რაიმე ვიზუალური შედევრი რომელსაც არანაირი საერთო არ აქვს ვებთან, დიზაინი პირველ რიგში განკუთვნილი უნდა იყოს ვებისათვის და არა ჩარჩოში ჩასასმელად და კედელზე ჩამოსაკიდად. ასეთი დიზაინის დაჭრა, და დოკუმენტისათვის მორგება ხშირად ან შეუძლებელია ან იწვევს საკმაოდ რთულ და არასასიამოვნო პრობლემებს რაც თავისთავად კვლავ დროის დამატებით დანახარჯებსა და ინტერესთა კონფლიქტებს იწვევს უკეთეს შემთხვევაში კი ვღებულობთ უხარისხო პროდუქტს. როგორც ServerSide დეველოპერებისათვის ასევე დიზაინერებისათვისაც სავალდებულოა ყოველივე ზემოთ თქმულის საკმაოდ საფუძვლიანი ცოდნა რათა უფრო ეფექტურად და ურთიერთშეთანხმებულად მოხდეს საერთო ამოცანაზე მუშაობა.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code.ge/posts/few-words-about-xhtml/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>table ელემენტის სასარგებლო დეტალები</title>
		<link>http://www.code.ge/posts/useful-details-of-table-element</link>
		<comments>http://www.code.ge/posts/useful-details-of-table-element#comments</comments>
		<pubDate>Sat, 17 Mar 2007 08:01:09 +0000</pubDate>
		<dc:creator>იოსები</dc:creator>
				<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.ioseb.com/?p=41</guid>
		<description><![CDATA[table ელემენტი ბევრად უფრო სასარგებლო და მოქნილი აღმოჩნდა ვიდრე პირადად მე მეგონა. ერთერთ პოსტში ვისაუბრე thead, tfoot და tbody ტეგებზე, თუმცა ამჯერად table ელემენტის სხვა დეტალებზე შევაჩერებ ყურადღებას, კერძოდ: caption, colgroup, col და tbody ელემენტის გამოყენებაზე. სადავო არ არის ის საკითხი რომ მონაცემების ასახვისათვის table საუკეთესო საშუალებაა&#8230; თუმცა ამ ელემენტის სრულფასოვანი გამოყენების მაგალითები არცთუ ხშირად [...]]]></description>
			<content:encoded><![CDATA[<p>table ელემენტი ბევრად უფრო სასარგებლო და მოქნილი აღმოჩნდა ვიდრე პირადად მე მეგონა. <a href="/xhtml/why-use-thead-tfoot-tbody-tags">ერთერთ პოსტში </a> ვისაუბრე <strong>thead</strong>, <strong>tfoot </strong>და <strong>tbody </strong>ტეგებზე, თუმცა ამჯერად table ელემენტის სხვა დეტალებზე შევაჩერებ ყურადღებას, კერძოდ: <strong>caption, colgroup, col</strong> და <strong>tbody</strong> ელემენტის გამოყენებაზე.<span id="more-41"></span></p>
<p>სადავო არ არის ის საკითხი რომ მონაცემების ასახვისათვის table საუკეთესო საშუალებაა&#8230; თუმცა ამ ელემენტის სრულფასოვანი გამოყენების მაგალითები არცთუ ხშირად მინახავს. მაგალითისათვის მინდა განვიხილო ქვემოთ ნაჩვენები ცხრილი რომლის აგებაც ბევრად მარტივი აღმოჩნდა საჭირო დეტალების გამოყენებით ვიდრე ეს სხვა დროს გამომდიოდა.</p>
<p>რისგან შედგება ეს ცხრილი? მასზე ვიზუალური დაკვირვებით თვალში საცემია შემდეგი დეტალები: ცხრილის დასათაურება რომელსაც აქვს ნაცრისფერი ფონი, სვეტების დასახელებები თეთრი ფონით, სხვადასხვა ფერის სტრიქონები(ცისფერი, ვარდისფერი და მწვანე) ხოლო ბოლოში  სტაფილოსფერი სტრიქონი მინაწერით მარჯვენა კუთხეში.</p>
<style type="text/css">#data-table, #data-table th, #data-table td {
	border: 1px solid black;
}#data-table caption {
	text-align: left;
	background-color: silver;
}#data-table #tbody-one tr {
	background-color: lightblue;
}#data-table #tbody-two tr {
	background-color: pink;
}#data-table #tbody-three tr {
	background-color: green;
}#data-table tfoot tr td {
	text-align: right;
	background-color: orange;
}</style>
<table id="data-table">
<caption>Table: This is table caption</caption>
<thead>
<tr>
<th>Col one</th>
<th>Col two</th>
<th>Col three</th>
<th>Col four</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="4"><em>Some useful information</em></td>
</tr>
</tfoot>
<colgroup>
<col span="2" width="15%" />
<col width="45%" />
<col width="25%" />
	</colgroup>
<tbody id="tbody-one">
<tr>
<td>Col one data</td>
<td>Col two data</td>
<td>Col tdree data</td>
<td>Col four data</td>
</tr>
</tbody>
<tbody id="tbody-two">
<tr>
<td>Col one data</td>
<td>Col two data</td>
<td>Col tdree data</td>
<td>Col four data</td>
</tr>
<tr>
<td>Col one data</td>
<td>Col two data</td>
<td>Col tdree data</td>
<td>Col four data</td>
</tr>
</tbody>
<tbody id="tbody-three">
<tr>
<td>Col one data</td>
<td>Col two data</td>
<td>Col tdree data</td>
<td>Col four data</td>
</tr>
</tbody>
</table>
<p>ქვემოთ მოყვანილია ამ ცხრილის ასაგებად გამოყენებული HTML კოდი:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;data-table&quot;</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/caption.html"><span style="color: #000000; font-weight: bold;">caption</span></a>&gt;</span>Table: This is table caption<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/caption.html"><span style="color: #000000; font-weight: bold;">caption</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/thead.html"><span style="color: #000000; font-weight: bold;">thead</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span>Col one<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span>Col two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span>Col three<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span>Col four<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/thead.html"><span style="color: #000000; font-weight: bold;">thead</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tfoot.html"><span style="color: #000000; font-weight: bold;">tfoot</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a> <span style="color: #000066;">colspan</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;4&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/em.html"><span style="color: #000000; font-weight: bold;">em</span></a>&gt;</span>Some useful information<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/em.html"><span style="color: #000000; font-weight: bold;">em</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tfoot.html"><span style="color: #000000; font-weight: bold;">tfoot</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/colgroup.html"><span style="color: #000000; font-weight: bold;">colgroup</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/col.html"><span style="color: #000000; font-weight: bold;">col</span></a> <span style="color: #000066;">span</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;15%&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/col.html"><span style="color: #000000; font-weight: bold;">col</span></a> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;45%&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/col.html"><span style="color: #000000; font-weight: bold;">col</span></a> <span style="color: #000066;">width</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;25%&quot;</span> <span style="color: #66cc66;">/</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/colgroup.html"><span style="color: #000000; font-weight: bold;">colgroup</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;tbody-one&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col one data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col two data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col tdree data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col four data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;tbody-two&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col one data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col two data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col tdree data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col four data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col one data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col two data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col tdree data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col four data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;tbody-three&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col one data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col two data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col tdree data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Col four data<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>დეტალურად განვიხილოთ მოცემული HTML კოდი.</p>
<p><strong><br />
CAPTION ელემენტი:</strong><br />
პირველი რაც ამ კოდის წაკითხვისას თვალში გვხდება ეს არის &lt;caption&gt; ელემენტი, ეს ელემენტი გამოიყენება ცხრილის დასათაურებისათვის. როგორც სპეციფიკაციაშია განსაზღვრული იგი უნდა იყოს პირველი ელემენტი table ელემენტის შემდეგ და ცხრილში მისი რაოდენობა არ უნდა აღემატებოდეს ერთს.</p>
<p>ბროუზერებში სადაც გავტესტე ეს კოდი, დასათაურება გამოდის ცხრილის თავზე და ტექსტი გასწორებულია ცენტრში თუმცა ტექსტის პოზიციისა და ელემენტის სხვა დეტალების დამუშავება თავისუფლად შესაძლებელია CSS &#8211; ით.</p>
<p><strong>THEAD, TFOOT და TBODY ელემენტები:</strong><br />
ეს ელემენტები გამოიყენება სტრიქონების დასაჯგუფებლად(Row groups). სპეციფიკაციის თანახმად საჭიროების შემთხვევაში ცხრილის სტრიქონები შეიძლება დავაჯგუფოთ ამ ელემენტებში და ცხრილი შეიძლება შედგებოდეს თითო თითო thead და tfoot და ერთი ან რამდენიმე tbody ელემენტებისაგან. შესაბამისად <strong>thead</strong> და <strong>tfoot</strong> ელემენტები უნდა შეიცავდნენ ინფორმაციას სვეტების შესახებ, ხოლო tbody ელემენტში უნდა დავაჯგუფოთ სტრიქონები რომლებიც უშუალოდ შეიცავენ ტაბულარულ მონაცემებს.</p>
<p>აღსანიშნავია რომ <strong>tfoot</strong> ელემენტი უნდა განვათავსოთ <strong>tbody</strong> ელემენტებამდე(როგორც ნაჩვენებია მაგალითში) რათა ბროუზერებმა შეძლოთ ამ ელემენტის გამობეჭდვა მანამდე სანამ tbody ელემენტების შესავსებად განკუთვნილი მონაცემები სრულად ჩამოიტვირთება სერვერიდან.</p>
<p>აღსანიშნავია და ღირს ყურადღების მიქცევა იმ ფაქტზე რომ <strong>tbody</strong> ელემენტი შეგვიძლია გამოვიყენოთ რამდენიმეჯერ, ეს განსაკუთრებით მნიშვნელოვანია ორ თვალსაზრისით: ერთის მხრივ თვითონ tbody ელემენტი შეიძლება იყოს ე.წ. scrollable დამოუკიდებლად thead და tfoot ელემენტებისგან(<a href="http://www.w3.org/WAI/UA/TS/html401/cp1001/1001-THEAD-TBODY-TFOOT-OVERFLOW.html">იხილეთ ოფიციალური ტესტ კეისი</a>, თუმცა მხოლოდ მოზილაში მუშაობს უახლეს IE7 &#8211; ში არ მუშაობს), ხოლო მეორეს მხრივ ტაბულარული მონაცემების დაჯგუფება ბევრად უფრო ლოგიკურად შეიძლება რამდენიმე tbody ელემენტში და სხვადასხვა თუმცა ურთიერთდაკავშირებულ მონაცმებებთან დამოუკიდებლად მუშაობის ბევრად უფრო მოქნილი და ბუნებრივი გზა ჩნდება.</p>
<p><strong>COLGROUP და COL ელემენტები:</strong><br />
ამ ელემენტების გამოიყენებით შესაძლებელი სვეტების დაჯგუფება და დამატებითი სტრუქტურული წესების განსაზღვრა მათთვის.</p>
<p>მაგალითში ნაჩვენებია თუ როგორ შეიძლება განვსაზღვროთ უჯრის სიგანე დამოუკიდებლად ყველა სვეტისათვის. <strong>span</strong> ატრიბუტის მნიშვნელობა განსაზღვრავს თუ რამდენ სვეტზე უნდა გავრცელდეს განსაზღვრული წესი.</p>
<p>როგორც თვითონ კოდიდან და ამ კოდის ელემენტების აღწერებიდან ჩანს თუ რამდენად მარტივად შეიძლება საკმაოდ რთული ცხრილების ფორმირება საჭირო ელემენტების სწორად გამოყენებით.</p>
<p>გარდა იმისა რომ ცხრილი აბსოლუტურად ლოგიკურად არის ფორმირებული ასევე საგულისხმოა ის ფაქტი რომ ყველა გამოყენებულ ელემენტთან დამოუკიდებლად შეგვიძლია ვიმუშავოთ CSS &#8211; ითა თუ JavaScript &#8211; ით.</p>
<p>ქვემოთ ნაჩვენებია მაგალითისათვის გამოყენებული CSS კოდი, რომელიც არის საკმაოდ მარტივი თუმცა ნათლად ასახავს თვითონ ცხრილის სხვადასხვა ელემენტებთან მუშაობის ხერხებს:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #cc00cc;">#data-table</span><span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#data-table</span> th<span style="color: #00AA00;">,</span> <span style="color: #cc00cc;">#data-table</span> td <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <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: #000000; font-weight: bold;">black</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<br />
<span style="color: #cc00cc;">#data-table</span> caption <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">silver</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<br />
<span style="color: #cc00cc;">#data-table</span> <span style="color: #cc00cc;">#tbody-one</span> tr <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> lightblue<span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<br />
<span style="color: #cc00cc;">#data-table</span> <span style="color: #cc00cc;">#tbody-two</span> tr <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> pink<span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<br />
<span style="color: #cc00cc;">#data-table</span> <span style="color: #cc00cc;">#tbody-three</span> tr <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">green</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<br />
<span style="color: #cc00cc;">#data-table</span> tfoot tr td <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">text-align</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">right</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> orange<span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>უფრო მეტი დეტალებისათვის შეგიძლიათ იხილოთ w3c &#8211; ს <a href="http://www.w3.org/TR/html401/struct/tables.html">ოფიციალური დოკუმენტი</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code.ge/posts/useful-details-of-table-element/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>CSS rollover ეფექტი JavaScript &#8211; ის გარეშე</title>
		<link>http://www.code.ge/posts/css-rollover-effect-without-javascript</link>
		<comments>http://www.code.ge/posts/css-rollover-effect-without-javascript#comments</comments>
		<pubDate>Mon, 12 Mar 2007 10:41:32 +0000</pubDate>
		<dc:creator>იოსები</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.ioseb.com/?p=28</guid>
		<description><![CDATA[rollover ეფექტი ვებ საიტებისა თუ ვებ აპლიკაციების დიზაინში ხშირად გამოყენებადი ელემენტია. განსაკუთრებით ხშირად იგი გამოიყენება ნავიგაციის მენიუებში, თუმცა არც სხვა შემთხვევები წარმოადგენს გამონაკლისს. წლების წინ როდესაც CSS &#8211; ის მხარდაჭერა არასრულყოფილად იყო რეალიზებული ბროუზერებში ამ ეფექტის მიღწევის ერთადერთი გზა იყო JavaScript. თავისთავად rollover ეფექტი სხვადასხვანაირად შეგვიძლია გამოვიყენოთ, რიგ შემთხვევებში შეიძლება HTML ელემენტებს მაუსის ისრის მიტანის [...]]]></description>
			<content:encoded><![CDATA[<p>rollover ეფექტი ვებ საიტებისა თუ ვებ აპლიკაციების დიზაინში ხშირად გამოყენებადი ელემენტია. განსაკუთრებით ხშირად იგი გამოიყენება ნავიგაციის მენიუებში, თუმცა არც სხვა შემთხვევები წარმოადგენს გამონაკლისს. წლების წინ როდესაც CSS &#8211; ის მხარდაჭერა არასრულყოფილად იყო რეალიზებული ბროუზერებში ამ ეფექტის მიღწევის ერთადერთი გზა იყო JavaScript.<br />
<span id="more-28"></span></p>
<p>თავისთავად rollover ეფექტი სხვადასხვანაირად შეგვიძლია გამოვიყენოთ, რიგ შემთხვევებში შეიძლება HTML ელემენტებს მაუსის ისრის მიტანის დროს შევუცვალოთ ფონის სურათი, ან საერთოდ არ გამოვიყენოთ სურათები და უბრალოდ შევუცვალოთ ფონი. მაგრამ არსებობს ისეთი შემთხვევები როდესაც მხოლოდ ფონის შეცვლა არ კმარა, ზოგჯერ შეიძლება ბევრად მეტი ცვლილების განხორციელება იყოს საჭირო, მაგალითად ტექსტის ფერის შეცვლა, ელემენტის გვერდების ზომისა და ფერის შეცვლა, ელემენტს შიგნით არსებული სხვა ელემენტების გამოჩენა და ა.შ.</p>
<p>გამომდინარე აღწერილი შემთხვევებიდან ერთის მხრივ თუ ამ ცვლილებების დიდ ნაწილს განვახორციელებთ სურათების მეშვეობით, მოგვიწევს უკეთეს შემთხვევაში ორი სურათის შექმნა, უარეს შემთხვევაში კი ორზე მეტი სურათიც კი შეიძლება დაგვჭირდეს. ამასთან ერთად რაც უფრო რთული ცვლილებების გაკეთება ხდება საჭირო მითუ უფრო მეტი JavaScript კოდის წერაა საჭირო, რაც თავის მხრივ არ არის ეფექტური გამოსავალი.</p>
<p>ქვემოთ ნაჩვენები მარტივი მენიუ მთლიანად გაკეთებულია CSS და XHTML კოდის მეშვეობით და იგი არ იყენებს JavaScript &#8211; ს.</p>
<style type="text/css">#menu ul {
	padding: 0px;
	margin: 0px;
	list-style-type: none;
}#menu a {
	display: block;
	width: 150px;
	background-color: lightblue;
	color: blue;
	border-bottom: 1px solid gray;
	border-right: 5px solid silver;
	text-decoration: none;
	padding: 2px;
}#menu a:hover {
	background-color: pink;
	border-right: 5px solid orange;
	color: red;
}</style>
<div id="menu">
<ul>
<li><a href="#">Item One</a></li>
<li><a href="#">Item Two</a></li>
<li><a href="#">Item Three</a></li>
</ul>
</div>
<p>ამ მარტივ მაგალითში მენიუს რომელიმე ელემენტზე მაუსის ისრის მიტანის დროს ხდება რამდენიმე ცვლილება:</p>
<ol>
<li>იცვლება ელემენტის ფონის ფერი</li>
<li>იცვლება ტექსტის ფერი</li>
<li>იცვლება მარჯვენა გვერდის ფერი</li>
</ol>
<p>მენიუს HTML კოდი შედგება სულ რამდენიმე სტრიქონისგან:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;menu&quot;</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Item One<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Item Two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Item Three<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>კოდიდან ცხადად ჩანს რომ მასში არ არის გამოყენებული არც ერთი მოვლენა (event), JavaScript &#8211; ით იგივე ეფექტის მიღების შემთხვევაში ყველა a ელემენტისთვის საჭირო იქნებოდა onmouseover და onmouseout მოვლენების გამოყენება. ამ შემთხვევაში კი ყველა ცვლილება ხორციელდება მხოლოდ CSS კოდით რომელიც ნაჩვენებია ქვემოთ.</p>
<p>მენიუს CSS კოდს აქვს შემდეგი სახე:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #cc00cc;">#menu</span> ul <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0px</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">margin</span><span style="color: #00AA00;">:</span> <span style="color: #933;">0px</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">list-style-type</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<span style="color: #cc00cc;">#menu</span> a <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">block</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">150px</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> lightblue<span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">blue</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">border-bottom</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #993333;">gray</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">border-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span> <span style="color: #993333;">solid</span> <span style="color: #993333;">silver</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">text-decoration</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">2px</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<span style="color: #cc00cc;">#menu</span> a<span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">background-color</span><span style="color: #00AA00;">:</span> pink<span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">border-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span> <span style="color: #993333;">solid</span> orange<span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>მოცემულ მაგალითში სასურველი ეფექტის მისაღწევად გამოიყენება a ელემენტის hover ფსევდო კლასი, რომელიც გვაძლევს იმის საშუალებას რომ menu იდენტიფიკატორის მქონე div ელემენტის შიგნით არსებულ ყველა a ელემენტზე მაუსის ისრის მიტანის დროს განვახორციელოთ სხვადასხვა ცვლილება. ამ შემთხვევაში როგოც ზემოთ იყო აღნიშნული იცვლება მხოლოდ ფონი, მარჯვენა გვერდის ფერი და ტექსტის ფერი.</p>
<p>ამ მარტივი მაგალითიდან ცხადია რომ hover ფსევდო კლასის გამოყენებით შესაძლებელია უამრავი სხვა ცვლილების განხორციელება საჭიროების მიხედვით. მაგალითად გარდა მხოლოდ ფონის ფერის ცვლილებისა თავისუფლად არის შესაძლებელი რომ ელემენტს შევუცვალოთ არა მხოლოდ ფერი არამედ მას შევუცვალოთ ფონის სურათი, რაც მიიღება იგივე კოდის მარტივი მოდიფიცირებით:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #cc00cc;">#menu</span> a<span style="color: #3333ff;">:hover </span><span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">background-image</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">url</span><span style="color: #00AA00;">&#40;</span><span style="color: #ff0000;">&quot;hoverimage.gif&quot;</span><span style="color: #00AA00;">&#41;</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">background-repeat</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">no-repeat</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">border-right</span><span style="color: #00AA00;">:</span> <span style="color: #933;">5px</span> <span style="color: #993333;">solid</span> orange<span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">red</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>ასეთ შემთხვევაში (იგულისხმება რომ სურათი სახელად hoverimage.gif არსებობს) ელემენტს მიენიჭება ახალი ფონის სურათი&#8230; თუმცა ეს არ არის ყველაფერი, მაგალითად წარმოვიდგინოთ შემთხვევა როდესაც მენიუს ელემენტზე მაუსის ისრის მიტანის დროს უნდა გამოჩნდეს რაიმე დამალული ელემენტი როგორც ნაჩვენებია შემდეგ მაგალითში:</p>
<style type="text/css">#menu a {
	display: block;
	width: 150px;
	background-color: lightblue;
	color: blue;
	border-bottom: 1px solid gray;
	border-right: 5px solid silver;
	text-decoration: none;
	padding: 2px;
}#menu a span {
	display: none;
}#menu a:hover {
	background-color: pink;
	border-right: 5px solid orange;
	color: red;
}#menu a:hover span {
	display: inline;
	font-weight: bold;
	color: green;
}#menu ul {
	padding: 0px;
	margin: 0px;
	list-style-type: none;
}</style>
<div id="menu">
<ul>
<li><a href="#">Item One<span>&nbsp;Info One</span></a></li>
<li><a href="#">Item Two<span>&nbsp;Info Two</span></a></li>
<li><a href="#">Item Three<span>&nbsp;Info Three</span></a></li>
</ul>
</div>
<p>ამ მაგალითში გარდა ზემოთ ჩამოთვლილი ცვლილებებისა დაემატა კიდევ ერთი, ელემენტზე ისრის მიტანისას ჩნდება მწვანე ფერის ტექსტი.</p>
<p>როგორ მიიღწევა ეს ეფექტი? პირველ რიგში მცირე ცვლილება HTML კოდში:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;menu&quot;</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Item One<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">span</span></a>&gt;</span><span style="color: #ddbb00;">&amp;nbsp;</span>Info One<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">span</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Item Two<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">span</span></a>&gt;</span><span style="color: #ddbb00;">&amp;nbsp;</span>Info Two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">span</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;&lt;<a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span>&gt;</span>Item Three<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">span</span></a>&gt;</span><span style="color: #ddbb00;">&amp;nbsp;</span>Info Three<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/span.html"><span style="color: #000000; font-weight: bold;">span</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/a.html"><span style="color: #000000; font-weight: bold;">a</span></a>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>მენიუს ყოველ ელემენტს a ტეგს შიგნით დავამატეთ span ტეგი შესაბამისი ტექსტით, რომელიც მენიუს ელემენტზე ისრის მიტანის დროს გამოჩნდება.</p>
<p>ასევე მცირე ცვლილება განხორციელდა CSS კოდში, მას დაემატა შემდეგი დირექტივები:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #cc00cc;">#menu</span> a span <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span><br />
<br />
<span style="color: #cc00cc;">#menu</span> a<span style="color: #3333ff;">:hover </span>span <span style="color: #00AA00;">&#123;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">inline</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">font-weight</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">bold</span><span style="color: #00AA00;">;</span><br />
&nbsp; <span style="color: #000000; font-weight: bold;">color</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">green</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>განვიხილოთ თითოეული მათგანი.</p>
<p>#menu a span &#8211; ის მეშვეობით უბრალოდ ვმალავთ a ელემენტების შიგნით არსებულ span ტეგებს.<br />
<br />#menu a:hover span &#8211; ის მეშვეობით კი პირიქით, ვაჩენთ span ტეგს CSS display თვისების მეშვეობით.</p>
<p>ისევე როგორც პირველ მაგალითში ამ შემთხვევაშიც ყველაფერი განხორციელდა CSS &#8211; ის მეშვეობით. თუ ზემოთ მოცემულ CSS კოდს დავამატებთ შემდეგ დირექტივას:</p>
<div class="codecolorer-container css blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #cc00cc;">#menu</span> ul li <span style="color: #00AA00;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> inline-<span style="color: #993333;">block</span><span style="color: #00AA00;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">float</span><span style="color: #00AA00;">:</span> <span style="color: #000000; font-weight: bold;">left</span><span style="color: #00AA00;">;</span><br />
<span style="color: #00AA00;">&#125;</span></div></td></tr></tbody></table></div>
<p>ვერტიკალურის ნაცვლად მივიღებთ ჰორიზონტალურ მენიუს.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code.ge/posts/css-rollover-effect-without-javascript/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>&lt;thead&gt;, &lt;tbody&gt; &amp; &lt;tfoot&gt; რა საჭიროა ეს სამი ტეგი?</title>
		<link>http://www.code.ge/posts/why-use-thead-tfoot-tbody-tags</link>
		<comments>http://www.code.ge/posts/why-use-thead-tfoot-tbody-tags#comments</comments>
		<pubDate>Sun, 25 Feb 2007 02:00:29 +0000</pubDate>
		<dc:creator>იოსები</dc:creator>
				<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://localhost/wordpress/?p=17</guid>
		<description><![CDATA[რა საჭიროა ეს სამი ტეგი? შეიძლება თუ არა გამოვიყენოთ რამეში? ეს და სხვა მსგავსი შეკითხვები მაწუხებდა მუდმივად სადაც კი ამ ტეგებს მოვკრავდი თვალს&#8230; თუმცა დიდ მნიშვნელობას არასოდეს არ ვანიჭებდი მათ არსებობას&#8230; ერთადერთი როდესაც ინტენსიურად დავიწყე JavaScript DOM API-ს გამოყენება აღმოჩნდა რომ თუ სკრიპტი სრულდებოდა IE-ში, ხოლო მისი მეშვეობით არსებულ ცხრილში გვინდოდა ახალი სტრიქონის (tr) დამატება [...]]]></description>
			<content:encoded><![CDATA[<p>რა საჭიროა ეს სამი ტეგი? შეიძლება თუ არა გამოვიყენოთ რამეში? ეს და სხვა მსგავსი შეკითხვები მაწუხებდა მუდმივად სადაც კი ამ ტეგებს მოვკრავდი თვალს&#8230; თუმცა დიდ მნიშვნელობას არასოდეს არ ვანიჭებდი მათ არსებობას&#8230; ერთადერთი როდესაც ინტენსიურად დავიწყე JavaScript DOM API-ს გამოყენება აღმოჩნდა რომ თუ სკრიპტი სრულდებოდა IE-ში, ხოლო მისი მეშვეობით არსებულ ცხრილში გვინდოდა ახალი სტრიქონის (tr) დამატება დინამიურად, &lt;tbody&gt; ტეგის გარეშე ეს სკრიპტი არ მუშაობდა&#8230;<span id="more-17"></span> მაგ მომენტიდან მივეჩვიე ამ ტეგის გამოყენებას ცხრილებში, თუმცა thead და tfoot არასოდეს არ გამომიყენებია&#8230;</p>
<p>საერთოდ რატომ უნდა გამოვიყენოთ ცხრილი? ბევრი web 2.0 ენთუზიასტი ბევრს კამათობს ამაზე და არც მე ვარ გამონაკლისი&#8230; თუმცა არის შემთხვევები როდესაც ცხრილების გამოყენება გარდაუვალია, და ასეთი შემთხვევა არც თუ იშვიათია. რაც შეეხება იმას რომ ცხრილი არ გამოვიყენოთ საერთოდ მე პირადად უზარმაზარ სისულელედ მიმაჩნია და არგუმენტად ისიც კმარა ჩემთვის რომ Google და Yahoo საჭიროების მიხედვით თამამად და წარმატებულად იყენებენ ცხრილებს. თუმცა ეს სხვა თემაა და ჯობია დავუბრუნდე მთავარ საკითხს&#8230;</p>
<p>გარკვეული პერიოდის წინ, კონკრეტულ ამოცანაზე მუშაობისას საჭირო აღმოჩნდა ისეთი ცხრილის გაკეთება რომელსაც ექნებოდა head, თავისთავად body და footer. ცხრილის სამივე ნაწილს ტავის დანიშნულება აქვს რაც მათი დასახელებებიდან ჩანს რაც HTML &#8211; ში ავსახეთ შემდეგნაირად:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;grid&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;gridbody&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- table header --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;table_header&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span>Column One<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span>Column Two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- end table header --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- table content --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;table_row&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Cell Data One<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Cell Data Two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- end table content --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- table footer --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;table_footer&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a> <span style="color: #000066;">colspan</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;addDynamicRow()&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;add_row&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Add dynamic row&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- end table footer --&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>როგორც ცხრილის კომენტარებიდან ჩანს, ყველაფერი თავმოყრილი იყო tbody ტეგს შიგნით და ცხრილის header, მონაცემების სტრიქონებსა და ცხრილის footer &#8211; ს შორის განსხვავება გამოიხატებოდა მხოლოდ მათ კომენტარებსა და class ატრიბუტის მნიშვნელობებით. ცხრილის ბოლო სტრიქონში განთავსებული ღილაკის მეშვეობით ცხრილს უნდა  დამატებოდა ახალი სტრიქონი.</p>
<p>ერთი შეხედვით ყველაფერი &#8220;იდეალურად&#8221; და &#8220;ლოგიკურად&#8221; მეჩვენა მაგრამ ამოცანაში ნათქვამი იყო რომ გარკვეული შემთხვევების მიხედვით ცხრილს ახალი სტრიქონი დაემატებოდა ან დასაწყისში(prepend) ან ბოლოში(append) თუმცა ამას დიდი მნიშვნელობა არ მივანიჭე თავიდან. დაიწერა შესაბამისი JavaScript კოდი რომელიც ამ ამოცანას ასრულდებდა&#8230; მაგრამ არა ისე როგორც ეს მე მსურდა. აღმოჩნდა რომ თუ სტირქონს დავამატებდი თავში იგი აღმოჩნდებოდა ცხრილის დასაწყისში მაგრამ თვითონ სვეტების დასახელებამდე&#8230; ბოლოში დამატების შემთხვევაში კი &#8220;footer&#8221;-მდე რაც რა თქმა უნდა არასწორი იყო. </p>
<p>პირველად ვიფიქრე რომ სკრიპტისთვის დამემატებინა დამატებითი ლოგიკა რომელიც დინამიურ სტრიქონს დაამატებდა ერთ შემთხვევაში პირველი სტრიქონის შემდეგ, ხოლო მეორე შემთხვევაში ბოლო სტრიქონის წინ&#8230; ეს აზრი თავიდანვე არ მომეწონა და არაბუნებრივად მეჩვენა, რატომ უნდა ეთვალა სკრიპტს რომელი იყო პირველი და რომელი იყო ბოლო სტრიქონი.. თუ რთული შემთხვევა იქნებოდა და footer არა ერთი არამედ რამდენიმე სტრიქონისგან იქნებოდა შედგენილი? ან პირიქით header იქნებოდა ასეთი? ფიქრის და წვალების მერე როგორც იქნა მივხვდი რომ თუ ვიყენებდი tbody ტეგს რატომ არ უნდა გამომეყენებინა thead ტეგი? ვცადე და append-ის შემთხვევაში შედეგი მიღწეული აღმოჩნდა, თუმცა footer &#8211; ის პრობლემა ისევ მოუგვარებელი რჩებოდა სწორედ ამ დროს გამახსენდა tfoot ტეგის არსებობის შესახებ გამოვიყენე ეს ტეგიც და ამ შემთხვევაშიც გამიმართლდა მოლოდინი. მაგრამ რამაც ყველაზე მეტად გამახარა ასეთი კოდი აბსოლუტურად XHTML valid აღმოჩნდა. ცხრილმა კი მიიღო ასეთი სახე:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;grid&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- table header --&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/thead.html"><span style="color: #000000; font-weight: bold;">thead</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;table_header&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span>Column One<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span>Column Two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/th.html"><span style="color: #000000; font-weight: bold;">th</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/thead.html"><span style="color: #000000; font-weight: bold;">thead</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- end table header --&gt;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- table footer --&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tfoot.html"><span style="color: #000000; font-weight: bold;">tfoot</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;table_footer&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a> <span style="color: #000066;">colspan</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;2&quot;</span>&gt;&lt;<a href="http://december.com/html/4/element/input.html"><span style="color: #000000; font-weight: bold;">input</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;button&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;addDynamicRow()&quot;</span> <span style="color: #000066;">name</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;add_row&quot;</span> <span style="color: #000066;">value</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;Add dynamic row&quot;</span> <span style="color: #66cc66;">/</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tfoot.html"><span style="color: #000000; font-weight: bold;">tfoot</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- end table footer --&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- table content --&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;gridbody&quot;</span>&gt;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;table_row&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Cell Data One<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span>Cell Data Two<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/td.html"><span style="color: #000000; font-weight: bold;">td</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tr.html"><span style="color: #000000; font-weight: bold;">tr</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/tbody.html"><span style="color: #000000; font-weight: bold;">tbody</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #808080; font-style: italic;">&lt;!-- end table content --&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/table.html"><span style="color: #000000; font-weight: bold;">table</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>გარდა იმ პრობლემისა რა პრობლემაც გადავჭერი ამ სამი ტეგის მეშვეობით, ასევე საკმაოდ სასარგებლო აღმოჩენა გავაკეთე, რომ ამ გზით ერთმანეთისგან დამოუკიდებლად და ბევრად უფრო ეფექტურად შეგვიძლია ცხრილებთან მუშაობა, ანუ ისე შეგვიძლია დავამუშავოთ ცხრილის ეს სამი ნაწილი ერთმანეთისგან დამოუკიდებლად რომ დამატებითი კოდის წერა, არასაჭირო გამოთვლები და წვალება ავირიდოთ თავიდან.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code.ge/posts/why-use-thead-tfoot-tbody-tags/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

