<?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>C, PHP, VB, .NET &#187; ХHTML/JS</title>
	<atom:link href="http://www.cphpvb.net/category/xhtml/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cphpvb.net</link>
	<description>дневникът на Филип Петров</description>
	<lastBuildDate>Mon, 30 Jan 2012 16:44:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>XHTML форми</title>
		<link>http://www.cphpvb.net/xhtml/3581-xhtml-%d1%84%d0%be%d1%80%d0%bc%d0%b8/</link>
		<comments>http://www.cphpvb.net/xhtml/3581-xhtml-%d1%84%d0%be%d1%80%d0%bc%d0%b8/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 06:44:58 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3581</guid>
		<description><![CDATA[Досега в разглежданите примери винаги сървърът предоставяше информация, а потребителят я четеше. Понякога обаче ни се иска да направим и обратна връзка. Формите са универсалният метод за изпращане на информация от потребител към сървър. Обикновено тази стъпка в различна посока от &#8222;еднопосочното&#8220; движение на информация не е комфортна за разработчиците. Човек свикнал да борави със [...]]]></description>
			<content:encoded><![CDATA[<p>Досега в разглежданите примери винаги сървърът предоставяше информация, а потребителят я четеше. Понякога обаче ни се иска да направим и обратна връзка. Формите са универсалният метод за изпращане на информация от потребител към сървър. Обикновено тази стъпка в различна посока от &#8222;еднопосочното&#8220; движение на информация не е комфортна за разработчиците. Човек свикнал да борави със статичен HTML код обикновено изпитва трудности при обработването на информация от форми. Затова на тази тема ще се спрем по-детайлно.</p>
<p>За изграждане на форми използваме следните тагове:<span id="more-3581"></span></p>
<ul>
<li>&lt;form&gt; &#8211; базов таг, с който се ограждат всички елементи на формата;</li>
<li>&lt;input&gt; &#8211; таг указващ някои от възможните полета за въвеждане на информация. Тук попадат бутони, едноредови текстови полета, избираеми полета и полета за отбелязване;</li>
<li>&lt;textarea&gt; &#8211; многоредово текстово поле;</li>
<li>&lt;select&gt; &#8211; така нареченото &#8222;падащо меню&#8220;.</li>
</ul>
<p>Споменатите елементи се изобразяват графично. Има съвсем минимални разлики между различните браузъри в изобразяването им. Всъщност вие сте виждали тези същите контроли за въвеждане на информация във вашата операционна система. Често разработчиците променят външния им вид чрез CSS според дизайна на сайта.</p>
<p>Ето и пълен списък на контролите както и кратък пример за всеки от тях:</p>
<table border="1">
<caption>Layout of form elements – CHI Best Practice</caption>
<tbody>
<tr style="text-align: center;">
<th>Елемент</th>
<th>Пример</th>
<th>Изглед</th>
</tr>
<tr>
<td>input type=&#8220;text&#8220;</td>
<td>Username:&lt;br /&gt;<br />
&lt;input type=&#8220;text&#8220; name=&#8220;username&#8220; /&gt;</td>
<td style="text-align: center;"><img class="aligncenter size-full wp-image-3583" title="Input Type Text" src="http://www.cphpvb.net/wp-content/uploads/2009/09/typetext.PNG" alt="Input Type Text" width="160" height="55" /></td>
</tr>
<tr>
<td>input type=&#8220;password&#8220;</td>
<td>Password&lt;br /&gt;<br />
&lt;input type=&#8220;password&#8220; name=&#8220;password&#8220; /&gt;</td>
<td style="text-align: center;"><img class="aligncenter size-full wp-image-3584" title="Input Type Password" src="http://www.cphpvb.net/wp-content/uploads/2009/09/typepassword.PNG" alt="Input Type Password" width="158" height="52" /></td>
</tr>
<tr>
<td>input type=&#8220;button&#8220;</td>
<td>&lt;input type=&#8220;button&#8220; name=&#8220;help&#8220;<br />
value=&#8220;Help?&#8220; /&gt;</td>
<td style="text-align: center;"><img class="aligncenter size-full wp-image-3585" title="Input Type Button" src="http://www.cphpvb.net/wp-content/uploads/2009/09/typebutton.PNG" alt="Input Type Button" width="82" height="51" /></td>
</tr>
<tr>
<td>input type=&#8220;submit&#8220;</td>
<td>&lt;input type=&#8220;submit&#8220; name=&#8220;submit&#8220;<br />
value=&#8220;Validate&#8220; /&gt;</td>
<td style="text-align: center;"><img class="aligncenter size-full wp-image-3586" title="Input Type Submit" src="http://www.cphpvb.net/wp-content/uploads/2009/09/typesubmit.PNG" alt="Input Type Submit" width="110" height="47" /></td>
</tr>
<tr>
<td>input type=&#8220;radio&#8220;</td>
<td>&lt;input type=&#8220;radio&#8220;<br />
name=&#8220;agree&#8220;<br />
value=&#8220;Yes&#8220; checked=&#8220;checked&#8220; /&gt; SSL on&lt;br /&gt;<br />
&lt;input type=&#8220;radio&#8220;<br />
name=&#8220;agree&#8220;<br />
value=&#8220;No&#8220; /&gt;<br />
SSL off</td>
<td style="text-align: center;"><img class="aligncenter size-full wp-image-3587" title="Input Type Radio" src="http://www.cphpvb.net/wp-content/uploads/2009/09/typeradio.PNG" alt="Input Type Radio" width="98" height="59" /></td>
</tr>
<tr>
<td>input type=&#8220;checkbox&#8220;</td>
<td>&lt;input type=&#8220;checkbox&#8220;<br />
name=&#8220;remember&#8220;<br />
value=&#8220;remember&#8220; /&gt;Save cookie?</td>
<td style="text-align: center;"><img class="aligncenter size-full wp-image-3588" title="Input Type Checkbox" src="http://www.cphpvb.net/wp-content/uploads/2009/09/typecheckbox.PNG" alt="Input Type Checkbox" width="114" height="59" /></td>
</tr>
<tr>
<td>select</td>
<td>Where do you want to login to?&lt;br /&gt;<br />
&lt;select name=&#8220;section&#8220;&gt;<br />
&lt;option&gt;Admin section&lt;/option&gt;<br />
&lt;option&gt;User area&lt;/option&gt;<br />
&lt;/select&gt;</td>
<td style="text-align: center;"><img class="aligncenter size-full wp-image-3589" title="Select Option in HTML" src="http://www.cphpvb.net/wp-content/uploads/2009/09/typeselect.PNG" alt="Select Option in HTML" width="199" height="85" /></td>
</tr>
<tr>
<td>textarea</td>
<td>Log comment for this login:&lt;br /&gt;<br />
&lt;textarea name=&#8220;comment&#8220;<br />
rows=&#8220;3&#8243; cols=&#8220;18&#8243;&gt;&lt;/textarea&gt;</td>
<td style="text-align: center;"><img class="aligncenter size-full wp-image-3590" title="HTML textbox" src="http://www.cphpvb.net/wp-content/uploads/2009/09/typetextbox.PNG" alt="HTML textbox" width="194" height="85" /></td>
</tr>
</tbody>
</table>
<p>Ето как би изглеждала първата ни форма (която все още не прави нищо):</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
&lt;head&gt;
	&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
	&lt;title&gt;HTML Form&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;form action=""&gt;
		&lt;p&gt;
		Username:&lt;br /&gt;
		&lt;input type="text" name="username" /&gt;&lt;br /&gt;

		Password:&lt;br /&gt;
		&lt;input type="password" name="password" /&gt;&lt;br /&gt;

		&lt;input type="checkbox" name="remember" value="remember" /&gt;
			Save cookie?&lt;br /&gt;&lt;br /&gt;

		&lt;input type="radio" name="agree" value="Yes" checked="checked" /&gt;
			SSL on&lt;br /&gt;

		&lt;input type="radio" name="agree" value="No" /&gt;
			SSL off&lt;br /&gt;&lt;br /&gt;

		Where do you want to login to?&lt;br /&gt;
		&lt;select name="section"&gt;
			&lt;option&gt;Admin section&lt;/option&gt;
			&lt;option&gt;User area&lt;/option&gt;
		&lt;/select&gt;&lt;br /&gt;&lt;br /&gt;

		Log comment for this login:&lt;br /&gt;
		&lt;textarea name="comment" rows="3" cols="18"&gt;&lt;/textarea&gt;&lt;br /&gt;

		&lt;input type="submit" name="submit" value="Validate" /&gt;
		&lt;input type="button" name="help" value="Help?" /&gt;
		&lt;/p&gt;
	&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Резултат:</p>
<p><img class="aligncenter size-full wp-image-3596" title="HTML form" src="http://www.cphpvb.net/wp-content/uploads/2009/09/form.PNG" alt="HTML form" width="206" height="382" /></p>
<p>В следващата статия ще покажем как можем да &#8222;прихващаме&#8220; информацията от форма и да я обработваме на сървъра.</p>
<p>П.П. Примерите за контроли и примерната форма са показани като картинка, а не с реалните обекти. Опитахте ли се да натиснете бутона? :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3581-xhtml-%d1%84%d0%be%d1%80%d0%bc%d0%b8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Математически функции в JS</title>
		<link>http://www.cphpvb.net/xhtml/3558-%d0%bc%d0%b0%d1%82%d0%b5%d0%bc%d0%b0%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-js/</link>
		<comments>http://www.cphpvb.net/xhtml/3558-%d0%bc%d0%b0%d1%82%d0%b5%d0%bc%d0%b0%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-js/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 17:46:58 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3558</guid>
		<description><![CDATA[В JavaScript съществуват достатъчно много математически константи и готови функции, които да могат да обхванат доста широк спектър от изчислителни задачи по математика. Естествено намират и редица други приложения при изграждането на по-сложни продукти. Ще разгледаме всички подробно. I. Константи: Math.E -  Ойлеровата константа e = 2.718281828459045&#8230;; Math.LN2 &#8211; натурален логаритъм от 2 &#8211; ln(2); [...]]]></description>
			<content:encoded><![CDATA[<p>В JavaScript съществуват достатъчно много математически константи и готови функции, които да могат да обхванат доста широк спектър от изчислителни задачи по математика. Естествено намират и редица други приложения при изграждането на по-сложни продукти. Ще разгледаме всички подробно.<span id="more-3558"></span></p>
<p>I. Константи:</p>
<ol>
<li>Math.E -  Ойлеровата константа e = 2.718281828459045&#8230;;</li>
<li>Math.LN2 &#8211; натурален логаритъм от 2 &#8211; ln(2);</li>
<li>Math.LN10 &#8211; натурален логаритъм от 10 &#8211; ln(10);</li>
<li>Math.LOG2E &#8211; log<sub>2</sub>(e);</li>
<li>Math.LOG10E &#8211; log<sub>10</sub>(e);</li>
<li>Math.PI &#8211; 3.141592653589793&#8230;;</li>
<li>Math.SQRT1_2 &#8211; корен квадратен от 1/2;</li>
<li>Math.SQRT2 &#8211; корен квадратен от 2.</li>
</ol>
<p>II. Функции:</p>
<ol>
<li>Math.abs(&lt;число&gt;) &#8211; абсолютна стойност от число;</li>
<li>Math.acos(&lt;число от -1 до 1&gt;) &#8211; аркускосинус;</li>
<li>Math.asin(&lt;число от -1 до 1&gt;) &#8211; аркуссинус;</li>
<li>Math.atan(&lt;радиани&gt;) &#8211; аркустангенс;</li>
<li>Math.atan2(&lt;y&gt;, &lt;x&gt;) &#8211; аркустангенс от отношението на координатите на точка y/x (което всъщност дава радиани);</li>
<li>Math.cos(&lt;радиани&gt;) &#8211; косинус. Например Math.cos(Math.PI) ще даде резултат -1;</li>
<li>Math.sin(&lt;радиани&gt;) &#8211; синус;</li>
<li>Math.tan(&lt;радиани&gt;) &#8211; тагненс;</li>
<li>Math.ceil(&lt;число&gt;) &#8211; закръглява числото нагоре. Например ceil(3.1) дава 4;</li>
<li>Math.floor(&lt;число&gt;) &#8211; закръглява числото надолу, например floor(3.9) дава 3;</li>
<li>Math.round(&lt;число&gt;) &#8211; закръглява числото, например round(3.1) дава 3, а round(3.5) дава 4;</li>
<li>Math.exp(&lt;степен x&gt;) &#8211; дава степен на експонентата &#8211; e<sup>x</sup>;</li>
<li>Math.log(&lt;положително число x&gt;) &#8211; натурален логаритъм ln(x);</li>
<li>Math.max(&lt;число a&gt;, &lt;число b&gt;) &#8211; връща по-голямото от числата a и b;</li>
<li>Math.min(&lt;число a&gt;, &lt;число b&gt;) &#8211; връща по-малкото от числата a и b;</li>
<li>Math.pow(&lt;число a&gt;, &lt;число b&gt;) &#8211; връща a на степен b, т.е. a<sup>b</sup>;</li>
<li>Math.random() &#8211; връща произволно число от 0 до 1;</li>
<li>Math.sqrt(&lt;положително число или 0&gt;) &#8211; връща корен квадратен от числото.</li>
</ol>
<p>Важно е да помните, че тригонометричните функции използват радиани, а не градуси. Естествено това не е сериозен проблем, тъй като можем лесно да използваме формулата за превръщане на градуси в радиани. Например, за да превърнете 45 градуса в радиани използваме формулата 45*Math.PI/180.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3558-%d0%bc%d0%b0%d1%82%d0%b5%d0%bc%d0%b0%d1%82%d0%b8%d1%87%d0%b5%d1%81%d0%ba%d0%b8-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-js/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Дати в JavaScript</title>
		<link>http://www.cphpvb.net/xhtml/3550-%d0%b4%d0%b0%d1%82%d0%b8-%d0%b2-javascript/</link>
		<comments>http://www.cphpvb.net/xhtml/3550-%d0%b4%d0%b0%d1%82%d0%b8-%d0%b2-javascript/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 22:09:50 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3550</guid>
		<description><![CDATA[Не е рядък случая когато ни се налага да работим с дата и час. Това се налага винаги когато имаме нужда да работим с календар. Например ако имаме статия, която е публикувана на определена дата и искаме да видим &#8222;на колко дни е тя&#8220;. В социалните мрежи често има функционалности за позрав при рожден ден. [...]]]></description>
			<content:encoded><![CDATA[<p>Не е рядък случая когато ни се налага да работим с дата и час. Това се налага винаги когато имаме нужда да работим с календар. Например ако имаме статия, която е публикувана на определена дата и искаме да видим &#8222;на колко дни е тя&#8220;. В социалните мрежи често има функционалности за позрав при рожден ден. Друг случай е когато създаваме таймери.</p>
<p>JavaScript ни дава един изключително полезен обект &#8211; дата. Дефинира се по следния начин:<span id="more-3550"></span></p>
<pre>var currentdate = new Date();
document.write(currentdate);</pre>
<p>Както се досещате от името на променливата, така извикана функцията Date() връща текущото време. Резултатът от този пример ще е нещо подобно на:</p>
<pre>Fri Sep 11 2009 00:01:43 GMT+0300 (FLE Daylight Time)</pre>
<p>Fri означава петък (дните от седмицата са Mon, Tue, Wed, Thu, Fri, Sat и Sun). Следва трибуквен код за месец (Sep &#8211; септември). Числото 11 отговаря за деня, а 2009 е годината (по американски стандарт месецът се пише преди деня). Числата 00:01:43 отговарят за час, минута и секунда, а GMT+0300 е отклонението на часовата зона спрямо Гринуич (България е в часова зона +0200).</p>
<p>Естествено този формат на датата не е много удобен. Понякога ни трябва само денят, друг път само годината или часа. За това обектът от тип Date ни предоставя редица готови функции:</p>
<ol>
<li>getDate() &#8211; връща пореден ден от месеца. От примера currentdate.getDate() ще върне 11. Естествено числото е в интервала от 1 до 31;</li>
<li>setDate(&lt;число от 1 до 31&gt;) &#8211; променя деня в променливата;</li>
<li>getDay() &#8211; връща деня от седмицата. Ако например днес е петък (Fri), то currentdate.getDay() ще върне числото 5;</li>
<li>getMonth() &#8211; връща поредния номер на месеца, но от 0 до 11! Обърнете специално внимание на този факт &#8211; септември е 9ти месец в календара, на getMonth() ще върне числото 8!;</li>
<li>setMonth(&lt;число от 0 до 11&gt;) &#8211; променя месеца от стойността на променливата;</li>
<li>getYear() &#8211; връща число разликата между текущата година и 1900. Например ако годината е 2009, то числото върнато от функцията ще бъде 109 (2009-1900 = 109);</li>
<li>setYear(&lt;цяло число&gt;) &#8211; променя стойността на годината. Приема както положителни, така и отрицателни числа, които отговарят на реалната година. Обърнете внимание, че за разлика от getYear() тук НЕ се работи с разликата с 1900, а числото отговаря за самата година. Например currentdate.setYear(1998) ще настрои годината на 1998;</li>
<li>getHours() &#8211; връща часа. От примера currentdate.getHours() връща 0. Числото е от 0 до 23;</li>
<li>setHours(&lt;число от 0 до 23&gt;) &#8211; променя стойността на часовете в променливата;</li>
<li>getMinutes() &#8211; връща минутите &#8211; число от 0 до 59;</li>
<li>setMinutes(&lt;число от 0 до 59&gt;) &#8211; променя стойността на минутите в променливата;</li>
<li>getSeconds() &#8211; връща секундите като число от 0 до 59;</li>
<li>setSeconds(&lt;число от 0 до 59&gt;) &#8211; променя секундите в променливата;</li>
<li>getTime() &#8211; връща броят милисекунди изтекли от 00:00:00 на 1ви януари 1970 до стойността на променливата. Забележете, че в стандартния изход не присъстваха милисекунди, но въпреки това операторът &#8222;new Date()&#8220; ги е записал в променливата;</li>
<li>setTime(&lt;милисекунди от 1.1.1970&gt;) &#8211; задава дата и час чрез милисекунди;</li>
<li>setFullYear(&lt;година&gt;, &lt;месец&gt;, &lt;ден&gt;) &#8211; настройва едновременно месец, ден и година;</li>
<li>toGMTString() &#8211; превръща времевата зона в GMT и променя датата и часа според нея;</li>
<li>toLocaleString() &#8211; превръща в датата и часа в локална зона. Използват се настройките на операционната система и изходът зависи от тях;</li>
<li><span>getTimezoneOffset</span><span>(</span><span>) &#8211; разликата в минути от текущо настроената часова зона и GMT </span></li>
</ol>
<p>Последната функция изисква специално внимание. От примера видяхте, че датата се показа като GMT0300, тоест разликата между GMT и GMT0300 е точно -3 часа или -180 минути. Така ако искаме да видим локалното време ще напишем:</p>
<pre>var currentdate = new Date();
var timezone = -currentdate.getTimezoneOffset()/60;
document.write("My current timezone is "+timezone);</pre>
<p>Въпросът за настройка на вашата часова зона без да използваме toLocaleString(), което променя формата, е по-сложен. За целта е нужно сами да напишем функция. Няма да се занимаваме подробно с това &#8211; в интернет се намират редица готови скриптове за настройка на часова зона.</p>
<p>Накрая ще дадем един прост пример &#8211; скрипт, в който вашата дата на раждане е зададена чрез три променливи day, month и year. Скрипта ще покаже дали имате рожден ден в момента или не:</p>
<pre>var day = 11;
var month = 9;
var year = 1982;
var currentdate = new Date();
if ((day==currentdate.getDate()) &amp;&amp; (month==currentdate.getMonth()+1)){
	document.write("Happy Birthday!");
}
else{
	document.write("No birthday");
}</pre>
<p>Е, очевидно е, че не използвахме year никъде в проверките, но не беше и нужно :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3550-%d0%b4%d0%b0%d1%82%d0%b8-%d0%b2-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Обект масив</title>
		<link>http://www.cphpvb.net/xhtml/3534-array-object/</link>
		<comments>http://www.cphpvb.net/xhtml/3534-array-object/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 18:14:33 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3534</guid>
		<description><![CDATA[Най-общо казано обектите се създават чрез оператор new: var &#60;име&#62; = new &#60;обект&#62;(&#60;инициализиращи данни&#62;); Всеки обект си има набор от функции. Това могат да бъдат както get и set методи, така и други функции. Нека обектът Object има функция с име function. За да я достъпим ние използваме &#8222;.&#8220;: Object.function(); Възможно е едни обекти да [...]]]></description>
			<content:encoded><![CDATA[<p>Най-общо казано обектите се създават чрез оператор new:</p>
<pre style="text-align: center;">var &lt;име&gt; = new &lt;обект&gt;(&lt;инициализиращи данни&gt;);</pre>
<p>Всеки обект си има набор от функции. Това могат да бъдат както get и set методи, така и други функции. Нека обектът Object има функция с име function. За да я достъпим ние използваме &#8222;.&#8220;:</p>
<pre style="text-align: center;">Object.function();</pre>
<p>Възможно е едни обекти да са дефинирани в други обекти. Няма обаче да се спираме подробно на тази йерархия. Същината на обектите е в предмета на по-сериозни курсове на програмиране. Тук ще се научим по-скоро как да ги използваме практически, без да задълбочаваме в тяхната същина. В следващите няколко статии ще разгледаме няколко от най-често използваните обекти и ще дадем примери как те се употребяват.</p>
<p>Засега ще започнем с един от най-често употребяваните стандартни обект &#8211; масив. Обектите от този тип са с име &#8222;Array&#8220;. Използва се за да можем да обединим множество от стойности под едно име. Например ако желаем да запишем под името на една променлива имената на няколко ученика, то бихме направили следното:<span id="more-3534"></span></p>
<pre>var students=new Array();
students[0]="Petar Petrov";
students[1]="Ivan Ivanov";
students[2]="Maria Zlateva";</pre>
<p>Достъпът до стойността на елемент от масива става по същия начин чрез индекс на елемента му:</p>
<pre>document.write(students[1]);</pre>
<p>Виждате, че не е нужно да дефинираме дължината (брой елементи) на масива. Той се увеличава автоматично при добавяне на нов елемент. Ако все пак добавим число в скобите при дефиницията на масива, то ще дефинираме неговата дължина. Това се използва рядко в практиката.</p>
<p>Първото и основно &#8222;свойство&#8220; на масивите, което ще използваме е <em>length</em>, което определя тяхната дължина (брой елементи). В следния пример обхождаме горния масив и го отпечатваме на екрана, като всеки елемент е на нов ред:</p>
<pre>for(var i=0; i&lt;students.length; i++){
     document.write(students[i]+"&lt;br /&gt;");
}</pre>
<p>Можем да направим частична аналогия между масив в JavaScript и вектор в C++. Наистина масивите в JavaScript са динамични и имат много сходства със стековете и списъците.</p>
<p>На първо място ще разгледаме функцията <em>join(&lt;разделител&gt;)</em>. Чрез нея можем да обединим всички елементи на един масив в един низ. Например ето как можем да направим променлива, която съдържа всички елементи на масива разделени със запетайка:</p>
<pre>var allstudents = students.join(", ");
document.write(allstudents);</pre>
<p>Следва типична за стековете е функцията <em>pop()</em>. Тя изтрива последния елемент на масива и го връща като резултат:</p>
<pre>var laststudent = students.pop();
document.write(laststudent);</pre>
<p>Обратната функция е <em>push(&lt;стойност&gt;)</em> &#8211; тя добавя елемент в края на масива. Удобна е, защото няма нужда да помним индекса на последния елемент:</p>
<pre>students.push("Teodora Miteva", "Nikolay Zaprianov");</pre>
<p>Ако искаме да обърнем елементите на масив в обратен ред, то използваме готовата функция <em>reverse()</em>:</p>
<pre>students.reverse();</pre>
<p>Типична за FIFO (first in first out) списъци пък е функцията <em>shift()</em>. При нея се премахва първият елемент от масива и се връща като резултат:</p>
<pre>var firststudent= students.shift()
document.write(firststudent);</pre>
<p>Обратно &#8211; ако желаем да добавим елемент в началото на масива, то използваме функция <em>unshift(&lt;стойност&gt;)</em>:</p>
<pre>students.unshift("Petko Stoianov");</pre>
<p>Ако искаме да сортираме масив по азбучен ред, то използваме функция <em>sort()</em>:</p>
<pre>students.sort()</pre>
<p>Отбелязваме, че <em>sort()</em> ще сортира по азбучен ред. Ако масивът се състои от числа, то те няма да бъдат подредени по големина. За целта е позволено да подаваме като параметър на функцията сорт име на друга функция &#8211; т.нар. &#8222;сортираща функция&#8220;, която трябва да сравнява два елемента и да върне отрицателно число (ако първия е по-голям), 0 (ако са равни) или положително число (ако вторият е по-голям):</p>
<pre>function sortnums(a,b){
	return a-b;
}
nums.sort(sortnums);</pre>
<p>Накрая ако желаем да изтрием елемент от масив, то използваме функцията <em>splice(&lt;индекс&gt;, &lt;брой елементи&gt;)</em>. Например ако желаем да изтрием един елемент от индекс 1, то ще използваме:</p>
<pre>students.splice(1,1);</pre>
<p>Функцията <em>splice </em>може да си използва и за замяна на елементи. Ако искаме да премахнем елементи 1 и 2 и на тяхно място до поставим два нови, то ще напишем:</p>
<pre>students.splice(1,2,"Todor Dimitrov","Irena Milcheva");</pre>
<p>Може би се досещате вече, че по такъв начин можем и да вмъкваме елементи в масив. Ако вторият параметър е 0, то няма да бъде заменено нищо. Следният пример добавя елемент на мястото на елемент с индекс 2:</p>
<pre>students.splice(2,0,"Petar Balabanov");</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3534-array-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Функции в JavaScript</title>
		<link>http://www.cphpvb.net/xhtml/3517-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-javascript/</link>
		<comments>http://www.cphpvb.net/xhtml/3517-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-javascript/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 13:09:22 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3517</guid>
		<description><![CDATA[Използването на функции в JavaScript е изключително опростено. За това силно спомага автоматичното разпознаване на типовете данни. Единственото за което трябва да следите за съответствие е броя на входните параметри. Обикновено (но не задължително) дефинираме функциите в заглавната част на html документа (head). Пример: функция, която отпечатва сбора на две числа подадени като параметър: &#60;!DOCTYPE [...]]]></description>
			<content:encoded><![CDATA[<p>Използването на функции в JavaScript е изключително опростено. За това силно спомага автоматичното разпознаване на типовете данни. Единственото за което трябва да следите за съответствие е броя на входните параметри. Обикновено (но не задължително) дефинираме функциите в заглавната част на html документа (head).</p>
<p>Пример: функция, която отпечатва сбора на две числа подадени като параметър:<span id="more-3517"></span></p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
	&lt;head&gt;
		&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
		&lt;title&gt;JavaScript&lt;/title&gt;
		&lt;script type="text/javascript"&gt;
<strong>			function sum(x,y){
				document.write((x+y));
			}
</strong>		&lt;/script&gt;
	&lt;/head&gt;
	&lt;body&gt;
	&lt;script type="text/javascript"&gt;
		var a = 5;
		var b = 6;
		<strong>sum(a, b);</strong>
	&lt;/script&gt;
	&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Когато се налага функцията да върне изходна стойност, то се използва оператор &#8222;return&#8220;. Ето същия пример реализиран чрез връщане на стойност от функцията към извикващия скрипт:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
	&lt;head&gt;
		&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
		&lt;title&gt;JavaScript&lt;/title&gt;
		&lt;script type="text/javascript"&gt;
			function sum(x,y){
				<strong>return((x+y));</strong>
			}
		&lt;/script&gt;
	&lt;/head&gt;
	&lt;body&gt;
	&lt;script type="text/javascript"&gt;
		var a = 5;
		var b = 6;
		document.write(sum(a, b));
	&lt;/script&gt;
	&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Всички променливи, които се декларират вътре в тялото на функция са видими и валидни само и единствено вътре в тялото на функцията. Всички променливи дефинирани извън тялото на функциите се наричат &#8222;глобални променливи&#8220; и са видими за всички функции. Накрая &#8211; не е проблем една функция да извика друга функция.</p>
<p>Съществуват редица готови (предефинирани) функции. Сега ще изброим част от тях:</p>
<ol>
<li><strong>escape</strong>(&lt;низ&gt;) &#8211; превръща ASCII символен низ в ISO-Latin-1 (удобен за отпечатване на екран текст с латински букви);</li>
<li><strong>unescape</strong>(&lt;низ&gt;) &#8211; обратно превръща ISO-Latin-1 текст в ASCII символен низ;</li>
<li><strong>eval</strong>(&lt;низ&gt;) &#8211; функция, която превръща символен низ в число. Например eval(&#8222;12/3&#8243;) дава резултат числото 4. Не връща нищо ако в низа има буква или невалиден за математическа операция символ;</li>
<li><strong>parseInt</strong>(&lt;низ&gt;) &#8211; намира първото число в низа като спира при намиране на буква. Например parseInt(&#8222;123abc456&#8243;) ще върне резултат 123. Ако не се намери число се връща резултат 0;</li>
<li><strong>parseFloat</strong>(&lt;низ&gt;) &#8211; намира първото число с плаваща запетая. Например parseFloat(&#8222;123.456abc789.10&#8243;) ще върне резултат 123.456. Ако не се намери число се връща резултат 0;</li>
<li><strong>isNaN</strong>(&lt;низ&gt;) &#8211; проверява дали символен низ НЕ е число. Например isNaN(&#8222;123&#8243;) връща false, а isNaN(&#8222;abv&#8220;) връща true;</li>
<li><strong>alert</strong>(&lt;низ&gt;) &#8211; показва диалогов прозорец с текст подадения низ и бутон &#8222;OK&#8220;;</li>
<li><strong>confirm</strong>(&lt;низ&gt;) &#8211; показва диалогов прозорец с текст подадения низ и два бутона &#8211; OK и Cancel. Ако потребителя натисне OK, то върнатия резултат е &#8222;true&#8220;, ако натисне Cancel върнатия резултат е false;</li>
<li><strong>prompt</strong>(&lt;низ&gt;) &#8211; показва диалогов прозорец с текст подадения низ, текстово поле в което потребителя може да пише и два бутона &#8211; OK и Cancel. При натискане на OK въведения в текстовото поле текст се връща като резултат от функцията. При натискане на Cancel се връща резултат null.</li>
</ol>
<p>Пример: Извиква диалогов прозорез, в който иска да си въведете името и след това ви поздравява</p>
<pre>&lt;script type="text/javascript"&gt;
   var name = prompt("Въведете името си");
   document.write("Здравей "+name);
&lt;/script&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3517-%d1%84%d1%83%d0%bd%d0%ba%d1%86%d0%b8%d0%b8-%d0%b2-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Цикли в JavaScript</title>
		<link>http://www.cphpvb.net/xhtml/3477-%d1%86%d0%b8%d0%ba%d0%bb%d0%b8-%d0%b2-javascript/</link>
		<comments>http://www.cphpvb.net/xhtml/3477-%d1%86%d0%b8%d0%ba%d0%bb%d0%b8-%d0%b2-javascript/#comments</comments>
		<pubDate>Mon, 07 Sep 2009 17:21:36 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3477</guid>
		<description><![CDATA[В JavaScript се използват цикли &#8222;while&#8220;, &#8222;do-while&#8220; и &#8222;for&#8220;. Всъщност това са стандартни цикли за почти всички езици за програмиране. Ще разгледаме всеки един от тях накратко чрез пример: 1. while: Повтаря поредица от операции докато условието в скобите е вярно. Пример: Изкарва на екрана четните числа от 2 до 50. &#60;script type="text/javascript"&#62; var counter [...]]]></description>
			<content:encoded><![CDATA[<p>В JavaScript се използват цикли &#8222;while&#8220;, &#8222;do-while&#8220; и &#8222;for&#8220;. Всъщност това са стандартни цикли за почти всички езици за програмиране. Ще разгледаме всеки един от тях накратко чрез пример:</p>
<p><strong>1. while:</strong> Повтаря поредица от операции докато условието в скобите е вярно.</p>
<p>Пример: Изкарва на екрана четните числа от 2 до 50.<span id="more-3477"></span></p>
<pre>&lt;script type="text/javascript"&gt;
	var counter = 2;

	while (counter&lt;=50){
		document.write(counter+" ");
		counter = counter + 2;
	}
&lt;/script&gt;</pre>
<p>Резултат: 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50</p>
<p><strong>2. do-while:</strong> Прави същото като цикъла while, с изключение на това, че операторите в тялото на цикъла се изпълняват поне един път, дори условието да е грешно.</p>
<p>Пример: Същия пример като за цикъл while.</p>
<pre>&lt;script type="text/javascript"&gt;
	var counter = 2;

	do{
		document.write(counter+" ");
		counter = counter + 2;
	}
	while (counter&lt;=50);
&lt;/script&gt;</pre>
<p>Направете опит &#8211; променете условието в while на нещо, което ще е грешно в самото начало, например counter&lt;0. Ще видите, че въпреки това цикълът ще се изпълни веднъж!</p>
<p><strong>3. for:</strong> Може би най-често използвания тип цикли. При него имаме начална стойност, условие и условие за нарастване.</p>
<p>Пример:</p>
<pre>&lt;script type="text/javascript"&gt;
	var counter;

	for (counter=2; counter&lt;=50; counter = counter + 2){
		document.write(counter+" ");
		counter = counter + 2;
	}

&lt;/script&gt;</pre>
<p>Имайте в предвид, че всичко, което можете да направите с for и do-while можете да реализирате и с while. Поради тази причина можем да кажем, че while е универсалният вид цикъл.</p>
<p>П.П. Можете да прекратите цикъл по всяко време като използвате оператор break; или да го накарате да &#8222;прескочи стъпка&#8220; чрез оператор continue;. Няма да се спираме подробно на тях.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3477-%d1%86%d0%b8%d0%ba%d0%bb%d0%b8-%d0%b2-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Многовариантен избор в JavaScript</title>
		<link>http://www.cphpvb.net/xhtml/3469-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d0%bd%d1%82%d0%b5%d0%bd-%d0%b8%d0%b7%d0%b1%d0%be%d1%80-%d0%b2-javascript/</link>
		<comments>http://www.cphpvb.net/xhtml/3469-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d0%bd%d1%82%d0%b5%d0%bd-%d0%b8%d0%b7%d0%b1%d0%be%d1%80-%d0%b2-javascript/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 19:39:56 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3469</guid>
		<description><![CDATA[В статията за оператор &#8222;if-else&#8220;, че го използваме, за да &#8222;разделим логически част от кода на програмата на две части&#8220;. Какво можем да направим, за да го разделим на повече? Например нека имаме една променлива day, която приема стойност от 1 до 7. Искаме да напишем програма, която отпечатва името на ден от седмицата спрямо [...]]]></description>
			<content:encoded><![CDATA[<p>В статията за оператор &#8222;if-else&#8220;, че го използваме, за да &#8222;разделим логически част от кода на програмата на две части&#8220;. Какво можем да направим, за да го разделим на повече? Например нека имаме една променлива day, която приема стойност от 1 до 7. Искаме да напишем програма, която отпечатва името на ден от седмицата спрямо числото. С досегашните знания бихме решили задачата по следния начин:<span id="more-3469"></span></p>
<pre>&lt;script type="text/javascript"&gt;
var day = 3;

if (day == 1){
   document.write("Понеделник");
}
else{
  if (day == 2){
    document.write("Вторник");
  }
  else{
    if (day == 3){
      document.write("Сряда");
    }
    else{
      if (day == 3){
        document.write("Четвъртък");
      }
      else{
        if (day == 3){
          document.write("Петък");
        }
        else{
          if (day == 3){
            document.write("Събота");
          }
          else{
            if (day == 3){
              document.write("Неделя");
            }
            else{
              document.write("Невалиден ден");
            }
          }
        }
      }
    }
  }
}&lt;/script&gt;</pre>
<p>Променяйте стойностите на a и ще видите, че резултата е точно това, което очаквахме. Виждаме, че с този метод ние на практика &#8222;влагаме&#8220; един оператор if-else в тялото на друг.</p>
<p>Както в повечето езици за програмиране, така и в JavaScript ни е дадена възможност за осъществяване на горната функционалност чрез един единствен оператор. Нарича се оператор за многовариантен избор &#8211; switch. Синтаксисът е следния:</p>
<pre>switch(&lt;променлива/израз&gt;)
{
case &lt;стойност 1&gt;:
    &lt;операции&gt;;
    break;
case &lt;стойност 2&gt;:
    &lt;операции&gt;;
    break;
...
default:
    &lt;операции&gt;
}</pre>
<p>Ето как ще изглежда по-горния пример реализиран чрез този оператор:</p>
<pre>&lt;script type="text/javascript"&gt;
var day = 3;

switch(day){
	case 1: document.write("Понеделник");
		break;
	case 2: document.write("Вторник");
		break;
	case 3: document.write("Сряда");
		break;
	case 4: document.write("Четвъртък");
		break;
	case 5: document.write("Петък");
		break;
	case 6: document.write("Събота");
		break;
	case 7: document.write("Неделя");
		break;
	default: document.write("Невалиден ден");
	}
&lt;/script&gt;</pre>
<p>В условието в скобите след &#8222;switch&#8220; може освен променлива да присъства и цял израз.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3469-%d0%bc%d0%bd%d0%be%d0%b3%d0%be%d0%b2%d0%b0%d1%80%d0%b8%d0%b0%d0%bd%d1%82%d0%b5%d0%bd-%d0%b8%d0%b7%d0%b1%d0%be%d1%80-%d0%b2-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Оператор if-else и условия за сравнение</title>
		<link>http://www.cphpvb.net/xhtml/3454-if-else/</link>
		<comments>http://www.cphpvb.net/xhtml/3454-if-else/#comments</comments>
		<pubDate>Sat, 05 Sep 2009 03:03:34 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3454</guid>
		<description><![CDATA[Може би най-често използвания оператор е if-else. Чрез него се прави т.нар. &#8222;разделяне&#8220; на програмен код на две части. Синтаксисът му е следния: if (&#60;условие&#62;){ &#60;javascript код 1&#62; } else{ &#60;javascript код 2&#62; } Условието винаги връща резултат true (вярно) или false (невярно). Логиката е, че ако условието е вярно, то ще се изпълни код [...]]]></description>
			<content:encoded><![CDATA[<p>Може би най-често използвания оператор е if-else. Чрез него се прави т.нар. &#8222;разделяне&#8220; на програмен код на две части. Синтаксисът му е следния:</p>
<pre>if (&lt;условие&gt;){
   &lt;javascript код 1&gt;
}
else{
   &lt;javascript код 2&gt;
}</pre>
<p>Условието винаги връща резултат true (вярно) или false (невярно). Логиката е, че ако условието е вярно, то ще се изпълни код 1 в първите скоби, а ако не е вярно, то ще се изпълни код 2 от вторите скоби след else.</p>
<p>Ето един елементарен пример:<span id="more-3454"></span></p>
<pre>&lt;script type="text/javascript"&gt;
	var x = 5;
	var y = 6;
	if (x&gt;y){
		document.write("x&gt;y");
	}
	else{
		document.write("x&lt;=y");
	}
&lt;/script&gt;</pre>
<p>Виждате, че в условието използвахме оператор за сравнение (проверихме дали x е по-голямо от y). Естествено ние сме свикнали да използваме такива от математиката и ги използваме ежедневно &#8211; по-голямо, по-малко, равно, по-голямо или равно, и т.н.</p>
<p>Нека имаме две променливи x и y с дадени стойности. В JavaScript разполагаме със следните оператори за сравнение:</p>
<ol>
<li>x == y: сравнява дали стойностите на променливите са равни. Ако те са &#8211; връща true, в противен случай &#8211; false;</li>
<li>x === y: отново сравнява стойностите на променливите за равенство, но тук освен това ги сравнява по тип на данните. Това означава, че ако x е числото 5, а y е символен низ &#8222;5&#8243;, то резултатът ще бъде false. При първия оператор за сравнение за равенство това не е така;</li>
<li>x != y: обратното на сравнение за равенство &#8211; връща true ако стойностите НЕ са равни и false ако са равни;</li>
<li>x &gt; y: сравнение &#8222;по-голямо&#8220;;</li>
<li>x &lt; y: сравнение &#8222;по-малко&#8220;;</li>
<li>x &gt;= y: сравнение &#8222;по-голямо или равно&#8220;;</li>
<li>x &lt;= y: сравнение &#8222;по-малко или равно&#8220;.</li>
</ol>
<p>За всеки начинаещ се явява проблем да свикне с често използвания оператор &#8222;==&#8220;. Това е психологическо наследство от математиката, където за равенство се използва само веднъж символа &#8222;=&#8220;. В програмирането и JavaScript в частност &#8222;x = 5&#8243; и &#8222;x == 5&#8243; са две напълно различни неща!</p>
<p>Възможно е условието да бъде комбинирано. Затова спомагат т.нар. логически оператори. Те са общо три на брой:</p>
<ol>
<li>&amp;&amp; : логически оператор &#8222;и&#8220;;</li>
<li>|| : логически оператор &#8222;или&#8220;;</li>
<li>! : логически оператор &#8222;отрицание&#8220;.</li>
</ol>
<p>Например ако имаме две променливи x и y и искаме да проверим дали двете заедно са по-големи от нула, то бихме могли да напишем условието като: if ( (x&gt;0) &amp;&amp; (y&gt;0) ){&#8230;}. Ако пък желаем поне едината (но не задължително и двете) променлива да бъде по-голяма от нула, то бихме написали if ( (x&gt;0) || (y&gt;0) ){&#8230;}. Отрицанието пък обръща резултата. Например !(x&gt;0) е еквивалентно на (x&lt;=0). За повече информация за логическите оператори прочетете следната статия: <a href="http://www.cphpvb.net/metodos/2726-%D1%81%D1%8A%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F/" target="_blank">съждения</a>. Логическия оператор &amp;&amp; отговаря на &#8222;конюнкция&#8220;, || отговаря на дизюнкция, а ! е обозначено по същия начин като &#8222;отрицание&#8220;. Другите логически оператори от предложената статия не са налични в JavaScript.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3454-if-else/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Променливи</title>
		<link>http://www.cphpvb.net/xhtml/3388-%d0%bf%d1%80%d0%be%d0%bc%d0%b5%d0%bd%d0%bb%d0%b8%d0%b2%d0%b8/</link>
		<comments>http://www.cphpvb.net/xhtml/3388-%d0%bf%d1%80%d0%be%d0%bc%d0%b5%d0%bd%d0%bb%d0%b8%d0%b2%d0%b8/#comments</comments>
		<pubDate>Thu, 03 Sep 2009 08:43:23 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3388</guid>
		<description><![CDATA[Променливите в JavaScript се дефинират чрез ключова дума var последвана от името на променливата. Когато искаме да предадем стойност, то използваме знак за равенство. Според стойността, която предаваме се определя автоматично и типа на променливата. Например ако подадем цяло число, то автоматично променливата става от целочислен тип. Ако пък подадем символен низ, то променливата става [...]]]></description>
			<content:encoded><![CDATA[<p>Променливите в JavaScript се дефинират чрез ключова дума var последвана от името на променливата. Когато искаме да предадем стойност, то използваме знак за равенство. Според стойността, която предаваме се определя автоматично и типа на променливата. Например ако подадем цяло число, то автоматично променливата става от целочислен тип. Ако пък подадем символен низ, то променливата става символен низ.<span id="more-3388"></span></p>
<p>Ще започнем с целочислен тип променливи. Ето един пример:</p>
<pre>&lt;script type="text/javascript"&gt;
   var x = 5;
   var y;
   y = 6;
   var z = x * y;
   document.write("x+y="+(x+y)+"&lt;br /&gt;z="+z);
&lt;/script&gt;</pre>
<p>Резултатът, който ще излезе на екрана е:</p>
<p>x+y=11<br />
z=30</p>
<p>В този пример забелязваме няколко важни неща за document.write() функцията. На първо време &#8211; можем да изкарваме по няколко типа данни наведнъж. Обърнете внимание на следното:</p>
<pre>document.write("x+y="+(x+y));</pre>
<p>НЕ Е едно и също с</p>
<pre>document.write("x+y="+x+y);</pre>
<p>Първото ще изкара резултат x+y=11, а второто x+y=56 (5 е стойността на x, а 6 на y). Тоест ако искаме в document.write да се сумират променливи, то ги ограждаме в скоби. Малко по-долу ще обясним защо се получава така.</p>
<p>В този пример използвахме и умножение (var z = x * y). Както във всички езици за програмиране и в JavaScript са налични петте основни операции за целочислен тип:</p>
<ol>
<li>Събиране: var x = 3+2 // x=5</li>
<li>Изваждане: var x = 3-2 // x=1</li>
<li>Умножение: var x = 3*2  // x=6<strong></strong></li>
<li>Деление: var x = 7/2 // <strong>x=3.5 !!!</strong></li>
<li>Остатък от деление: var x = 7%2 // x=1</li>
</ol>
<p>Тук виждаме и първата съществена разлика от нормалните езици за програмиране. Делението на две целочислени числа, които имат остатък, автоматично дава резултат реално число!</p>
<p>При низовите променливи няма изненади. Дефинират се стандартно:</p>
<pre>&lt;script type="text/javascript"&gt;
   var niz1 = "Hello ";
   var niz2 = "World";
   var niz3 = niz1 + niz2;
   document.write(niz3);
&lt;/script&gt;</pre>
<p>Виждате, че е дефинирана и операция &#8222;сбор на низове&#8220;. Това означава, че просто слепваме двата низа един до друг. Всички символни низове се ограждат в двойни кавички.</p>
<p>Когато имаме сбор на низ с число, то резултатът е низ. Например &#8222;string&#8220;+5 ще даде резултат &#8222;string5&#8243;. Тук вече можем да си обясним поведението на document.write от по-горе. Написано като &#8222;x+y=&#8220;+x+y ставаше следното &#8211; първо към низ &#8222;x+y&#8220; се добавя стойността на променливата x и се получава низ &#8222;x+y=5&#8243;. След това към низ &#8222;x+y=5&#8243; се добавя стойността на променливата y и се получава низ &#8222;x+y=56&#8243;. Когато поставим скоби се получава друго нещо. Написано като &#8222;x+y=&#8220;+(x+y) се извършват първо операциите в скобите. Тъй като в скобите имаме само числа, то ще се изчисли техния сбор, което е резултат число &#8211; 5+6=11. След това към низ &#8222;x+y=&#8220; се долепва стойността, която е изчислена в скобите и се получава резултат низ &#8222;x+y=11&#8243;. Затова бъдете изключително внимателни, когато миксирате различни променливи!</p>
<p><strong>Задача</strong>: Напишете скрипт, който пресмята и извежда на екрана дискриминантата на квадратно уравнение с коефициенти a=-2, b=-1 и c=3.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3388-%d0%bf%d1%80%d0%be%d0%bc%d0%b5%d0%bd%d0%bb%d0%b8%d0%b2%d0%b8/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Въведение в JavaScript</title>
		<link>http://www.cphpvb.net/xhtml/3380-%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-javascript/</link>
		<comments>http://www.cphpvb.net/xhtml/3380-%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-javascript/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 20:38:35 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3380</guid>
		<description><![CDATA[JavaScript e скриптов език за програмиране, който се използва активно в HTML страници. Поддържа се от всички популярни браузъри. Първото и основно нещо, което трябва да знаете е, че кодът се изпълнява при браузъра на клиента, който отваря страницата. Това е фундаментална разлика с повечето езици за web програмиране като PHP, ASP.Net, Java и др. [...]]]></description>
			<content:encoded><![CDATA[<p>JavaScript e скриптов език за програмиране, който се използва активно в HTML страници. Поддържа се от всички популярни браузъри. Първото и основно нещо, което трябва да знаете е, че кодът се изпълнява при браузъра на клиента, който отваря страницата. Това е фундаментална разлика с повечето езици за web програмиране като PHP, ASP.Net, Java и др. Това има както своите предимства (не употребява процесорно време на сървъра), така и недостатъци (от гледна точка на сигурността). Не бъркайте Java с JavaScript &#8211; това са две фундаментално различни неща и нямат нищо общо помежду си!<span id="more-3380"></span></p>
<p>Синтаксисът за програмиране на JavaScript е доста опростен. Скриптовете се изпълняват без нужда да бъдат прекомпилирани. Обикновено скриптовете се пишат директно вътре в HTML кода. Предимствата, които дизайнерите получават с JavaScript са много:</p>
<ul>
<li>Програмен език за осъществяване на логически операции;</li>
<li>Въвеждане на динамични обекти;</li>
<li>Въвеждане на понятието &#8222;събитие&#8220; и обработка на информация спрямо него (например натиснат бутон на мишката, въведен текст от клавиатурата и т.н.);</li>
<li>Обработка на информация въведена от потребител.</li>
</ul>
<p>Нека преминем към първият пример:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
	&lt;head&gt;
		&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
		&lt;title&gt;JavaScript&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
<strong>		&lt;script type="text/javascript"&gt;
			document.write("&lt;h1&gt;Първи скрипт!&lt;/h1&gt;");
		&lt;/script&gt;
</strong>	&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Виждате, че въвеждаме нов таг &lt;script&gt;. Като негов атрибут подаваме параметър type (тип) със стойност &#8222;text/javascript&#8220;. Така записан този таг указва на браузъра, че кодът записан вътре в тага трябва да бъде интерпретиран не като HTML, а като JavaScript.</p>
<p>Вътре в тялото на тага сме записали само един ред. Функцията (командата) &#8222;document.write()&#8220; се използва за извеждане на текст на екрана на браузъра. В случая като параметър на тази функция сме подали HTML код, който искаме да бъде визуализиран.</p>
<p>JavaScript може да бъде добавян както в тялото (body) на HTML документ, така и в заглавната част (head). По принцип скриптовете, които дефинираме в &lt;head&gt; не са предназначени за визуализиране на информация. Обикновено ги използваме за предефиниране на функции, които ще използваме в последствие в &lt;body&gt;.</p>
<p>Възможно е да се добави скрипт от външен файл. За това се използва атрибут &#8222;src&#8220; на таг &lt;script&gt;. Ето как можем да реализираме горния пример:</p>
<p><em>Файл script.js:</em></p>
<pre>document.write("&lt;h1&gt;Първи скрипт!&lt;/h1&gt;");</pre>
<p><em>HTML файл:</em></p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
	&lt;head&gt;
		&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
		&lt;title&gt;JavaScript&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;script type="text/javascript" <strong>src="script.js</strong>"&gt;&lt;/script&gt;
	&lt;/body&gt;
&lt;/html&gt;</pre>
<p>По този начин можем да използваме един и същи скрипт в много документи. Важно е да се отбележи, че HTML файла и .js файла трябва да бъдат в една и съща кодировка! В случая от примера това е UTF-8. Ако кодировките са различни, то резултатът най-вероятно няма да е желан. В следващи статии ще разгледаме подробно функционалностите и възможностите на JavaScript.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3380-%d0%b2%d1%8a%d0%b2%d0%b5%d0%b4%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Преформатиране, код и цитати</title>
		<link>http://www.cphpvb.net/xhtml/3359-pre-code-blockquote/</link>
		<comments>http://www.cphpvb.net/xhtml/3359-pre-code-blockquote/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 17:06:31 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3359</guid>
		<description><![CDATA[Сега ще демонстрираме три допълнителни тага, които можем да използваме в XHTML 1.1 с цел форматиране на текст. Повечето хора ги смятат за наследство от миналото, което вече не се използва. Въпреки това смятам, че заслужават внимание. 1. Преформатиран текст &#8211; осъществява се чрез таг&#60;pre&#62;. Използва се за изкарване на екрана на обикновен текст. Така [...]]]></description>
			<content:encoded><![CDATA[<p>Сега ще демонстрираме три допълнителни тага, които можем да използваме в XHTML 1.1 с цел форматиране на текст. Повечето хора ги смятат за наследство от миналото, което вече не се използва. Въпреки това смятам, че заслужават внимание.<span id="more-3359"></span></p>
<p><strong>1. Преформатиран текст</strong> &#8211; осъществява се чрез таг&lt;pre&gt;. Използва се за изкарване на екрана на обикновен текст. Така например няма нужда да слагаме &lt;br /&gt; за нов ред, табулациите се визуализират и поредните интервали нямат нужда от &amp;nbsp;. Обикновено се използва когато искаме да отпечатаме текстов файл на екрана. Въпреки това трябва да се внимава със символите &lt; и &gt; &#8211; в таг &lt;pre&gt; е позволено да отваряме други тагове. Ето пример:</p>
<pre>&lt;pre&gt;Това е пример за текст

който ще изведе на екрана всичко по начина,
по който го напишем като свободен текст!
Виждате, че няма нужда от &amp;lt;br /&amp;gt; за нов ред.

Трябва да знаете, че таговете се взимат под внимание.
Ето например &lt;b&gt;удебелен текст&lt;/b&gt;
&lt;/pre&gt;</pre>
<p>Резултат:</p>
<pre>Това е пример за текст

който ще изведе на екрана всичко по начина,
по който го напишем като свободен текст!
Виждате, че няма нужда от &lt;br /&gt; за нов ред.

Трябва да знаете, че таговете се взимат под внимание.
Ето например <strong>удебелен текст</strong></pre>
<p>Виждате, че аз използвам именно таг &lt;pre&gt; за демонстриране на код. Ако не предефинирате стила &#8211; стандартно браузърите визуализират текста с monospace шрифт.</p>
<p><strong>2. Таг &lt;code&gt;</strong> &#8211; на практика &#8222;орязана версия&#8220; на таг &lt;pre&gt;. По дефиниция това би трябвало да бъде таг, който се използва за демонстриране на фрагменти от програмен код. Той има същата визуализация като таг &lt;pre&gt; с тази разлика, че всички интервали се &#8222;отрязват&#8220;, новият ред не се визуализира и табулациите също не се визуализират. Досещате се, че това е по същия начин както това става в нормалния XHTML код. Така всъщност таг &lt;code&gt; е еквивалентен на обикновен параграф, чийто стил е променен с шрифт monospace. Поради тази причина практически никой не използва таг &lt;code&gt;. Пример:</p>
<pre>&lt;div&gt;&lt;code&gt;Това е пример за текст

форматиран с таг &amp;lt;code&amp;gt;..
Няма никаква разлика от писането на обикновен HTML код!
Ето например &lt;b&gt;удебелен текст&lt;/b&gt;
&lt;/code&gt;&lt;/div&gt;</pre>
<p>Резултат:</p>
<p><code>Това е пример за текст форматиран с таг &lt;code&gt;.. Няма никаква разлика от писането на обикновен HTML код! Ето например <strong>удебелен текст</strong></code></p>
<p>Виждате също, че е задължително да вмъкваме &lt;code&gt; вътре в друг форматиращ таг &#8211; параграф или поле. Затова &lt;code&gt; е може би удобен за вмъкване на наистина малки фрагменти код. Лично аз бих го използвал за ключови думи и термини.</p>
<p><strong>3. Цитати:</strong> Таг &lt;blockquote&gt; е измислен за случаи когато желаем да вмъкваме цитати. Отново бих казал, че въобще не е популярен при писането на стандартен HTML код. Често обаче получава употреба при редица WYSIWYG редактори. При blockquote специфичното е, че текстът се форматира малко по-навътре. На практика той не е нищо по-различно от таг &lt;code&gt;, но вмъкнат по-навътре спрямо текста:</p>
<pre>&lt;p&gt;Пример за цитат:
&lt;/p&gt;

&lt;blockquote&gt;&lt;div&gt;Това е някакъв 

цитат. Таговете работят. Пример за &lt;b&gt;удебелен текст&lt;/b&gt;
&lt;/div&gt;&lt;/blockquote&gt;</pre>
<p>Резултат:</p>
<p>Пример за цитат:</p>
<blockquote>
<div>Това е някакъв цитат. Таговете работят. Пример за <strong>удебелен текст</strong></div>
</blockquote>
<p>Виждате и друга особеност &#8211; трябва да дефинирате параграф или поле вътре в таг &lt;blockquote&gt; (специфична и досадна особеност на XHTML). Сивата вертикална черта в блога е постигната чрез допълнително преформатиране чрез CSS. Много софтуерни продукти като блогове и форуми предефинират blockquote така, че да е еквивалентен на таг &lt;pre&gt;, но вмъкнат навътре с линия подобна на тази от примера горе.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3359-pre-code-blockquote/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Imagemap</title>
		<link>http://www.cphpvb.net/xhtml/3309-imagemap/</link>
		<comments>http://www.cphpvb.net/xhtml/3309-imagemap/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 08:42:07 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3309</guid>
		<description><![CDATA[Идеята за imagemap идва от прехода между дизайн към конкретна реализация на уеб сайт. В миналото, когато не са били налични средства за динамични обекти като Flash или Java, е било проблем създаването на &#8222;красиви&#8220; сайтове. Често дизайнерите са давали проекти на програмистите, които не е било възможно да бъдат осъществени. Това е честа ситуация, [...]]]></description>
			<content:encoded><![CDATA[<p>Идеята за imagemap идва от прехода между дизайн към конкретна реализация на уеб сайт. В миналото, когато не са били налични средства за динамични обекти като Flash или Java, е било проблем създаването на &#8222;красиви&#8220; сайтове. Често дизайнерите са давали проекти на програмистите, които не е било възможно да бъдат осъществени. Това е честа ситуация, при която художник рисува скица на важен елемент на сайта, който трябва да стане динамичен. Оказва се, че не винаги техниката на &#8222;рязане&#8220; на картинката на части и поставянето на отделните парчета в таблица е достатъчно. Например може да се наложи да направим бутони със сложни форми &#8211; нещо неосъществимо от досегашните статии, понеже картинките винаги се вмъкват като правоъгълници.<span id="more-3309"></span></p>
<p>Най-общо казано imagemap е една картинка, върху която има множество от области, които сме направили връзки. С други думи ако посочите с мишката върху точно определен обект от картинката, то ще забележите, че този обект всъщност се явява образно казано бутон за натискане.</p>
<p>Нека разгледаме следната картинка:</p>
<p><img class="aligncenter size-full wp-image-3311" title="България" src="http://www.cphpvb.net/wp-content/uploads/2009/09/bulgaria.PNG" alt="България" width="438" height="266" /></p>
<p>Да речем, че желаем да направим така, че посочвайки вътре в очертанията на София да направим връзка към страница в wikipedia. Отначало трябва да се научим да определяме координати вътре в картинката. Ще го демонстрираме как това става елементарно с MSPaint. Посочете в долният ляв ъгъл на контура на София с мишката и погледнете в долния десен ъгъл:</p>
<p><a href="http://www.cphpvb.net/wp-content/uploads/2009/09/coordinates.PNG"><img class="aligncenter size-medium wp-image-3312" title="Взимане на координати" src="http://www.cphpvb.net/wp-content/uploads/2009/09/coordinates-300x237.PNG" alt="Взимане на координати" width="300" height="237" /></a></p>
<p>Всичко което трябва да направите е да запишете последователно двойките числа по контура. Между всеки две точки свързването ще бъде по права линия. Ето как би изглеждала една стравнително подробна разбивка по контура на София:</p>
<p>118,162, 113,162, 107,152, 105,160, 86,145, 86,137, 76,128, 96,119, 119,121, 120,130, 112,137</p>
<p>Контурът е винаги затворен. Това се получава като от последната точка винаги се свързва с първата. Ето как ще създадем въпросната картинка с контур около София (няма проблем да използвате както img, така и object таг за вмъкване на картинка):</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
	&lt;head&gt;
		&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
		&lt;title&gt;ImageMap example&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
&lt;div&gt;
&lt;map id="areas" name="areas"&gt;
&lt;area title="Sofia"
 shape="poly"
 coords="118,162,113,162,107,152,105,160,86,145,86,137,76,128,96,119,119,121,120,130,112,137"
 href="http://en.wikipedia.org/wiki/Sofia" alt="Sofia" target="_blank" /&gt;
&lt;area
 title="Default"
 shape="default"
 alt="Default" /&gt;
&lt;/map&gt;
&lt;object usemap="#areas"
	data="http://www.cphpvb.net/wp-content/uploads/2009/09/bulgaria.PNG"
	alt="Bulgaria"
	type="image/png"</pre>
<pre>/&gt;
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Резултат:</p>
<map id="areas" name="areas">
<area title="Sofia" shape="poly" coords="118, 162, 113, 162, 107, 152, 105, 160, 86, 145, 86, 137, 76, 128, 96, 119, 119, 121, 120, 130, 112, 137" href="http://en.wikipedia.org/wiki/Sofia" alt="Sofia" target="_blank" />
<area title="Default" shape="default" alt="Default" /></map>
<p><img usemap="#areas" src="http://www.cphpvb.net/wp-content/uploads/2009/09/bulgaria.PNG" alt="Bulgaria" /></p>
<p>Забележка: В стандарта XHTML 1.1 атрибут &#8222;name&#8220; на таг &lt;map&gt; НЕ съществува. Ние обаче сме принудени да го сложим, защото Mozilla Firefox не работи без него. Аналогичен проблем е и със стойността на атрибут &#8222;usemap&#8220; в &lt;object&gt; &#8211; правилният запис би трябвало да без #, но за съжаление нито един браузър все още не се е съобразил с изискването. Освен това обръщаме специално внимание, че всички координати като стойност на &#8222;coord&#8220; трябва да са зададени на един ред &#8211; в противен случай Internet Explorer &#8222;няма да се справи със задачата&#8220;. Надяваме се тези проблеми да бъдат изчистени в бъдеще.</p>
<p>Възможно е да използваме и готови обекти. Вместо poly можем да използваме rect (приема за координати две точки &#8211; горен ляв и долен десен ъгъл на правоъгълник) или circ (приема три числа &#8211; координати на центъра и радиус на окръжност в пискели). Няма да се спираме подробно на тях.</p>
<p>Естествено няма никакъв проблем да имаме повече от една област. Просто вътре в таг &#8222;map&#8220; трябва да добавите нов таг &#8222;area&#8220;. По-специален от всички е таг &#8222;area&#8220; с shape &#8222;default&#8220;. Буквално преведено означава &#8222;област по подразбиране&#8220;, но дефакто е цялата картинка като правоъгълник.</p>
<p>За финал ще споменем, че въпреки, че imagemap е стар и все по-рядко използван похват, той все пак е изключително удобен поради липсата от нужда от каквито и да е допълнителни разширения за браузъра. Освен това кодът е изключително кратък и затова желаната функционалност се зарежда изключително бързо без да се хаби трафик или процесорно време. Затова когато функционалността е достатъчна бихме ви насърчили да използвате именно imagemap пред другите по-тежки алтернативи.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3309-imagemap/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Цветове</title>
		<link>http://www.cphpvb.net/xhtml/3282-%d1%86%d0%b2%d0%b5%d1%82%d0%be%d0%b2%d0%b5/</link>
		<comments>http://www.cphpvb.net/xhtml/3282-%d1%86%d0%b2%d0%b5%d1%82%d0%be%d0%b2%d0%b5/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 16:53:51 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3282</guid>
		<description><![CDATA[Вече забелязахте, че ни се налага да работим с цветове. Досега използвахме т.нар. именовани цветове. Така ако искахме синьо пишехме &#8222;blue&#8220;, ако искахме червено &#8211; &#8222;red&#8220; и т.н., т.е. извикваме конкретен цвят чрез неговото име. Именованите цветове са и т.нар. &#8222;безопасни цветове&#8220;, т.е. такива които са дефинирани строго във всеки един браузър и винаги се [...]]]></description>
			<content:encoded><![CDATA[<p>Вече забелязахте, че ни се налага да работим с цветове. Досега използвахме т.нар. именовани цветове. Така ако искахме синьо пишехме &#8222;blue&#8220;, ако искахме червено &#8211; &#8222;red&#8220; и т.н., т.е. извикваме конкретен цвят чрез неговото име. Именованите цветове са и т.нар. &#8222;безопасни цветове&#8220;, т.е. такива които са дефинирани строго във всеки един браузър и винаги се визуализират по един и същи начин, без значение на спецификите на системата. В стандарта HTML са залегнали само 16 такива цвята, но във всички браузъри от 2005г. насам е залегнат общопризнат стандарт на общо 140 &#8211; ще ги покажем по-долу.<span id="more-3282"></span></p>
<p>Втора възможност за дефиниране на цветове е чрез стандарта RGB (червено, зелено и синьо). Чрез него цвета се указва с числа от 0 до 255. Например синьо е наредената тройка (0,0,255) &#8211; отсъствие на червено и зелено и пълно синьо. Ако пък искаме да постигнем цвят &#8222;tomato&#8220; (домат) то използваме (255,99,71) &#8211; да, доматите не са напълно червени. По този начин можете да дефинирате около 16 милиона цвята (24 битов цвят). Всъщност терминът &#8222;безопасни цветове&#8220;, който споменахме по-горе, е наследство от миналото, когато мониторите можеха да изобразяват до 256 цвята. Днес можете спокойно да използвате пълната RGB гама без да се притеснявате дали ще се визуализира еднакво навсякъде.</p>
<p>Третата възможност е т.нар. HEX код. Той не е нищо друго освен друг начин на записване на RGB. Тройките шестнадесетични числа от 00 до FF са именно тройки числа от 0 до 255 превърнати в десетична бройна система. Ще ги демонстрираме по-долу.</p>
<p><strong>1. Цветове по XHTML стандарт:</strong></p>
<table style="margin-left:auto;margin-right:auto" border="1" cellspacing="0" cellpadding="3">
<caption>Стандартни 16 цвята</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>aqua</td>
<td>00FFFF</td>
<td style="text-align: center;">(0,255,255)</td>
<td style="background-color:aqua"></td>
</tr>
<tr>
<td>black</td>
<td>000000</td>
<td style="text-align: center;">(0,0,0)</td>
<td style="background-color:black"></td>
</tr>
<tr>
<td>blue</td>
<td>0000FF</td>
<td style="text-align: center;">(0,0,255)</td>
<td style="background-color:blue"></td>
</tr>
<tr>
<td>fuchsia</td>
<td>FF00FF</td>
<td style="text-align: center;">(255,0,255)</td>
<td style="background-color:fuchsia"></td>
</tr>
<tr>
<td>gray</td>
<td>808080</td>
<td style="text-align: center;">(128,128,128)</td>
<td style="background-color:gray"></td>
</tr>
<tr>
<td>green</td>
<td>008000</td>
<td style="text-align: center;">(0,128,0)</td>
<td style="background-color:green"></td>
</tr>
<tr>
<td>lime</td>
<td>00FF00</td>
<td style="text-align: center;">(0,255,0)</td>
<td style="background-color:lime"></td>
</tr>
<tr>
<td>maroon</td>
<td>800000</td>
<td style="text-align: center;">(128,0,0)</td>
<td style="background-color:maroon"></td>
</tr>
<tr>
<td>navy</td>
<td>000080</td>
<td style="text-align: center;">(0,0,128)</td>
<td style="background-color:navy"></td>
</tr>
<tr>
<td>olive</td>
<td>808000</td>
<td style="text-align: center;">(128,128,0)</td>
<td style="background-color:olive"></td>
</tr>
<tr>
<td>purple</td>
<td>800080</td>
<td style="text-align: center;">(128,0,128)</td>
<td style="background-color:purple"></td>
</tr>
<tr>
<td>red</td>
<td>FF0000</td>
<td style="text-align: center;">(255,0,0)</td>
<td style="background-color:red"></td>
</tr>
<tr>
<td>silver</td>
<td>C0C0C0</td>
<td style="text-align: center;">(192,192,192)</td>
<td style="background-color:silver"></td>
</tr>
<tr>
<td>teal</td>
<td>008080</td>
<td style="text-align: center;">(0,128,128)</td>
<td style="background-color:teal"></td>
</tr>
<tr>
<td>white</td>
<td>FFFFFF</td>
<td style="text-align: center;">(255,255,255)</td>
<td style="background-color:white"></td>
</tr>
<tr>
<td>yellow</td>
<td>FFFF00</td>
<td style="text-align: center;">(255,255,0)</td>
<td style="background-color:yellow"></td>
</tr>
</tbody>
</table>
<p><strong>2. Допълнителни цветове:</strong> Повечето НЕ са дефинирани по стандарта HTML, но са широко разпространени сред браузърите и най-вероятно няма съвременен браузър, който да не ги поддържа.</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Червена гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>IndianRed</td>
<td>CD5C5C</td>
<td>(205,92,92)</td>
<td style="background-color:IndianRed"></td>
</tr>
<tr>
<td>LightCoral</td>
<td>F08080</td>
<td>240,128,128</td>
<td style="background-color:LightCoral"></td>
</tr>
<tr>
<td>Salmon</td>
<td>FA8072</td>
<td>(250,128,114)</td>
<td style="background-color:Salmon"></td>
</tr>
<tr>
<td>DarkSalmon</td>
<td>E9967A</td>
<td>(233,150,122)</td>
<td style="background-color:DarkSalmon"></td>
</tr>
<tr>
<td>LightSalmon</td>
<td>FFA07A</td>
<td>(255,160,122)</td>
<td style="background-color:LightSalmon"></td>
</tr>
<tr>
<td>Crimson</td>
<td>DC143C</td>
<td>(220,20,60)</td>
<td style="background-color:Crimson"></td>
</tr>
<tr>
<td>Red</td>
<td>FF0000</td>
<td>(255,0,0)</td>
<td style="background-color:Red"></td>
</tr>
<tr>
<td>FireBrick</td>
<td>B22222</td>
<td>(178,34,34)</td>
<td style="background-color:FireBrick"></td>
</tr>
<tr>
<td>DarkRed</td>
<td>8B0000</td>
<td>(139,0,0)</td>
<td style="background-color:DarkRed"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Розова гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>Pink</td>
<td>FFC0CB</td>
<td>(255,192,203)</td>
<td style="background-color:Pink"></td>
</tr>
<tr>
<td>LightPink</td>
<td>FFB6C1</td>
<td>(255,182,193)</td>
<td style="background-color:LightPink"></td>
</tr>
<tr>
<td>HotPink</td>
<td>FF69B4</td>
<td>(255,105,180)</td>
<td style="background-color:HotPink"></td>
</tr>
<tr>
<td>DeepPink</td>
<td>FF1493</td>
<td>(255,20,147)</td>
<td style="background-color:DeepPink"></td>
</tr>
<tr>
<td>MediumVioletRed</td>
<td>C71585</td>
<td>(199,21,133)</td>
<td style="background-color:MediumVioletRed"></td>
</tr>
<tr>
<td>PaleVioletRed</td>
<td>DB7093</td>
<td>(219,112,147)</td>
<td style="background-color:PaleVioletRed"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Оранжева гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>LightSalmon</td>
<td>FFA07A</td>
<td>(255,160,122)</td>
<td style="background-color:LightSalmon"></td>
</tr>
<tr>
<td>Coral</td>
<td>FF7F50</td>
<td>(255,127,80)</td>
<td style="background-color:Coral"></td>
</tr>
<tr>
<td>Tomato</td>
<td>FF6347</td>
<td>(255,99,71)</td>
<td style="background-color:Tomato"></td>
</tr>
<tr>
<td>OrangeRed</td>
<td>FF4500</td>
<td>(255,69,0)</td>
<td style="background-color:OrangeRed"></td>
</tr>
<tr>
<td>DarkOrange</td>
<td>FF8C00</td>
<td>(255,140,0)</td>
<td style="background-color:DarkOrange"></td>
</tr>
<tr>
<td>Orange</td>
<td>FFA500</td>
<td>(255,165,0)</td>
<td style="background-color:orange"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Жълта гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>Gold</td>
<td>FFD700</td>
<td>(255,215,0)</td>
<td style="background-color:Gold"></td>
</tr>
<tr>
<td>Yellow</td>
<td>FFFF00</td>
<td>(255,255,0)</td>
<td style="background-color:Yellow"></td>
</tr>
<tr>
<td>LightYellow</td>
<td>FFFFE0</td>
<td>(255,255,224)</td>
<td style="background-color:LightYellow"></td>
</tr>
<tr>
<td>LemonChiffon</td>
<td>FFFACD</td>
<td>(255,250,205)</td>
<td style="background-color:LemonChiffon"></td>
</tr>
<tr>
<td>LightGoldenrodYellow</td>
<td>FAFAD2</td>
<td>(250,250,210)</td>
<td style="background-color:LightGoldenrodYellow"></td>
</tr>
<tr>
<td>PapayaWhip</td>
<td>FFEFD5</td>
<td>(255,239,213)</td>
<td style="background-color:PapayaWhip"></td>
</tr>
<tr>
<td>Moccasin</td>
<td>FFE4B5</td>
<td>(255,228,181)</td>
<td style="background-color:Moccasin"></td>
</tr>
<tr>
<td>PeachPuff</td>
<td>FFDAB9</td>
<td>(255,218,185)</td>
<td style="background-color:PeachPuff"></td>
</tr>
<tr>
<td>PaleGoldenrod</td>
<td>EEE8AA</td>
<td>(238,232,170)</td>
<td style="background-color:PaleGoldenrod"></td>
</tr>
<tr>
<td>Khaki</td>
<td>F0E68C</td>
<td>(240,230,140)</td>
<td style="background-color:Khaki"></td>
</tr>
<tr>
<td>DarkKhaki</td>
<td>BDB76B</td>
<td>(189,183,107)</td>
<td style="background-color:DarkKhaki"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Пурпурна гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>Lavender</td>
<td>E6E6FA</td>
<td>(230,230,250)</td>
<td style="background-color:Lavender"></td>
</tr>
<tr>
<td>Thistle</td>
<td>D8BFD8</td>
<td>(216,191,216)</td>
<td style="background-color:Thistle"></td>
</tr>
<tr>
<td>Plum</td>
<td>DDA0DD</td>
<td>(221,160,221)</td>
<td style="background-color:Plum"></td>
</tr>
<tr>
<td>Violet</td>
<td>EE82EE</td>
<td>(238,130,238)</td>
<td style="background-color:Violet"></td>
</tr>
<tr>
<td>Orchid</td>
<td>DA70D6</td>
<td>(218,112,214)</td>
<td style="background-color:Orchid"></td>
</tr>
<tr>
<td>Fuchsia</td>
<td>FF00FF</td>
<td>(255,0,255)</td>
<td style="background-color:Fuchsia"></td>
</tr>
<tr>
<td>Magenta</td>
<td>FF00FF</td>
<td>(255,0,255)</td>
<td style="background-color:Magenta"></td>
</tr>
<tr>
<td>MediumOrchid</td>
<td>BA55D3</td>
<td>(186,85,211)</td>
<td style="background-color:MediumOrchid"></td>
</tr>
<tr>
<td>MediumPurple</td>
<td>9370DB</td>
<td>(147,112,219)</td>
<td style="background-color:MediumPurple"></td>
</tr>
<tr>
<td>BlueViolet</td>
<td>8A2BE2</td>
<td>(138,43,226)</td>
<td style="background-color:BlueViolet"></td>
</tr>
<tr>
<td>DarkViolet</td>
<td>9400D3</td>
<td>(148,0,211)</td>
<td style="background-color:DarkViolet"></td>
</tr>
<tr>
<td>DarkOrchid</td>
<td>9932CC</td>
<td>(153,50,204)</td>
<td style="background-color:DarkOrchid"></td>
</tr>
<tr>
<td>DarkMagenta</td>
<td>8B008B</td>
<td>(139,0,139)</td>
<td style="background-color:DarkMagenta"></td>
</tr>
<tr>
<td>Purple</td>
<td>800080</td>
<td>(128,0,128)</td>
<td style="background-color:Purple"></td>
</tr>
<tr>
<td>Indigo</td>
<td>4B0082</td>
<td>(75,0,130)</td>
<td style="background-color:Indigo"></td>
</tr>
<tr>
<td>SlateBlue</td>
<td>6A5ACD</td>
<td>(106,90,205)</td>
<td style="background-color:SlateBlue"></td>
</tr>
<tr>
<td>DarkSlateBlue</td>
<td>483D8B</td>
<td>(72,61,139)</td>
<td style="background-color:DarkSlateBlue"></td>
</tr>
<tr>
<td>MediumSlateBlue</td>
<td>7B68EE</td>
<td>(123,104,238)</td>
<td style="background-color:MediumSlateBlue"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Зелена гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>GreenYellow</td>
<td>ADFF2F</td>
<td>(173,255,47)</td>
<td style="background-color:GreenYellow"></td>
</tr>
<tr>
<td>Chartreuse</td>
<td>7FFF00</td>
<td>(127,255,0)</td>
<td style="background-color:Chartreuse"></td>
</tr>
<tr>
<td>LawnGreen</td>
<td>7CFC00</td>
<td>(124,252,0)</td>
<td style="background-color:LawnGreen"></td>
</tr>
<tr>
<td>Lime</td>
<td>00FF00</td>
<td>(0,255,0)</td>
<td style="background-color:Lime"></td>
</tr>
<tr>
<td>LimeGreen</td>
<td>32CD32</td>
<td>(50,205,50)</td>
<td style="background-color:LimeGreen"></td>
</tr>
<tr>
<td>PaleGreen</td>
<td>98FB98</td>
<td>(152,251,152)</td>
<td style="background-color:PaleGreen"></td>
</tr>
<tr>
<td>LightGreen</td>
<td>90EE90</td>
<td>(144,238,144)</td>
<td style="background-color:LightGreen"></td>
</tr>
<tr>
<td>MediumSpringGreen</td>
<td>00FA9A</td>
<td>(0,250,154)</td>
<td style="background-color:MediumSpringGreen"></td>
</tr>
<tr>
<td>SpringGreen</td>
<td>00FF7F</td>
<td>(0,255,127)</td>
<td style="background-color:SpringGreen"></td>
</tr>
<tr>
<td>MediumSeaGreen</td>
<td>3CB371</td>
<td>(60,179,113)</td>
<td style="background-color:MediumSeaGreen"></td>
</tr>
<tr>
<td>SeaGreen</td>
<td>2E8B57</td>
<td>(46,139,87)</td>
<td style="background-color:SeaGreen"></td>
</tr>
<tr>
<td>ForestGreen</td>
<td>228B22</td>
<td>(34,139,34)</td>
<td style="background-color:ForestGreen"></td>
</tr>
<tr>
<td>Green</td>
<td>008000</td>
<td>(0,128,0)</td>
<td style="background-color:Green"></td>
</tr>
<tr>
<td>DarkGreen</td>
<td>006400</td>
<td>(0,100,0)</td>
<td style="background-color:DarkGreen"></td>
</tr>
<tr>
<td>YellowGreen</td>
<td>9ACD32</td>
<td>(154,205,50)</td>
<td style="background-color:YellowGreen"></td>
</tr>
<tr>
<td>OliveDrab</td>
<td>6B8E23</td>
<td>(107,142,35)</td>
<td style="background-color:OliveDrab"></td>
</tr>
<tr>
<td>Olive</td>
<td>808000</td>
<td>(128,128,0)</td>
<td style="background-color:Olive"></td>
</tr>
<tr>
<td>DarkOliveGreen</td>
<td>556B2F</td>
<td>(85,107,47)</td>
<td style="background-color:DarkOliveGreen"></td>
</tr>
<tr>
<td>MediumAquamarine</td>
<td>66CDAA</td>
<td>(102,205,170)</td>
<td style="background-color:MediumAquamarine"></td>
</tr>
<tr>
<td>DarkSeaGreen</td>
<td>8FBC8F</td>
<td>(143,188,143)</td>
<td style="background-color:DarkSeaGreen"></td>
</tr>
<tr>
<td>LightSeaGreen</td>
<td>20B2AA</td>
<td>(32,178,170)</td>
<td style="background-color:LightSeaGreen"></td>
</tr>
<tr>
<td>DarkCyan</td>
<td>008B8B</td>
<td>(0,139,139)</td>
<td style="background-color:DarkCyan"></td>
</tr>
<tr>
<td>Teal</td>
<td>008080</td>
<td>(0,128,128)</td>
<td style="background-color:Teal"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Синя гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>Aqua</td>
<td>00FFFF</td>
<td>(0,255,255)</td>
<td style="background-color:Aqua"></td>
</tr>
<tr>
<td>Cyan</td>
<td>00FFFF</td>
<td>(0,255,255)</td>
<td style="background-color:Cyan"></td>
</tr>
<tr>
<td>LightCyan</td>
<td>E0FFFF</td>
<td>(224,255,255)</td>
<td style="background-color:LightCyan"></td>
</tr>
<tr>
<td>PaleTurquoise</td>
<td>AFEEEE</td>
<td>(175,238,238)</td>
<td style="background-color:PaleTurquoise"></td>
</tr>
<tr>
<td>Aquamarine</td>
<td>7FFFD4</td>
<td>(127,255,212)</td>
<td style="background-color:Aquamarine"></td>
</tr>
<tr>
<td>Turquoise</td>
<td>40E0D0</td>
<td>(64,224,208)</td>
<td style="background-color:Turquoise"></td>
</tr>
<tr>
<td>MediumTurquoise</td>
<td>48D1CC</td>
<td>(72,209,204)</td>
<td style="background-color:MediumTurquoise"></td>
</tr>
<tr>
<td>DarkTurquoise</td>
<td>00CED1</td>
<td>(0,206,209)</td>
<td style="background-color:DarkTurquoise"></td>
</tr>
<tr>
<td>CadetBlue</td>
<td>5F9EA0</td>
<td>(95,158,160)</td>
<td style="background-color:CadetBlue"></td>
</tr>
<tr>
<td>SteelBlue</td>
<td>4682B4</td>
<td>(70,130,180)</td>
<td style="background-color:SteelBlue"></td>
</tr>
<tr>
<td>LightSteelBlue</td>
<td>B0C4DE</td>
<td>(176,196,222)</td>
<td style="background-color:LightSteelBlue"></td>
</tr>
<tr>
<td>PowderBlue</td>
<td>B0E0E6</td>
<td>(176,224,230)</td>
<td style="background-color:PowderBlue"></td>
</tr>
<tr>
<td>LightBlue</td>
<td>ADD8E6</td>
<td>(173,216,230)</td>
<td style="background-color:LightBlue"></td>
</tr>
<tr>
<td>SkyBlue</td>
<td>87CEEB</td>
<td>(135,206,235)</td>
<td style="background-color:SkyBlue"></td>
</tr>
<tr>
<td>LightSkyBlue</td>
<td>87CEFA</td>
<td>(135,206,250)</td>
<td style="background-color:LightSkyBlue"></td>
</tr>
<tr>
<td>DeepSkyBlue</td>
<td>00BFFF</td>
<td>(0,191,255)</td>
<td style="background-color:DeepSkyBlue"></td>
</tr>
<tr>
<td>DodgerBlue</td>
<td>1E90FF</td>
<td>(30,144,255)</td>
<td style="background-color:DodgerBlue"></td>
</tr>
<tr>
<td>CornflowerBlue</td>
<td>6495ED</td>
<td>(100,149,237)</td>
<td style="background-color:CornflowerBlue"></td>
</tr>
<tr>
<td>MediumSlateBlue</td>
<td>7B68EE</td>
<td>(123,104,238)</td>
<td style="background-color:MediumSlateBlue"></td>
</tr>
<tr>
<td>RoyalBlue</td>
<td>4169E1</td>
<td>(65,105,225)</td>
<td style="background-color:RoyalBlue"></td>
</tr>
<tr>
<td>Blue</td>
<td>0000FF</td>
<td>(0,0,255)</td>
<td style="background-color:Blue"></td>
</tr>
<tr>
<td>MediumBlue</td>
<td>0000CD</td>
<td>(0,0,205)</td>
<td style="background-color:MediumBlue"></td>
</tr>
<tr>
<td>DarkBlue</td>
<td>00008B</td>
<td>(0,0,139)</td>
<td style="background-color:DarkBlue"></td>
</tr>
<tr>
<td>Navy</td>
<td>000080</td>
<td>(0,0,128)</td>
<td style="background-color:Navy"></td>
</tr>
<tr>
<td>MidnightBlue</td>
<td>191970</td>
<td>(25,25,112)</td>
<td style="background-color:MidnightBlue"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Кафява гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cornsilk</td>
<td>FFF8DC</td>
<td>(255,248,220)</td>
<td style="background-color:Cornsilk"></td>
</tr>
<tr>
<td>BlanchedAlmond</td>
<td>FFEBCD</td>
<td>(255,235,205)</td>
<td style="background-color:BlanchedAlmond"></td>
</tr>
<tr>
<td>Bisque</td>
<td>FFE4C4</td>
<td>(255,228,196)</td>
<td style="background-color:Bisque"></td>
</tr>
<tr>
<td>NavajoWhite</td>
<td>FFDEAD</td>
<td>(255,222,173)</td>
<td style="background-color:NavajoWhite"></td>
</tr>
<tr>
<td>Wheat</td>
<td>F5DEB3</td>
<td>(245,222,179)</td>
<td style="background-color:Wheat"></td>
</tr>
<tr>
<td>BurlyWood</td>
<td>DEB887</td>
<td>(222,184,135)</td>
<td style="background-color:BurlyWood"></td>
</tr>
<tr>
<td>Tan</td>
<td>D2B48C</td>
<td>(210,180,140)</td>
<td style="background-color:Tan"></td>
</tr>
<tr>
<td>RosyBrown</td>
<td>BC8F8F</td>
<td>(188,143,143)</td>
<td style="background-color:RosyBrown"></td>
</tr>
<tr>
<td>SandyBrown</td>
<td>F4A460</td>
<td>(244,164,96)</td>
<td style="background-color:SandyBrown"></td>
</tr>
<tr>
<td>Goldenrod</td>
<td>DAA520</td>
<td>(218,165,32)</td>
<td style="background-color:Goldenrod"></td>
</tr>
<tr>
<td>DarkGoldenrod</td>
<td>B8860B</td>
<td>(184,134,11)</td>
<td style="background-color:DarkGoldenrod"></td>
</tr>
<tr>
<td>Peru</td>
<td>CD853F</td>
<td>(205,133,63)</td>
<td style="background-color:Peru"></td>
</tr>
<tr>
<td>Chocolate</td>
<td>D2691E</td>
<td>(210,105,30)</td>
<td style="background-color:Chocolate"></td>
</tr>
<tr>
<td>SaddleBrown</td>
<td>8B4513</td>
<td>(139,69,19)</td>
<td style="background-color:SaddleBrown"></td>
</tr>
<tr>
<td>Sienna</td>
<td>A0522D</td>
<td>(160,82,45)</td>
<td style="background-color:Sienna"></td>
</tr>
<tr>
<td>Brown</td>
<td>A52A2A</td>
<td>(165,42,42)</td>
<td style="background-color:Brown"></td>
</tr>
<tr>
<td>Maroon</td>
<td>800000</td>
<td>(128,0,0)</td>
<td style="background-color:Maroon"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Бяла гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>White</td>
<td>FFFFFF</td>
<td>(255,255,255)</td>
<td style="background-color:White"></td>
</tr>
<tr>
<td>Snow</td>
<td>FFFAFA</td>
<td>(255,250,250)</td>
<td style="background-color:Snow"></td>
</tr>
<tr>
<td>Honeydew</td>
<td>F0FFF0</td>
<td>(240,255,240)</td>
<td style="background-color:Honeydew"></td>
</tr>
<tr>
<td>MintCream</td>
<td>F5FFFA</td>
<td>(245,255,250)</td>
<td style="background-color:MintCream"></td>
</tr>
<tr>
<td>Azure</td>
<td>F0FFFF</td>
<td>(240,255,255)</td>
<td style="background-color:Azure"></td>
</tr>
<tr>
<td>AliceBlue</td>
<td>F0F8FF</td>
<td>(240,248,255)</td>
<td style="background-color:AliceBlue"></td>
</tr>
<tr>
<td>GhostWhite</td>
<td>F8F8FF</td>
<td>(248,248,255)</td>
<td style="background-color:GhostWhite"></td>
</tr>
<tr>
<td>WhiteSmoke</td>
<td>F5F5F5</td>
<td>(245,245,245)</td>
<td style="background-color:WhiteSmoke"></td>
</tr>
<tr>
<td>Seashell</td>
<td>FFF5EE</td>
<td>(255,245,238)</td>
<td style="background-color:Seashell"></td>
</tr>
<tr>
<td>Beige</td>
<td>F5F5DC</td>
<td>(245,245,220)</td>
<td style="background-color:Beige"></td>
</tr>
<tr>
<td>OldLace</td>
<td>FDF5E6</td>
<td>(253,245,230)</td>
<td style="background-color:OldLace"></td>
</tr>
<tr>
<td>FloralWhite</td>
<td>FFFAF0</td>
<td>(255,250,240)</td>
<td style="background-color:FloralWhite"></td>
</tr>
<tr>
<td>Ivory</td>
<td>FFFFF0</td>
<td>(255,255,240)</td>
<td style="background-color:Ivory"></td>
</tr>
<tr>
<td>AntiqueWhite</td>
<td>FAEBD7</td>
<td>(250,235,215)</td>
<td style="background-color:AntiqueWhite"></td>
</tr>
<tr>
<td>Linen</td>
<td>FAF0E6</td>
<td>(250,240,230)</td>
<td style="background-color:Linen"></td>
</tr>
<tr>
<td>LavenderBlush</td>
<td>FFF0F5</td>
<td>(255,240,245)</td>
<td style="background-color:LavenderBlush"></td>
</tr>
<tr>
<td>MistyRose</td>
<td>FFE4E1</td>
<td>(255,228,225)</td>
<td style="background-color:MistyRose"></td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<table style="margin-left:auto;margin-right:auto"  border="1" cellspacing="0" cellpadding="3">
<caption>Сива гама</caption>
<thead>
<tr>
<th>Цвят</th>
<th>HEX</th>
<th>RGB</th>
<th>Резултат</th>
</tr>
</thead>
<tbody>
<tr>
<td>Gainsboro</td>
<td>DCDCDC</td>
<td>(220,220,220)</td>
<td style="background-color:Gainsboro"></td>
</tr>
<tr>
<td>LightGrey</td>
<td>D3D3D3</td>
<td>(211,211,211)</td>
<td style="background-color:LightGrey"></td>
</tr>
<tr>
<td>Silver</td>
<td>C0C0C0</td>
<td>(192,192,192)</td>
<td style="background-color:Silver"></td>
</tr>
<tr>
<td>DarkGray</td>
<td>A9A9A9</td>
<td>(169,169,169)</td>
<td style="background-color:DarkGray"></td>
</tr>
<tr>
<td>Gray</td>
<td>808080</td>
<td>(128,128,128)</td>
<td style="background-color:Gray"></td>
</tr>
<tr>
<td>DimGray</td>
<td>696969</td>
<td>(105,105,105)</td>
<td style="background-color:DimGray"></td>
</tr>
<tr>
<td>LightSlateGray</td>
<td>778899</td>
<td>(119,136,153)</td>
<td style="background-color:LightSlateGray"></td>
</tr>
<tr>
<td>SlateGray</td>
<td>708090</td>
<td>(112,128,144)</td>
<td style="background-color:SlateGray"></td>
</tr>
<tr>
<td>DarkSlateGray</td>
<td>2F4F4F</td>
<td>(47,79,79)</td>
<td style="background-color:DarkSlateGray"></td>
</tr>
<tr>
<td>Black</td>
<td>000000</td>
<td>(0,0,0)</td>
<td style="background-color:Black"></td>
</tr>
</tbody>
</table>
<p><strong>3. Използване на различни стандарти за запис:</strong> остана да кажем как можем да сменяме цветове по различните стандарти. Ще демонстрираме директно с пример.</p>
<pre>&lt;p style="background-color:silver"&gt;
Параграф със сменен цвят чрез име
&lt;/p&gt;
&lt;p style="background-color:#C0C0C0"&gt;
Параграф със сменен цвят чрез HEX
&lt;/p&gt;
&lt;p style="background-color:rgb(192,192,192)"&gt;
Параграф със сменен цвят чрез RGB
&lt;/p&gt;</pre>
<p>Кой от стандартите ще използвате е лично ваш избор. Ако желаете по-специфични цветове естествено трябва да излезете от именованото множество и да използвате HEX или RGB код.</p>
<p>П.П. Имената на цветовете и техните кодове са съгласувани със статията за <a href="http://en.wikipedia.org/wiki/Web_colors" target="_blank">WEB цветове от Wikipedia</a>, като има само минимална редакция.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3282-%d1%86%d0%b2%d0%b5%d1%82%d0%be%d0%b2%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Мета тагове</title>
		<link>http://www.cphpvb.net/xhtml/3269-%d0%bc%d0%b5%d1%82%d0%b0-%d1%82%d0%b0%d0%b3%d0%be%d0%b2%d0%b5/</link>
		<comments>http://www.cphpvb.net/xhtml/3269-%d0%bc%d0%b5%d1%82%d0%b0-%d1%82%d0%b0%d0%b3%d0%be%d0%b2%d0%b5/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 08:32:23 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3269</guid>
		<description><![CDATA[Още в първата статия въведохме понятието &#8222;мета информация&#8220; и го преведохме като &#8222;информация за информацията&#8220;. Мета таговете се използват за две главни цели &#8211; подаване на команди към браузъра и &#8222;скрито&#8220; за потребителя описание на съдържанието на страницата. 1. meta http-equiv &#8211; мета тагове за команди към браузъра. Синтаксиса на тези тагове е следния: &#60;meta [...]]]></description>
			<content:encoded><![CDATA[<p>Още в първата статия въведохме понятието &#8222;мета информация&#8220; и го преведохме като &#8222;информация за информацията&#8220;. Мета таговете се използват за две главни цели &#8211; подаване на команди към браузъра и &#8222;скрито&#8220; за потребителя описание на съдържанието на страницата.<span id="more-3269"></span></p>
<p><strong>1. meta http-equiv</strong> &#8211; мета тагове за команди към браузъра. Синтаксиса на тези тагове е следния:</p>
<p style="text-align: center;">&lt;meta http-equiv=&#8220;име&#8220; content=&#8220;стойност&#8220; /&gt;</p>
<p style="text-align: left;">Във всички примери досега винаги използвахме един такъв мета таг. Той беше следния:</p>
<p>a) &lt;meta http-equiv=&#8220;content-type&#8220; content=&#8220;text/html; charset=UTF-8&#8243; /&gt; &#8211; дефинира &#8222;content-type&#8220; (съдържание на страницата) като text/html формат с кодировка UTF-8. Изключително рядко се използва нещо различно от &#8222;text/html&#8220;, но кодировката може да бъде друга:</p>
<p>- KOI8-R &#8211; често срещана кодировка специално за руски език;<br />
- iso-8859-1 &#8211; латински езици;<br />
- iso-8859-2 &#8211; източно европейски езици като чешки, полски, унгарски и румънски;<br />
- iso-8859-3 &#8211; &#8222;умрелия&#8220; език есперанто;<br />
- iso-8859-4 &#8211; естонски, латвийски и литовски;<br />
- iso-8859-5 &#8211; кирилица;<br />
- iso-8859-6 &#8211; арабски;<br />
- iso-8859-7 &#8211; гръцки;<br />
- iso-8859-8 &#8211; еврейски;<br />
- iso-8859-9 &#8211; турски;<br />
- iso-8859-10 &#8211; гренландски и лапландски;<br />
- iso-8859-11 &#8211; тайландски;<br />
- iso-8859-12 &#8211; келтски;<br />
- iso-8859-13 &#8211; балтийски езици, които липсват в iso-8859-4;<br />
- iso-8859-14 &#8211; келтски (подобeн на iso-8859-12);<br />
- iso-8859-15 &#8211; същият като iso-8859-1, но съдържа и символа за Евро;<br />
- iso-8859-16 &#8211; същият като iso-8859-2, но съдържа и символа за Евро.</p>
<p>Има и редица други кодировки. Например в близкото минало много често използван в България беше windows-1251, което е друг вид кодировка на кирилица. Това днес довежда до проблеми по мигрирането на стари сайтове към нови. Почти всички кодировки обаче вече се заместват от универсалния стандарт UTF-8. Все пак ето изброени стандартните кодировки за Windows:</p>
<p>- windows-1250 &#8211; чешки, полски, унгарски, румънски, хърватски, словашки, словенски, албански и немски;<br />
- windows-1251 &#8211; кирилица;<br />
- windows-1252 &#8211; латински езици;<br />
- windows-1253 &#8211; гръцки;<br />
- windows-1254 &#8211; турски;<br />
- windows-1255 &#8211; еврейски;<br />
- windows-1256 &#8211; арабски;<br />
- windows-1257 &#8211; естонски, латвийски и литовски;<br />
- windows-1258 &#8211; виетнамски.</p>
<p>б) &lt;meta http-equiv=&#8220;Refresh&#8220; content=&#8220;10;URL=http://www.cphpvb.net/&#8220; /&gt; &#8211; &#8222;Refresh&#8220; означава, че страницата ще се &#8222;презареди&#8220;. Стойност 10 означава, че това ще стане след 10 секунди. Допълнителните данни в URL пък дават възможност да укажем какво точно да се презареди в текущия прозорец. С други думи това е един (остарял) метод за пренасочване от стар адрес на сайт към нов. Без URL се използва за сайтове с динамично съдържание, което се обновява често. Тази техника обаче също е заместена от много по-удобни и гъвкави инструменти. С други думи &#8211; едва ли ще ви се наложи да използвате refresh.</p>
<p>в) &lt;meta http-equiv=&#8220;expires&#8220; content=&#8220;Sun, 30 Aug 2009 20:00:00 GMT&#8220; /&gt; &#8211; указва на браузъра кога текущото съдържание на страницата става неактуално. Така ако браузъра има cache с информация преди тази дата и час, а те са преминали, то той няма да използва cache-а, а ще зареди страницата наново от сървъра. Използва се рядко, но понякога може да бъде много полезно. Например ако имаме някакво събитие на сайта &#8211; да кажем откриване на дадена промоция точно в определен ден и час.</p>
<p>г) &lt;meta http-equiv=&#8220;cache-control&#8220; content=&#8220;no-cache&#8220; /&gt; &#8211; указва на браузъра въобще да не пази cache. Други възможни стойности са &#8222;public&#8220; (свободно кеширане), &#8222;private&#8220; (кеширане само за лично ползване) и &#8222;no-store&#8220; (може да се кешира, но не и архивира). Почти винаги този мета таг се използва заедно със следващия в списъка.</p>
<p>д) &lt;meta http-equiv=&#8220;Pragma&#8220; content=&#8220;no-cache&#8220; /&gt; &#8211; контролира кеширането за прокси сървъри. Стойностите са като при таг &#8222;cache-control&#8220;. Истината е, че прокси сървърите рядко се &#8222;вълнуват&#8220; от наличието на този таг.</p>
<p>е) &lt;meta http-equiv=&#8220;Content-Language&#8220; content=&#8220;bg&#8220; /&gt; &#8211; указва на  търсачките какъв е езика на страницата. Използва се при категоризация и  &#8222;таргетиране&#8220; на търсенията.</p>
<p>ж) &lt;meta http-equiv=&#8220;Set-Cookie&#8220; content=&#8220;name=value;expires=Monday, 15-Mar-2010 02:12:00 GMT; path=/&#8220; /&gt; &#8211; остарял и вече почти забравен метод за слагане на cookie в клиентския браузър. Удобен е само за cookie със статична информация, а това вече е доста рядко срещана нужда.</p>
<p>з) &lt;meta http-equiv=&#8220;Content-Script-Type&#8220; content=&#8220;text/javascript&#8220; /&gt; &#8211; дефинира езикът за скриптови езици, който се използва по подразбиране в страницата. Други възможни стойности например са &#8222;text/tcl&#8220; и &#8222;text/VBScript&#8220;. Силно препоръчваме да НЕ използвате този мета таг и винаги когато използвате скриптови езици изрично да указвате какви са те.</p>
<p>и) &lt;meta http-equiv=&#8220;Content-Style-Type&#8220; content=&#8220;text/css&#8220; /&gt; &#8211; дефинира езикът за описание на стилове, който се използва по подразбиране в страницата. Засега единствената възможна стойност е &#8222;text/css&#8220;, което прави тагът безполезен. Дори и в бъдеще да се появят алтернативи на CSS, отново е в сила препоръката от предишния изброен таг &#8211; по-добре сами описвайте данните и не разчитайте на несигурни методи за дефиниране на стойности по подразбиране. Все още браузърите не спазват стриктни стандарти що се отнася до мета таговете.</p>
<p><strong>2. meta name</strong> &#8211; тагове, които дават синтезирана информация за страницата. Използва се от търсачки и ботове, които индексират страници в интернет. Общия синтаксис е:</p>
<p style="text-align: center;">&lt;meta name=&#8220;име&#8220; content=&#8220;стойност&#8220; /&gt;</p>
<p>a) &lt;meta name=&#8220;author&#8220; content=&#8220;Филип Петров&#8220; /&gt; &#8211; указва авторът на информацията в страницата.</p>
<p>б) &lt;meta name=&#8220;description&#8220; content=&#8220;Описание на често използвани мета тагове&#8220; /&gt; &#8211; кратко описание на страницата &#8211; не повече от 150 до максимум 200 символа! Това например понякога е текстът, който се появява под връзките на намерените резултати в Google.</p>
<p>в) &lt;meta name=&#8220;keywords&#8220; content=&#8220;мета, тагове, http-equiv, meta tags&#8220; /&gt; &#8211; ключови думи за страницата разделени със запетаи. Не е добре да използвате дълги ключови думи (изречения). Избягвайте повторенията на думи и гледайте думите да отговарят на съдържанието на страницата ви.</p>
<p>г) &lt;meta name=&#8220;copyright&#8220; content=&#8220;&amp;copy; 2009 Филип Петров&#8220; /&gt; &#8211; информация за авторското право на страницата.</p>
<p>д) &lt;meta name=&#8220;reply-to&#8220; content=&#8220;philip@abv.bg&#8220; /&gt; &#8211; адрес на електронна поща за връзка с автора на страницата.</p>
<p>е) &lt;meta name=&#8220;robots&#8220; content=&#8220;all&#8220; /&gt; &#8211; рядко използван еквивалент на популярния robots.txt. Чрез този мета таг се дава информация за индексиращите ботове и търсачките. Възможните стойности са all (пълно индексиране на страницата и нейните връзки), none (забрана за каквато и да е индексация), index (индексира текущата страница), follow (следва връзките), noindex (не индексира текущата страница) и nofollow (не следва връзките).  Така например комбинацията &#8222;index, follow&#8220; е еквивалентна на &#8222;all&#8220;, а &#8222;index, nofollow&#8220; ще укаже &#8222;индексирай само текущата страница, но НЕ следвай нейните връзки. В днешно време за съжаление все по-малко търсачки се съобразяват с нашите изисквания.</p>
<p>ж) &lt;meta name=&#8220;googlebot&#8220; content=&#8220;noarchive&#8220; /&gt; &#8211; указва специално за най-популярния бот (този на google) да не пази страницата в Google Cache. Други възможни стойности са всички познати от мета таг &#8222;robots&#8220;, както и един допълнителен &#8211; nosnippet (без архивиране в Google Cache дори на частична информация).</p>
<p>з) &lt;meta name=&#8220;revisit-after&#8220; content=&#8220;30 days&#8220; /&gt; &#8211; указва на търсачката, че най-вероятно съдържанието на страницата ще бъде обновено след 30 дни. По този начин насърчаваме търсачките да обновяват индексите си по-често. Не злоупотребявайте, защото ако лъжете, то може да получите &#8222;наказание&#8220; от търсачката и да ви бъде смъкнат ранга.</p>
<p>и) &lt;meta name=&#8220;distribution&#8220; content=&#8220;global&#8220; /&gt; &#8211; много рядко използван мета таг. Чрез global (по подразбиране) указваме, че съдържанието на страницата е с международно значение, чрез local, че е с местно, а чрез iu казваме, че е само за лично ползване (internal use).</p>
<p>й) &lt;meta name=&#8220;rating&#8220; content=&#8220;general&#8220; /&gt; &#8211; указва типа съдържание на страницата и целевата му група. Възможни стойности са:<br />
- general: използва се от всички възрастови групи;<br />
- mature: съдържание само за възрастни. Задължително е да бъде поставено при съдържание с насилие или порнография, защото се използва от филтрите на браузърите;<br />
- restricted: само за отбран кръг посетители (обикновено се слага на страници, които са защитени с парола);<br />
- 14 years: страница предназначена за деца до 14 години &#8211; по този начин насърчаваме търсачките да извеждат съдържанието на по-предна страница, когато се използват филтри за контрол на деца;<br />
- safe for kids: указваме, че страницата е напълно безопасна за деца въпреки, че е предназначена предимно за възрастни.</p>
<p>к) &lt;meta name=&#8220;pubdate&#8220; content=&#8220;2009-08-30&#8243; /&gt; &#8211; указва на коя дата е публикувана страницата. По този начин търсачките се ориентират за актуалността на информацията.</p>
<p>л) &lt;meta name=&#8220;generator&#8220; content=&#8220;WordPress 2.8.4&#8243; /&gt; &#8211; името на софтуера, с който е генерирана вашата HTML страница. Аз например си пиша статиите през WYSIWYG рекадтора на блога WordPress и затова редактора на всички мои страници е дефиниран автоматично като &#8222;WordPress&#8220; последван от версията. Обикновено редакторите сами слагат тази информация, а този мета таг се използва само и единствено за статистическа информация.</p>
<p>м) &lt;meta name=&#8220;publisher&#8220; content=&#8220;WordPress 2.8.4&#8243; /&gt; &#8211; идентичен  с &lt;meta name=&#8220;generator&#8220;&#8230; /&gt;.  Обикновено не се използва.</p>
<p>н) &lt;meta name=&#8220;designer&#8220; content=&#8220;Philip Petrov&#8220; /&gt; &#8211; името на дизайнера на уеб страницата. Обикновено се слага от фирми изработващи уеб сайтове, хора изработващи шаблони или просто дизайнери поддържащи даден уебсайт.</p>
<p>о) &lt;meta name=&#8220;abstract&#8220; content=&#8220;&#8230;&#8220; /&gt; &#8211; обикновено се слага само на страници съдържащи научни публикации. В този таг се слага резюмето на статията. Засега никой не използва този таг.</p>
<p>п) &lt;meta name=&#8220;title&#8220; content=&#8220;website title&#8220; /&gt; &#8211; по-скоро препоръчвам да не използвате този таг или ако го правите да слагате същата информация, каквато се намира в таг &lt;title&gt;&#8230;&lt;/title&gt;. Навсякъде пише, че ефектът от използването на този таг е спорен и по-скоро не трябва да го ползвате.</p>
<p>р) &lt;meta name=&#8220;subject&#8220; content=&#8220;тема на страницата&#8220; /&gt; &#8211; отново има отношение към научните статии и в него се пише научната област. Както и при &#8222;abstract&#8220; &#8211; засега нито търсачки, нито браузъри използват този таг.</p>
<p>с) &lt;meta name=&#8220;classification&#8220; content=&#8220;business&#8220; /&gt; &#8211; стойност, която подсказва на порталите как да категоризират вашата страница. Стойностите могат да бъдат какъвто искате текст, но силно се препоръчва ако въобще ползвате този таг, то да използвате някоя стандартна дума от големите портали (art, education, sport, news, и т.н.). Практически на мен този таг ми е &#8222;помагал&#8220; само един единствен път, когато при добавяне на сайт към списъка на портал беше избрана вярната категория автоматично. Тъй като това е много рядка операция &#8211; може би ще е добре да спестите на посетителите на сайта изтеглянето на няколко байта и ще си избирате категорията в порталите сами.</p>
<p>т) &lt;meta name=&#8220;owner&#8220; content=&#8220;Philip Petrov&#8220; /&gt; &#8211; указва кой е собственика на уеб страницата/сайта &#8211; име на човек или компания. Може би го използвайте тогава, когато собственика на сайта е различен от автора на конкретната статия &#8211; има логика за корпоративни блогове, форуми, и т.н. Все пак имайте в предвид, че едва ли някоя търсачка или браузър използва този таг.</p>
<p>Надявам се, че информацията и препоръките ми ще ви бъдат полезни&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3269-%d0%bc%d0%b5%d1%82%d0%b0-%d1%82%d0%b0%d0%b3%d0%be%d0%b2%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Класове и идентификатори</title>
		<link>http://www.cphpvb.net/xhtml/3258-%d0%ba%d0%bb%d0%b0%d1%81%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b8%d0%b4%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%b8/</link>
		<comments>http://www.cphpvb.net/xhtml/3258-%d0%ba%d0%bb%d0%b0%d1%81%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b8%d0%b4%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%b8/#comments</comments>
		<pubDate>Sat, 29 Aug 2009 14:39:44 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3258</guid>
		<description><![CDATA[Досега показахме множество примери със т.нар. &#8222;inline&#8220; стилове. При тях стилът се променя на мястото където ни е нужно това. Това води до редица неудобства: Представете си страница с 10 параграфа, всеки от който трябва да е с тъмно сив фон и бели букви. Ясно е, че с досегашните знания ние ще променяме стиловете за [...]]]></description>
			<content:encoded><![CDATA[<p>Досега показахме множество примери със т.нар. &#8222;inline&#8220; стилове. При тях стилът се променя на мястото където ни е нужно това. Това води до редица неудобства:</p>
<ol>
<li>Представете си страница с 10 параграфа, всеки от който трябва да е с тъмно сив фон и бели букви. Ясно е, че с досегашните знания ние ще променяме стиловете за фон и букви десет пъти;</li>
<li>Не е хубаво да се смесват дизайн и съдържание. Би било много по-добре ако може да ги разделим максимално много.</li>
</ol>
<p>Затова за щастие има възможност за &#8222;изнасяне&#8220; на CSS кода в заглавните тагове &lt;head&gt;. Ето един пример:<span id="more-3258"></span></p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
&lt;head&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
&lt;title&gt;CSS стилове&lt;/title&gt;
<strong>&lt;style type="text/css"&gt;
   p {
      background-color: grey;
      color: white;
   }
   div {
      background-color: blue;
      color:white;
   }
&lt;/style&gt;</strong>
&lt;/head&gt;
&lt;body&gt;
   &lt;p&gt; Малко текст в първи параграф &lt;/p&gt;
   &lt;p&gt; Малко текст във втори параграф &lt;/p&gt;
   &lt;div&gt;Малко текст в друго поле&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Резултат:</p>
<p><a href="http://www.cphpvb.net/wp-content/uploads/2009/08/styles1.PNG"><img class="aligncenter size-medium wp-image-3260" title="CSS стилове" src="http://www.cphpvb.net/wp-content/uploads/2009/08/styles1-300x254.PNG" alt="CSS стилове" width="300" height="254" /></a></p>
<p>Сигурно веднага забелязахте удобството. Синтаксисът е изключително прост:</p>
<p style="text-align: center;"><em>таг { стил1:стойност; стил2:стойност; &#8230; }</em></p>
<p style="text-align: left;">Е, веднага се сблъскваме с едно неудобство. Забелязваме, че по този начин абсолютно всички параграфи стават сиви с бял текст и абсолютно всички полета div стават сини с бял текст. Какво правим ако желаем да създадем трети параграф, който е с черен фон?</p>
<p style="text-align: left;">Тук на помощ идват т.нар. &#8222;класове&#8220; от стилове. Ще демонстрираме директно с пример:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
&lt;head&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
&lt;title&gt;CSS стилове&lt;/title&gt;
&lt;style type="text/css"&gt;
<strong> p.siv{
    background-color: grey;
    color: white;
 }
 p.cheren{
     background-color: black;
     color: white;
 }</strong>
 div {
      background-color: blue;
      color:white;
 }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
   &lt;p <strong>class="siv"</strong>&gt;Малко текст в първи параграф &lt;/p&gt;
   &lt;p <strong>class="siv"</strong>&gt;Малко текст във втори параграф &lt;/p&gt;
   &lt;div&gt;Малко текст в друго поле&lt;/div&gt;
   &lt;p <strong>class="cheren"</strong>&gt;Ето един черен параграф&lt;/p&gt;
   &lt;p&gt;Ето и един параграф без стил&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Резултат:</p>
<p><a href="http://www.cphpvb.net/wp-content/uploads/2009/08/styles2.PNG"><img class="aligncenter size-medium wp-image-3262" title="CSS стилове" src="http://www.cphpvb.net/wp-content/uploads/2009/08/styles2-300x254.PNG" alt="CSS стилове" width="300" height="254" /></a></p>
<p>Ето как бихме могли да дефинираме таблицата от края на миналата статия:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
&lt;head&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
&lt;title&gt;Форматиране на текст и картинки&lt;/title&gt;
<strong> &lt;style type="text/css"&gt;
   table.students {
      border-width:1px;
      border-style:solid;
      border-color:black;
      width:100%;
      font-family:'Lucida Console', Monaco, monospace;font-size:12pt";
   }
   colgroup.numbers {
      background-color:wheat;
      width:25px;
   }
   colgroup.names {
      background-color:whitesmoke;
   }
   td.center {
      text-align:center;
   }
   thead.students {
      background-color:lightgrey;
      height:40px;
   }
&lt;/style&gt;</strong>
&lt;/head&gt;
&lt;body&gt;

&lt;table rules="all" cellpadding="10" frame="box"
class="students"&gt;
&lt;colgroup class="numbers"&gt;&lt;/colgroup&gt;
&lt;colgroup span="2" class="names"&gt;&lt;/colgroup&gt;
&lt;thead class="students"&gt;
&lt;tr&gt;
   &lt;th&gt;#&lt;/th&gt;
   &lt;th&gt;Лично име&lt;/th&gt;
   &lt;th&gt;Фамилно име&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
   &lt;td class="center"&gt;1&lt;/td&gt;
   &lt;td&gt;Анна&lt;/td&gt;
   &lt;td&gt;Петрова&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
   &lt;td class="center"&gt;2&lt;/td&gt;
   &lt;td&gt;Иван&lt;/td&gt;
   &lt;td&gt;Захариев&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
   &lt;td class="center"&gt;3&lt;/td&gt;
   &lt;td&gt;Димитър&lt;/td&gt;
   &lt;td&gt;Михайлов&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Има и още една възможност за създаване на стилове &#8211; чрез идентификатори. Ето един пример:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
&lt;head&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
&lt;title&gt;Идентификатори в CSS&lt;/title&gt;
&lt;style type="text/css"&gt;
   p#grey {
      background-color: grey;
      color: white;
   }
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
   &lt;p&gt;Нормален параграф&lt;/p&gt;
   &lt;p id="grey"&gt;Параграф с променен стил&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Резултат:</p>
<p><a href="http://www.cphpvb.net/wp-content/uploads/2009/08/styles3.PNG"><img class="aligncenter size-medium wp-image-3263" title="Идентификатори в CSS" src="http://www.cphpvb.net/wp-content/uploads/2009/08/styles3-300x254.PNG" alt="Идентификатори в CSS" width="300" height="254" /></a></p>
<p>Остава въпросът &#8222;каква е разликата между класове и идентификатори?&#8220;. Отговорът е, че стил дефиниран като идентификатор може да бъде използван само един единствен път в документа! С други думи стойностите на атрибута id в таговете трябва да са уникални! При класовете това не е така &#8211; можем да имаме повече от един обект от даден клас.</p>
<p>Накрая ще споменем за още една функционалност &#8211; &#8222;изнасяне&#8220; на целия CSS код в отделен файл! Ето един пример &#8211; вземете целия код между &lt;style&gt; и &lt;/style&gt; от примера с таблицата и го запишете в текстов файл с име styles.css.</p>
<p><strong><em>Файл styles.css:</em></strong></p>
<pre>table.students {
	border:1px;
	border-style:solid;
	border-color:black;
	width:100%;
	font-family:'Lucida Console', Monaco, monospace;font-size:12pt";
}
colgroup.numbers {
	background-color:wheat;
	width:25px;
}
colgroup.names {
	background-color:whitesmoke;
}
td.center {
	text-align:center;
}
thead.students {
	background-color:lightgrey;
	height:40px;
}</pre>
<p><strong><em>XHTML файл:</em></strong></p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
&lt;head&gt;
&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
&lt;title&gt;Идентификатори в CSS&lt;/title&gt;
<strong>&lt;link rel="stylesheet" type="text/css" href="styles.css" /&gt;</strong>
&lt;/head&gt;
&lt;body&gt;

&lt;table rules="all" cellpadding="10" frame="box"	class="students"&gt;
&lt;colgroup class="numbers"&gt;&lt;/colgroup&gt;
&lt;colgroup span="2" class="names"&gt;&lt;/colgroup&gt;
&lt;thead class="students"&gt;
&lt;tr&gt;
   &lt;th&gt;#&lt;/th&gt;
   &lt;th&gt;Лично име&lt;/th&gt;
&lt;th&gt;Фамилно име&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
   &lt;td class="center"&gt;1&lt;/td&gt;
   &lt;td&gt;Анна&lt;/td&gt;
   &lt;td&gt;Петрова&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
   &lt;td class="center"&gt;2&lt;/td&gt;
   &lt;td&gt;Иван&lt;/td&gt;
   &lt;td&gt;Захариев&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
   &lt;td class="center"&gt;3&lt;/td&gt;
   &lt;td&gt;Димитър&lt;/td&gt;
   &lt;td&gt;Михайлов&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Виждате, че така може няколко HTML файла да споделят едни и същи стилове. Това е и най-често употребяваната структура. В атрибут href на link може да давате както релативен път, така и URL.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3258-%d0%ba%d0%bb%d0%b0%d1%81%d0%be%d0%b2%d0%b5-%d0%b8-%d0%b8%d0%b4%d0%b5%d0%bd%d1%82%d0%b8%d1%84%d0%b8%d0%ba%d0%b0%d1%82%d0%be%d1%80%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Форматиране на таблици</title>
		<link>http://www.cphpvb.net/xhtml/3192-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b8/</link>
		<comments>http://www.cphpvb.net/xhtml/3192-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b8/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 18:40:45 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3192</guid>
		<description><![CDATA[Сега е време да разгледаме няколко по-специфични параметри, чрез които да можем да форматираме таблиците много по-гъвкаво. 1. cellpadding: атрибут със стойност в пиксели, чрез който се обозначава разстоянието между текста в клетките и рамката на клетките в таблица. Пример: &#60;table border="1" cellpadding="10"&#62; &#60;thead&#62; &#60;tr&#62; &#60;th&#62;Колона 1&#60;/th&#62; &#60;th&#62;Колона 2&#60;/th&#62; &#60;/tr&#62; &#60;/thead&#62; &#60;tbody&#62; &#60;tr&#62; &#60;td&#62;11&#60;/td&#62; &#60;td&#62;21&#60;/td&#62; [...]]]></description>
			<content:encoded><![CDATA[<p>Сега е време да разгледаме няколко по-специфични параметри, чрез които да можем да форматираме таблиците много по-гъвкаво.</p>
<p><strong>1. </strong><code><strong>cellpadding:</strong> атрибут със стойност в пиксели, чрез който се обозначава разстоянието между текста в клетките и рамката на клетките в таблица.</code></p>
<p>Пример:<span id="more-3192"></span></p>
<pre>&lt;table border="1" cellpadding="10"&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;

	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<p><img class="aligncenter size-full wp-image-3201" title="cell padding" src="http://www.cphpvb.net/wp-content/uploads/2009/08/padding.PNG" alt="cell padding" width="213" height="129" /></p>
<p>Алтернативно можете да използвате стилове. Стил padding или подстилове padding-top, padding-left, padding-right и padding-bottom ви дават още по-гъвкави възможности за позициониране на текст в клетка.</p>
<p><strong>2. cellspacing:</strong> атрибут приемащ стойност в пиксели, чрез който се обозначава разстоянието между рамката на таблицата и рамката на клетките.<br />
Пример:</p>
<pre>&lt;table border="1" cellspacing="10"&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;

	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="1" cellspacing="10">
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p>По подразбиране cellspacing e 1. Най-често използвана е стойност 0, при която рамките съвпадат.</p>
<p>Пример:</p>
<pre>&lt;table border="1" cellspacing="0"&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;

	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="1" cellspacing="0">
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p>Алтернативата чрез стилове е border-spacing.</p>
<p><strong>3. width:</strong> Дължина по хоризонтала на таблица или клетка. Ще дадем пример за всеки елемент по отделно. Тук ще го реализираме чрез стилове.</p>
<p>Пример: Таблица с обща широчина 80%.</p>
<pre>&lt;table border="1" style="width:80%"&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table style="width: 80%;" border="1">
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p>Пример: Таблица изпълваща екрана по хоризонтала и с първа колона от точно 70 пиксела.</p>
<pre>&lt;table border="1" style="width:100%"&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th style="width:70px"&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table style="width: 100%;" border="1">
<thead>
<tr>
<th style="width: 70px;">Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p><strong>4. height:</strong> Определя височина на таблица или ред.</p>
<p>Пример: Таблица с обща височина 200 пиксела и първи ред с височина 20 пиксела.</p>
<pre>&lt;table border="1" style="height:200px"&gt;
	&lt;thead&gt;
		&lt;tr style="height:20px"&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table style="height: 200px;" border="1">
<thead>
<tr style="height: 20px;">
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p><strong>5. frame:</strong> атрибут, определящ рамката на таблицата. Възможните стойности са:</p>
<p>a) void &#8211; без рамка;<br />
б) above &#8211; само горната линия на рамката е видима;<br />
в) below &#8211; само долната линия;<br />
г) hsides &#8211; само двете вертикални линии;<br />
д) vsides &#8211; само горната и долната линия;<br />
е) lhs &#8211; само лявата линия;<br />
ж) rhs &#8211; само дясната линия;<br />
з) box &#8211; всички линии (по подразбиране).</p>
<p>Пример:</p>
<pre>&lt;table border="3" frame="vsides"&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="3" frame="vsides">
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p><strong>6. colgroup:</strong> Използва се за създаване на групи от колони. Можете лесно да си направите аналогия с thead, tbody и tfoot, които са групи по редове. Ето как можем да създадем таблица с три колони и две групи. За да ги различите ще сложим розов фон на първата група и жълт на втората:</p>
<pre>&lt;table border="1"&gt;
	&lt;colgroup span="2" style="background-color:pink"&gt;&lt;/colgroup&gt;
	&lt;colgroup style="background-color:yellow"&gt;&lt;/colgroup&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
			&lt;th&gt;Колона 3&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
			&lt;td&gt;31&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
			&lt;td&gt;32&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="1">
<colgroup style="background-color:pink" span="2"></colgroup>
<colgroup style="background-color:yellow"></colgroup>
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
<th>Колона 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
<td>31</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
<td>32</td>
</tr>
</tbody>
</table>
<p><strong>7. rules:</strong> атрибут, чрез който се контролират линиите вътре в таблицата. Възможните стойности са:</p>
<p>а) none &#8211; без линии &#8211; по подразбиране;<br />
б) groups &#8211; само между между thead, tbody и tfoot, както и col и colgroup;<br />
в) rows &#8211; линии само по редове;<br />
г) cols &#8211; линии само по колони;<br />
д) all &#8211; и по редове и по колони.</p>
<p>Пример:</p>
<pre>&lt;table border="1" rules="groups"&gt;
	&lt;colgroup&gt;&lt;/colgroup&gt;
	&lt;colgroup&gt;&lt;/colgroup&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="1" rules="groups">
<colgroup></colgroup>
<colgroup></colgroup>
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p><strong>8. border, border-color и border-style: </strong>стилове, който задават дебелина, цвят на рамката и стил.</p>
<p>a) border &#8211; всъщност обединяващ стил, който може да приема повече от един параметър. Ако му подадем размер в пиксели, то определя дебелината на рамката;<br />
б) border-color &#8211; приема за стойност цвят на рамката;<br />
в) border-style &#8211; приема една от следните стойности:<br />
- none &#8211; без рамка;<br />
- hidden &#8211; практически същото като none;<br />
- dotted &#8211; на точки;<br />
- dashed &#8211; на чертички;<br />
- solid &#8211; права линия (по подразбиране);<br />
- double &#8211; двойна права линия;<br />
- groove, ridge, inset, outset &#8211; специални триизмерни ефекти, които зависят пряко от border-color;<br />
- inherit &#8211; наследяване от родителски елемент (т.е. ако например таблицата е вътре в параграф, то наследява рамката на параграфа).</p>
<p>Пример:</p>
<pre>&lt;table style="border:7px; border-style:dashed; border-color:lightblue"&gt;
	&lt;thead&gt;
		&lt;tr&gt;
			&lt;th&gt;Колона 1&lt;/th&gt;
			&lt;th&gt;Колона 2&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td&gt;11&lt;/td&gt;
			&lt;td&gt;21&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td&gt;12&lt;/td&gt;
			&lt;td&gt;22&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table style="border:7px; border-style:dashed; border-color:lightblue" border="0">
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p>Същите стилове са приложими за цели редове или отделни клетки!</p>
<p>Вече можем да построим доста смислени таблици. Ето например списък от ученици:</p>
<pre>&lt;table rules="all" cellpadding="10" frame="box"
	   style="border-width:1px; border-style:solid; border-color:black;
		   width:100%; font-family:'Lucida Console', Monaco, monospace;font-size:12pt"&gt;
	&lt;colgroup style="background-color:wheat;
		         width:25px"&gt;&lt;/colgroup&gt;
	&lt;colgroup span="2" style="background-color:whitesmoke"&gt;&lt;/colgroup&gt;
	&lt;thead style="background-color:lightgrey; height:40px"&gt;
		&lt;tr&gt;
			&lt;th&gt;#&lt;/th&gt;
			&lt;th&gt;Лично име&lt;/th&gt;
			&lt;th&gt;Фамилно име&lt;/th&gt;
		&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
		&lt;tr&gt;
			&lt;td style="text-align:center"&gt;1&lt;/td&gt;
			&lt;td&gt;Анна&lt;/td&gt;
			&lt;td&gt;Петрова&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:center"&gt;2&lt;/td&gt;
			&lt;td&gt;Иван&lt;/td&gt;
			&lt;td&gt;Захариев&lt;/td&gt;
		&lt;/tr&gt;
		&lt;tr&gt;
			&lt;td style="text-align:center"&gt;3&lt;/td&gt;
			&lt;td&gt;Димитър&lt;/td&gt;
			&lt;td&gt;Михайлов&lt;/td&gt;
		&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<p><img class="aligncenter size-full wp-image-3207" title="Примерна таблица" src="http://www.cphpvb.net/wp-content/uploads/2009/08/tableexample.png" alt="Примерна таблица" width="438" height="168" /></p>
<p>* Някои от резултатите са показани с картинки, понеже wysiwyg редактора на блога автоматично променя стиловете.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3192-%d1%84%d0%be%d1%80%d0%bc%d0%b0%d1%82%d0%b8%d1%80%d0%b0%d0%bd%d0%b5-%d0%bd%d0%b0-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Фонове</title>
		<link>http://www.cphpvb.net/xhtml/3180-%d1%84%d0%be%d0%bd%d0%be%d0%b2%d0%b5/</link>
		<comments>http://www.cphpvb.net/xhtml/3180-%d1%84%d0%be%d0%bd%d0%be%d0%b2%d0%b5/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 14:18:09 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3180</guid>
		<description><![CDATA[Досега показахме как можем да сменяме цвета на текста, който пишем. Сега ще погледнем възможностите за създаване на фон зад текст и на различни обекти. 1. Фонов цвят на полета: &#60;p style="background-color:yellow"&#62; Текст на жълт фон &#60;span style="background-color:pink"&#62; с вмъкнат текст на розов фон &#60;/span&#62;. Самият текст по подразбиране е черен. &#60;/p&#62; Резултат: Текст на [...]]]></description>
			<content:encoded><![CDATA[<p>Досега показахме как можем да сменяме цвета на текста, който пишем. Сега ще погледнем възможностите за създаване на фон зад текст и на различни обекти.</p>
<p><strong>1. Фонов цвят на полета:</strong></p>
<pre>&lt;p style="background-color:yellow"&gt;
	Текст на жълт фон
	&lt;span style="background-color:pink"&gt;
		с вмъкнат текст на розов фон
	&lt;/span&gt;.
	Самият текст по подразбиране е черен.
&lt;/p&gt;</pre>
<p>Резултат:<span id="more-3180"></span></p>
<p style="background-color:yellow">Текст на жълт фон <span style="background-color:pink"> с вмъкнат текст на розов фон </span>. Самият текст по подразбиране е черен.</p>
<p><strong>2. Фонов цвят за таблици:</strong></p>
<pre>&lt;table border="1" style="background-color:pink"&gt;
&lt;caption&gt;Примерна таблица&lt;/caption&gt;
&lt;thead&gt;
	&lt;tr&gt;
		&lt;th&gt;Колона 1&lt;/th&gt;
		&lt;th&gt;Колона 2&lt;/th&gt;
	&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
	&lt;tr style="background-color:green"&gt;
		&lt;td&gt;Зелен&lt;/td&gt;
		&lt;td&gt;ред&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;12&lt;/td&gt;
		&lt;td style="background-color:grey"&gt;сива клетка&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;13&lt;/td&gt;
		&lt;td&gt;23&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table style="background-color:pink" border="1">
<caption>Розова таблица</caption>
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr style="background-color:green">
<td>Зелен</td>
<td>ред</td>
</tr>
<tr>
<td>12</td>
<td style="background-color:grey">сива клетка</td>
</tr>
<tr>
<td>13</td>
<td>23</td>
</tr>
</tbody>
</table>
<p><strong>3. Фонова картинка: </strong>Нека разгледаме следната картинка:</p>
<p><img class="aligncenter size-full wp-image-3181" title="фонова картинка" src="http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg" alt="фонова картинка" width="96" height="96" /><br />
Тя се намира на адрес: http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg<br />
Ще я използваме като фон на:</p>
<p>a) Параграфи и други полета:</p>
<pre>&lt;p style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg);
		  color:darkblue; font-weight:bold"&gt;
	Това е пример за параграф, чийто фон е картинка. Можете да използвате широк
        формат от изображения - jpg, gif, png, bmp и др.
&lt;/p&gt;</pre>
<p>Резултат:</p>
<p style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg); color:darkblue; font-weight:bold">Това е пример за параграф, чийто фон е картинка. Можете да използвате широк формат от 	изображения &#8211; jpg, gif, png, bmp и др.</p>
<p>б) Фон на таблица:</p>
<pre>&lt;table border="1"
style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg"&gt;
&lt;caption&gt;Примерна таблица&lt;/caption&gt;
&lt;thead&gt;
	&lt;tr&gt;
		&lt;th&gt;Колона 1&lt;/th&gt;
		&lt;th&gt;Колона 2&lt;/th&gt;
	&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
	&lt;tr&gt;
		&lt;td&gt;11&lt;/td&gt;
		&lt;td&gt;21&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;12&lt;/td&gt;
		&lt;td&gt;22&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg" border="1">
<caption>Примерна таблица</caption>
<thead>
<tr>
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p>в) Фон на ред от таблица:</p>
<pre>&lt;table border="1"&gt;
&lt;caption&gt;Примерна таблица&lt;/caption&gt;
&lt;thead&gt;
	&lt;tr style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg"&gt;
		&lt;th&gt;Колона 1&lt;/th&gt;
		&lt;th&gt;Колона 2&lt;/th&gt;
	&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
	&lt;tr&gt;
		&lt;td&gt;11&lt;/td&gt;
		&lt;td&gt;21&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;12&lt;/td&gt;
		&lt;td&gt;22&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="1">
<caption>Примерна таблица</caption>
<thead>
<tr style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg">
<th>Колона 1</th>
<th>Колона 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
</tbody>
</table>
<p>Аналогично може да се постави картинка и като фон на отделна клетка.</p>
<p><strong>4. Фон на цялата страница: </strong>Можете да направите фон и на цялата страница, като поставите стила в таг &lt;body&gt;. Важат както стиловете background-color, така и background-image:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="bg"&gt;
	&lt;head&gt;
		&lt;meta http-equiv="content-type" content="text/html; charset=UTF-8" /&gt;
		&lt;title&gt;Форматиране на текст и картинки&lt;/title&gt;
	&lt;/head&gt;
	&lt;body style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg)"&gt;

		&lt;p style="background-color:white"&gt;
			На тази страница има фонова картинка и параграф на бял фон.
			Както виждате картинката се слага една до друга по
			хоризонтала и по вертикала (т.нар. tile).
		&lt;/p&gt;
	&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Резултат:</p>
<p><a href="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot.PNG"><img class="aligncenter size-medium wp-image-3182" title="Фонова картинка на цяла страница" src="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot-260x300.PNG" alt="Фонова картинка на цяла страница" width="260" height="300" /></a></p>
<p><strong>5. Повторения: </strong>Чрез стил background-repeat можете да дефинирате споменатия по-горе &#8222;tile&#8220;. Възможностите са:</p>
<p>a) no-repeat: без повторение</p>
<pre>	&lt;body style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg);
				background-repeat:no-repeat"&gt;

		&lt;p style="background-color:white"&gt;
			На тази страница има фонова картинка и параграф на бял фон.
			Както виждате картинката се слага една до друга по
			хоризонтала и по вертикала (т.нар. tile).
		&lt;/p&gt;
	&lt;/body&gt;</pre>
<p>Резултат:<br />
<a href="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot2.PNG"><img class="aligncenter size-medium wp-image-3183" title="Фонова картинка без повторение" src="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot2-260x300.PNG" alt="Фонова картинка без повторение" width="260" height="300" /></a></p>
<p>б) repeat-x: повторение по хоризонтала:</p>
<pre>	&lt;body style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg);
				background-repeat:repeat-x"&gt;

		&lt;p style="background-color:white"&gt;
			На тази страница има фонова картинка и параграф на бял фон.
			Както виждате картинката се слага една до друга по
			хоризонтала и по вертикала (т.нар. tile).
		&lt;/p&gt;
	&lt;/body&gt;</pre>
<p>Резултат:<br />
<a href="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot3.PNG"><img class="aligncenter size-medium wp-image-3184" title="Фонова картинка с повторение по хоризонтала" src="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot3-260x300.PNG" alt="Фонова картинка с повторение по хоризонтала" width="260" height="300" /></a></p>
<p>в) repeat-y: повторение по вертикала:</p>
<pre>	&lt;body style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg);
				background-repeat:repeat-y"&gt;

		&lt;p style="background-color:white"&gt;
			На тази страница има фонова картинка и параграф на бял фон.
			Както виждате картинката се слага една до друга по
			хоризонтала и по вертикала (т.нар. tile).
		&lt;/p&gt;
	&lt;/body&gt;</pre>
<p><a href="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot4.PNG"><img class="aligncenter size-medium wp-image-3186" title="Фонова картинка с повторение по вертикала" src="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot4-260x300.PNG" alt="Фонова картинка с повторение по вертикала" width="260" height="300" /></a></p>
<p>г) repeat: по подразбиране &#8211; повтаря и по вертикала и по хоризонтала.</p>
<p><strong>6. Местене на фон:</strong> Чрез стил background-attachment може да променя начинът, по който фонът се държи при преминаване на следваща страница (т.нар. scroll). Това се налага когато обектите и текстът на страницата излиза извън екрана на браузъра. Възможните стойности са scroll (по подразбиране &#8211; картинката е статична и се движи заедно с текста) и fixed (картинката стои статично на екрана и текста и обектите се движат върху нея.</p>
<p><strong>7. Позициониране:</strong> Можем да позиционираме фоновата картинка чрез стил background-position. Той приема два параметъра &#8211; val1 и val2. Първият параметър отговаря за позиционирането по хоризонтала. Възможните параметри са left, center, right, брой пиксели или проценти. Вторият параметър отговаря за позиционирането по вертикала. Възможните стойности за val1 са top, center, bottom, брой пиксели или проценти.</p>
<p>Пример 1: Фонова картинка позиционирана долу в средата:</p>
<pre>	&lt;body style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg);
				background-repeat:no-repeat;
				background-position:center bottom"&gt;

		&lt;p&gt;
			FreeBSD® is an advanced operating system for modern server,
			desktop, and embedded computer platforms. FreeBSD's code base
			has undergone over thirty years of continuous development,
			improvement, and optimization. It is developed and maintained
			by a large team of individuals. FreeBSD provides advanced
			networking, impressive security features, and world class
			performance and is used by some of the world's busiest web
			sites and most pervasive embedded networking and storage devices.
		&lt;/p&gt;
	&lt;/body&gt;</pre>
<p>Резултат:</p>
<p><a href="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot5.PNG"><img class="aligncenter size-medium wp-image-3188" title="Фонова картинка позиционирана долу в средата" src="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot5-293x300.PNG" alt="Фонова картинка позиционирана долу в средата" width="293" height="300" /></a></p>
<p>Виждате, че това позициониране е спрямо обектите на екрана, а не самия екран на браузъра!</p>
<p>Пример 2: Картинка позиционирана на 20% по хоризонтала и 80% по вертикала:</p>
<pre>	&lt;body style="background-image:url(http://www.cphpvb.net/wp-content/uploads/2009/08/image.jpg);
				background-repeat:no-repeat;
				background-position:20% 80%"&gt;

		&lt;p&gt;
			FreeBSD® is an advanced operating system for modern server,
			desktop, and embedded computer platforms. FreeBSD's code base
			has undergone over thirty years of continuous development,
			improvement, and optimization. It is developed and maintained
			by a large team of individuals. FreeBSD provides advanced
			networking, impressive security features, and world class
			performance and is used by some of the world's busiest web
			sites and most pervasive embedded networking and storage devices.
		&lt;/p&gt;
	&lt;/body&gt;</pre>
<p><a href="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot6.PNG"><img class="aligncenter size-medium wp-image-3189" title="Фонова картинка позиционирана на 20 и 80 процента" src="http://www.cphpvb.net/wp-content/uploads/2009/08/screenshot6-255x300.PNG" alt="Фонова картинка позиционирана на 20 и 80 процента" width="255" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3180-%d1%84%d0%be%d0%bd%d0%be%d0%b2%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Таблици</title>
		<link>http://www.cphpvb.net/xhtml/3176-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b8/</link>
		<comments>http://www.cphpvb.net/xhtml/3176-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b8/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 17:39:14 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3176</guid>
		<description><![CDATA[Таблиците са често използвано средство за форматиране на HTML страници. Също така те са и едно от основните средства за постигане на ефектен дизайн. Таблиците приемат изключително класически смисъл &#8211; състоят се от редове (&#60;tr&#62; &#8211; table rows) и колони (&#60;td&#62; &#8211; table data). Самите таблици се ограждат в таг &#60;table&#62;. Има и специални стойности [...]]]></description>
			<content:encoded><![CDATA[<p>Таблиците са често използвано средство за форматиране на HTML страници. Също така те са и едно от основните средства за постигане на ефектен дизайн. Таблиците приемат изключително класически смисъл &#8211; състоят се от редове (&lt;tr&gt; &#8211; table rows) и колони (&lt;td&gt; &#8211; table data). Самите таблици се ограждат в таг &lt;table&gt;. Има и специални стойности &lt;th&gt; &#8211; table head или &#8222;заглавни колони&#8220;. Ще демонстрираме една примерна таблица и в последствие ще обясним всеки нейн елемент:<span id="more-3176"></span></p>
<pre>&lt;table border="1"&gt;
&lt;caption&gt;Примерна таблица&lt;/caption&gt;
&lt;thead&gt;
	&lt;tr&gt;
		&lt;th&gt;Заглавие на колона 1&lt;/th&gt;
		&lt;th&gt;Заглавие на колона 2&lt;/th&gt;
	&lt;/tr&gt;
&lt;/thead&gt;

&lt;tfoot&gt;
	&lt;tr&gt;
		&lt;th colspan="2"&gt;Аз направих тази таблица&lt;/th&gt;
	&lt;/tr&gt;
&lt;/tfoot&gt;

&lt;tbody&gt;
	&lt;tr&gt;
		&lt;td&gt;11&lt;/td&gt;
		&lt;td&gt;21&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;12&lt;/td&gt;
		&lt;td&gt;22&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;13&lt;/td&gt;
		&lt;td&gt;23&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="1">
<caption>Примерна таблица</caption>
<thead>
<tr>
<th>Заглавие на колона 1</th>
<th>Заглавие на колона 2</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="2">Аз направих тази таблица</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
<tr>
<td>13</td>
<td>23</td>
</tr>
</tbody>
</table>
<p>Тагът &lt;table border=&#8220;1&#8243;&gt; означава, че започваме да &#8222;строим&#8220; таблица, която ще бъде с рамка с дебелина 1. Следващия таг &lt;caption&gt; обозначава &#8222;заглавие&#8220; на таблицана &#8211; текст, който стои цетрално над и извън таблицата.</p>
<p>Тагът &lt;thead&gt; стартира т.нар. &#8222;заглавни редове&#8220; на таблицата. Всяка информация изписана вътре в този таг ще бъде в началото на таблицата. Вътре в &lt;thead&gt; ние отваряме първи ред на таблицата чрез таг &lt;tr&gt;. Вижате, че в първи ред изброяваме две стойности &#8211; заглавните тагове &lt;th&gt;. В тях изписваме като обикновен текст заглавията на колоните. Както виждате от визуализацията &#8211; заглавния текст излиза с удебелен шрифт. Обикновено го използваме за даване на наименование (заглавие) на колоните.</p>
<p>Следва таг &lt;tfoot&gt; &#8211; table footer. Всяка информация записана в този таг ще се визуализира винаги в края на таблицата. Виждате, че там също сме отворили нов ред &lt;tr&gt;. В него сме записали само един заглавен таг &lt;th&gt;, но сме му дали параметър colspan=&#8220;2&#8243;. Това означава, че следващата информация ще се визуализира като бъдат обединени две поредни клетки. Както виждате от резултата &#8211; текстът &#8222;Аз направих тази таблица&#8220; се визуализира в две клетки, вместо в една. Обикновено използваме &lt;tfoot&gt; за даване на допълнителна уточняваща информация за данните в таблицата.</p>
<p>Накрая в таг &lt;tbody&gt; се визуализира конкретното съдържание на таблицата. Виждате, че последователно сме отворили три тага &lt;tr&gt;, т.е. три реда в таблицата. Всеки ред съдържа по две стойности &lt;td&gt;, в които е записан съответен текст.</p>
<p>Добре е винаги да следим броя на колоните когато създаваме нов ред. В горния пример ако бяхме забравили &#8222;colspan=2&#8243; в реда от &lt;tfoot&gt;, то щеше да се получи следното:</p>
<pre>&lt;table border="1"&gt;
&lt;caption&gt;Примерна таблица&lt;/caption&gt;
&lt;thead&gt;
	&lt;tr&gt;
		&lt;th&gt;Заглавие на колона 1&lt;/th&gt;
		&lt;th&gt;Заглавие на колона 2&lt;/th&gt;
	&lt;/tr&gt;
&lt;/thead&gt;

&lt;tfoot&gt;
	&lt;tr&gt;
		&lt;th&gt;Аз направих тази таблица&lt;/th&gt;
	&lt;/tr&gt;
&lt;/tfoot&gt;

&lt;tbody&gt;
	&lt;tr&gt;
		&lt;td&gt;11&lt;/td&gt;
		&lt;td&gt;21&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;12&lt;/td&gt;
		&lt;td&gt;22&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr&gt;
		&lt;td&gt;13&lt;/td&gt;
		&lt;td&gt;23&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="1">
<caption>Примерна таблица</caption>
<thead>
<tr>
<th>Заглавие на колона 1</th>
<th>Заглавие на колона 2</th>
</tr>
</thead>
<tfoot>
<tr>
<th>Аз направих тази таблица</th>
</tr>
</tfoot>
<tbody>
<tr>
<td>11</td>
<td>21</td>
</tr>
<tr>
<td>12</td>
<td>22</td>
</tr>
<tr>
<td>13</td>
<td>23</td>
</tr>
</tbody>
</table>
<p>Виждате, че като, че ли има липсваща клетка в таблицата ни. Обикновено това не е ефектът, който търсим.</p>
<p>Освен да обединяваме колони &#8211; можем да обединяваме и редове. Ето един пример:</p>
<pre>&lt;table border="1"&gt;
&lt;tbody&gt;
	&lt;tr&gt;
		&lt;td rowspan="3"&gt;Ляво&lt;/td&gt;
		&lt;td&gt;Горе&lt;/td&gt;
		&lt;td rowspan="3"&gt;Дясно&lt;/td&gt;
	&lt;/tr&gt;

	&lt;tr&gt;
		&lt;td&gt;Център&lt;/td&gt;
	&lt;/tr&gt;

	&lt;tr&gt;
		&lt;td&gt;Долу&lt;/td&gt;
	&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre>
<p>Резултат:</p>
<table border="1">
<tbody>
<tr>
<td rowspan="3">Ляво</td>
<td>Горе</td>
<td rowspan="3">Дясно</td>
</tr>
<tr>
<td>Център</td>
</tr>
<tr>
<td>Долу</td>
</tr>
</tbody>
</table>
<p>Очевидно е, че с Rowspan като, че ли се работи доста по-трудно. Особено при по-големи таблици е доста трудно да се следят редовете, които са обединени. За щастие има редица визуални редактори на HTML като FrontPage и Dreamweaver, които значително облекчават работата на разработчиците. В следваща статия ще разгледаме допълнителни възможности за форматиране на таблици.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3176-%d1%82%d0%b0%d0%b1%d0%bb%d0%b8%d1%86%d0%b8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Списъци</title>
		<link>http://www.cphpvb.net/xhtml/3164-%d1%81%d0%bf%d0%b8%d1%81%d1%8a%d1%86%d0%b8/</link>
		<comments>http://www.cphpvb.net/xhtml/3164-%d1%81%d0%bf%d0%b8%d1%81%d1%8a%d1%86%d0%b8/#comments</comments>
		<pubDate>Wed, 26 Aug 2009 14:04:51 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3164</guid>
		<description><![CDATA[Когато ни се налага да изброяваме поредица от елементи, то ние използваме т.нар. &#8222;списъци&#8220;. Езикът HTML позволява доста възможности за осъществяване на такава функционалност. 1. Подредени списъци: Може би са по-добре познати са като &#8222;номерирани списъци&#8220;. Чрез тях изреждаме стойности една след друга, като всяка си има пореден уникален номер. По подразбиране номерът следва числата [...]]]></description>
			<content:encoded><![CDATA[<p>Когато ни се налага да изброяваме поредица от елементи, то ние използваме т.нар. &#8222;списъци&#8220;. Езикът HTML позволява доста възможности за осъществяване на такава функционалност.</p>
<p><strong>1. Подредени списъци</strong>: Може би са по-добре познати са като &#8222;номерирани списъци&#8220;. Чрез тях изреждаме стойности една след друга, като всяка си има пореден уникален номер. По подразбиране номерът следва числата 1, 2, 3, 4, &#8230;<span id="more-3164"></span></p>
<p>Пример:</p>
<pre>&lt;div style="margin-left:50px"&gt;Нужни продукти:
&lt;ol&gt;
	&lt;li&gt;Картофи&lt;/li&gt;
	&lt;li&gt;Моркови&lt;/li&gt;
	&lt;li&gt;Зеле&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="margin-left: 50px;">Нужни продукти:</p>
<ol>
<li>Картофи</li>
<li>Моркови</li>
<li>Зеле</li>
</ol>
</div>
<p>Съществуват и други видове номерация. Тя зависи от стойността на стил <span>&#8222;list-style-type&#8220;</span>. Възможните стойности са &#8216;<span>lower-alpha</span>&#8216; (малки букви a,b,c,d,&#8230;), &#8216;<span>upper-alpha</span>&#8216; (главни букви A,B,C,D,&#8230;), &#8216;<span>lower-roman</span>&#8216; (малки римски числа i,ii,iii,iv,v,&#8230;), &#8216;<span>upper-roman</span>&#8216; (главни римски числа I,II,III,IV,V,&#8230;) и &#8216;decimal&#8217; (по подразбиране числа 1,2,3,4,&#8230;). Ето един пример:</p>
<pre>&lt;div style="margin-left:50px"&gt;Нужни продукти:
&lt;ol style="list-style-type:upper-roman"&gt;
	&lt;li&gt;Картофи&lt;/li&gt;
	&lt;li&gt;Моркови&lt;/li&gt;
	&lt;li&gt;Зеле&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="margin-left:50px">Нужни продукти:</p>
<ol style="list-style-type:upper-roman">
<li>Картофи</li>
<li>Моркови</li>
<li>Зеле</li>
</ol>
</div>
<p>Възможно е да приложите същата промяна на стил и на елементите &lt;li&gt;, но това е много по-рядко практикувано, понеже не е естествено номерацията да се променя вътре в самия списък. Имаме възможност и за <strong>вложени списъци</strong>:</p>
<pre>&lt;div style="margin-left:50px"&gt;Задачи:
&lt;ol style="list-style-type:decimal"&gt;
	&lt;li&gt;Задача 1
		&lt;ol style="list-style-type:lower-alpha"&gt;
			&lt;li&gt;Подточка a&lt;/li&gt;
			&lt;li&gt;Подточка b&lt;/li&gt;
			&lt;li&gt;Подточка c&lt;/li&gt;
		&lt;/ol&gt;
	&lt;/li&gt;
	&lt;li&gt;Задача 2
		&lt;ol style="list-style-type:lower-alpha"&gt;
			&lt;li&gt;Подточка a&lt;/li&gt;
			&lt;li&gt;Подточка b&lt;/li&gt;
			&lt;li&gt;Подточка c&lt;/li&gt;
		&lt;/ol&gt;
	&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="margin-left:50px">Задачи:</p>
<ol style="list-style-type:decimal">
<li>Задача 1
<ol style="list-style-type:lower-alpha">
<li>Подточка a</li>
<li>Подточка b</li>
<li>Подточка c</li>
</ol>
</li>
<li>Задача 2
<ol style="list-style-type:lower-alpha">
<li>Подточка a</li>
<li>Подточка b</li>
<li>Подточка c</li>
</ol>
</li>
</ol>
</div>
<p><strong>2. Неподредени списъци</strong>: Това са списъците, в които просто изреждаме стойностите и те нямат уникална номерация.</p>
<p>Пример:</p>
<pre>&lt;div style="margin-left:50px"&gt;Необходими продукти:
&lt;ul&gt;
	&lt;li&gt;Картофи&lt;/li&gt;
	&lt;li&gt;Моркови&lt;/li&gt;
	&lt;li&gt;Зеле&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="margin-left:50px">Необходими продукти:</p>
<ul>
<li>Картофи</li>
<li>Моркови</li>
<li>Зеле</li>
</ul>
</div>
<p>И тук е валиден стилът list-style-type. Възможните стойности са circle, square и disc. Ще демонстрираме тези стилове директно чрез промяна на изброените стойности:</p>
<pre>&lt;div style="margin-left:50px"&gt;Необходими продукти:
&lt;ul&gt;
	&lt;li style="list-style-type:circle"&gt;Картофи&lt;/li&gt;
	&lt;li style="list-style-type:square"&gt;Моркови&lt;/li&gt;
	&lt;li style="list-style-type:disc"&gt;Зеле&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="margin-left:50px">Необходими продукти:</p>
<ul>
<li style="list-style-type:circle">Картофи</li>
<li style="list-style-type:square">Моркови</li>
<li style="list-style-type:disc">Зеле</li>
</ul>
</div>
<p>Тук ни е дадена възможност и за още един стил &#8211; list-style-image. Като стойност се приема релативен или пълен URL до картинка. Така в неподредения списък вместо disc, square или circle ще се появи посочената от нас картинка.</p>
<p><strong>3. Списъци с обяснения</strong>: Използват се за &#8222;дефиниране&#8220; на обекти. Например когато желаем да обясним дадени термини. Списъците с обяснения се ограждат с &lt;dl&gt; (definition list), последвано от двойки &lt;dt&gt; (definition term) и &lt;dd&gt; (definition description).</p>
<p>Пример:</p>
<pre>&lt;div style="margin-left:50px"&gt;Напитки:
&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;Газирана безалкохолна напитка&lt;/dd&gt;
&lt;/dl&gt;
&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="margin-left:50px">Напитки:</p>
<dl>
<dt>Бира</dt>
<dd>Газирано слабо алкохолно пиво</dd>
<dt>Ракия</dt>
<dd>Силно спиртно алкохолно питие</dd>
<dt>Кола</dt>
<dd>Газирана безалкохолна напитка</dd>
</dl>
</div>
<p><strong>4. Вложени списъци:</strong> Вече показахме пример с подредени списъци. Можем и още по-общо да влагаме и различни типове списъци. Ето един пример:</p>
<pre>&lt;div style="margin-left:50px"&gt;Програма:
&lt;ul&gt;
   &lt;li&gt;Понеделник:
        &lt;ol&gt;
            &lt;li&gt;Числени методи&lt;/li&gt;
            &lt;li&gt;Дискретна математика&lt;/li&gt;
        &lt;/ol&gt;
	&lt;/li&gt;
   &lt;li&gt;Сряда:
        &lt;ol&gt;
           &lt;li&gt;Числени методи&lt;/li&gt;
           &lt;li&gt;Програмиране на C#&lt;/li&gt;
           &lt;li&gt;Частни диференциални уравнения&lt;/li&gt;
       &lt;/ol&gt;
	&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="margin-left:50px">Програма:</p>
<ul>
<li>Понеделник:
<ol>
<li>Числени методи</li>
<li>Дискретна математика</li>
</ol>
</li>
<li>Сряда:
<ol>
<li>Числени методи</li>
<li>Програмиране на C#</li>
<li>Частни диференциални уравнения</li>
</ol>
</li>
</ul>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3164-%d1%81%d0%bf%d0%b8%d1%81%d1%8a%d1%86%d0%b8/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Стандартни шрифтове</title>
		<link>http://www.cphpvb.net/xhtml/3132-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%bd%d0%b8-%d1%88%d1%80%d0%b8%d1%84%d1%82%d0%be%d0%b2%d0%b5/</link>
		<comments>http://www.cphpvb.net/xhtml/3132-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%bd%d0%b8-%d1%88%d1%80%d0%b8%d1%84%d1%82%d0%be%d0%b2%d0%b5/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 20:43:16 +0000</pubDate>
		<dc:creator>Филип Петров</dc:creator>
				<category><![CDATA[ХHTML/JS]]></category>

		<guid isPermaLink="false">http://www.cphpvb.net/?p=3132</guid>
		<description><![CDATA[За разлика от стандартните текстови документи, в правенето на интернет страница се залага изключително много на визуалното представяне. Доста голяма роля за него играят шрифтовете. Естествено целта на тези статии не са да обучават на дизайн и естетика. Затова ще се фокусираме главно към технологията. Подбора и комбинацията от шрифтове ще оставим за други специализирани [...]]]></description>
			<content:encoded><![CDATA[<p>За разлика от стандартните текстови документи, в правенето на интернет страница се залага изключително много на визуалното представяне. Доста голяма роля за него играят шрифтовете. Естествено целта на тези статии не са да обучават на дизайн и естетика. Затова ще се фокусираме главно към технологията. Подбора и комбинацията от шрифтове ще оставим за други специализирани курсове.</p>
<p>Вече показахме възможности за <a href="../xhtml/3103-%D0%B4%D0%B5%D0%BA%D0%BE%D1%80%D0%B8%D1%80%D0%B0%D0%BD%D0%B5-%D0%BD%D0%B0-%D1%82%D0%B5%D0%BA%D1%81%D1%82-%D0%B8-%D0%BF%D0%BE%D0%BB%D0%B5%D1%82%D0%B0/" target="_blank">декориране на текст</a>, като например често използваното подчертаване. Освен това още в началото казахме как можем да удебеляваме текст чрез таг &lt;b&gt; и да го правим в курсив чрез таг &lt;i&gt;.  Всъщост удебеляването и курсива могат да се постигнат също чрез стилове:<span id="more-3132"></span></p>
<pre>&lt;div style="font-style:italic"&gt;Този текст е в курсив&lt;/div&gt;
&lt;div style="font-weight:bold"&gt;този текст е удебелен&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="font-style:italic">Този текст е в курсив</div>
<div style="font-weight:bold">този текст е удебелен</div>
<p>Ясно е, че е доста по-лесно използването на &lt;b&gt; и &lt;i&gt;. Въпреки това бихме искали да насърчим използването на стилове. Ще разберете защо след като задълбаем повече във възможностите на CSS (Cascaded Style Sheets или Каскадни Стилове).</p>
<p>Стигнахме и до същината на текущата статия &#8211; смяната на шрифт. В по-старите версии на HTML това е ставало чрез таг &lt;font&gt;, но той вече е отменен и на негово място се използват стилове. Истината е, че браузърите все още го поддържат напълно и все още се употребява доста често. Въпреки това няма да го разглеждаме и ще наблегнем на съвременния вариант с използване на стилове. Ето как можем да сменяме шрифт:</p>
<pre>&lt;p&gt;Ето как можем да променим
	&lt;span style="font-family:Arial"&gt;
		шрифт на текст в arial
	&lt;/span&gt;
	или например във
	&lt;span style="font-family:verdana"&gt;
		шрифт verdana.
	&lt;/span&gt;&lt;br /&gt;
	Шрифтът на повечето браузъри по подразбиране е
	&lt;span style="font-family:times new roman"&gt;
		times new roman
	&lt;/span&gt;
&lt;/p&gt;</pre>
<p>Резултат:</p>
<p>Ето как можем да променим<span style="font-family:Arial"> шрифт на текст в arial</span> или например във <span style="font-family:verdana"> шрифт verdana.</span><br />
Шрифтът на повечето браузъри по подразбиране е <span style="font-family:times new roman"> times new roman</span></p>
<p>Много важно е да дефинираме шрифтът с който пишем в HTML страницата си. Дори да използваме шрифт по подразбиране &#8211; не може да сме сигурни дали потребителят не го е сменил. Това например в Internet Explorer става чрез &#8222;Tools &gt; Internet Options &gt; Fonts&#8220;. Ако потребителя е сменил шрифта си по подразбиране, то не сме сигурни как ще изглежда нашата интернет страница. Затова допълнителният труд на дефинирането на шрифт никога не е излишен. Силно бихме искали да ви насърчим винаги да дефинирате шрифта, който желаете да използвате!</p>
<p>Следващият важен момент е размера на шрифта. Често ни се налага да пишем някои изречения по-големи от други. Понякога просто искаме шрифта да е по-едър, за да може да се чете по-добре или напротив &#8211; да го направим по-малък, когато трябва да се доуточнява. Всичко това се извършва със стил font-size. Класическото използване е в &#8222;points&#8220; &#8211; така както се пише например в Microsoft Word:</p>
<pre>&lt;p&gt;&lt;span style="font-size:10pt"&gt;
	Този шрифт е с размер 10pt
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size:24pt"&gt;
	а този е с размер 24pt
&lt;/span&gt;
&lt;/p&gt;</pre>
<p>Резултат:</p>
<p><span style="font-size:10pt">Този шрифт е с размер 10pt</span><br />
<span style="font-size:24pt">а този е с размер 24pt</span></p>
<p>Възможно е да се използват и пиксели като размерност. Впрочем това е по-добре от гледна точка на напасване на текста към полетата, в които пишем. Винаги е по-добре да използваме едни и същи мерни единици за оразмеряване на обектите.</p>
<p>Рядко използвана, но интересна възможност е използването на &#8222;малки главни букви&#8220;. Това е специфичен стил на писане на текст, който понякога се използва за по-добра четимост &#8211; например при бутони, менюта и др. Най-лесно ще е да го демонстрираме чрез пример:</p>
<pre>&lt;div style="font-variant:small-caps"&gt;Този шрифт е съставен от "малки главни букви"&lt;/div&gt;</pre>
<p>Резултат:</p>
<div style="font-variant:small-caps">Този шрифт е съставен от &#8222;малки главни букви&#8220;</div>
<p>Виждате, че всички малки букви са сталани главни, а главните остават по-големи от тях. Досещате се, че това можеше да се постигне с игра между писане само с главни букви и смяна на големината на шрифта. Този стил обаче ни улеснява.</p>
<p>Остава да отговорим на важен въпрос &#8211; кои шрифтове са позволени? Истината е, че можем да използваме всеки възможен TTF (true type font). CSS ни дава възможност даже да добавяме шрифтове, които не са налични на компютъра на потребителя, като ги качваме като файлове на сървъра. Тази практика обаче все още е спорна.</p>
<p>За напълно стандартни можем да сметнем следните шрифтове: arial, arial black, comic sans ms, courier, courier new, georgia, helvetica, impact, palatino, times new roman, trebuchet ms, verdana. Те са налични както в Windows, така и в MacOS и Linux. Затова можем да сме спокойни, че потребителите винаги ще могат да визуализират страниците ни по един и същи начин. За всеки един друг шрифт ние препоръчваме да качвате шрифта на сървъра и да го добавяте като &#8222;downloadable font&#8220;. За това ще напиша отделна статия по-късно. Засега можете да използвате следните стилове като ги сметнете за напълно стандартни и съвместими с всички браузъри и операционни системи:</p>
<p>font-family: Arial, Helvetica, sans-serif;<br />
font-family: &#8216;Arial Black&#8217;, Gadget, sans-serif;<br />
font-family: &#8216;Bookman Old Style&#8217;, serif;<br />
font-family: &#8216;Comic Sans MS&#8217;, cursive;<br />
font-family: Courier, monospace;<br />
font-family: &#8216;Courier New&#8217;, Courier, monospace;<br />
font-family: Garamond, serif;<br />
font-family: Georgia, serif;<br />
font-family: Impact, Charcoal, sans-serif;<br />
font-family: &#8216;Lucida Console&#8217;, Monaco, monospace;<br />
font-family: &#8216;Lucida Sans Unicode&#8217;, &#8216;Lucida Grande&#8217;, sans-serif;<br />
font-family: &#8216;MS Sans Serif&#8217;, Geneva, sans-serif;<br />
font-family: &#8216;MS Serif&#8217;, &#8216;New York&#8217;, sans-serif;<br />
font-family: &#8216;Palatino Linotype&#8217;, &#8216;Book Antiqua&#8217;, Palatino, serif;<br />
font-family: Symbol, sans-serif;<br />
font-family: Tahoma, Geneva, sans-serif;<br />
font-family: &#8216;Times New Roman&#8217;, Times, serif;<br />
font-family: &#8216;Trebuchet MS&#8217;, Helvetica, sans-serif;<br />
font-family: Verdana, Geneva, sans-serif;<br />
font-family: Webdings, sans-serif;<br />
font-family: Wingdings, &#8216;Zapf Dingbats&#8217;, sans-serif;</p>
<p>Разделителя на шрифтовете със запетая означава, че &#8222;ако първия го няма, то ще се използва втория, и т.н.&#8220;. Използвайки горните стилове ще сте сигурни, че браузъра винаги ще визуализира вашия текст и дори желания шрифт да липсва, то все пак ще се използва някой сходен.</p>
<p>П.П. Списъкът е взет от <a href="http://www.fonttester.com/help/list_of_web_safe_fonts.html">fonttester</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cphpvb.net/xhtml/3132-%d1%81%d1%82%d0%b0%d0%bd%d0%b4%d0%b0%d1%80%d1%82%d0%bd%d0%b8-%d1%88%d1%80%d0%b8%d1%84%d1%82%d0%be%d0%b2%d0%b5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

