home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 October / PCWorld_2004-10_cd.bin / novinky / interval / clanek06.htm < prev    next >
Encoding:
Extensible Markup Language  |  2004-09-12  |  24.7 KB  |  283 lines

  1. <?xml version='1.0' encoding='windows-1250'?>
  2. <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
  3. <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='cs' lang='cs'>
  4. <head>
  5. <meta http-equiv='Content-Type' content='text/html; charset=windows-1250' />
  6. <meta http-equiv='Content-language' content='cs' />
  7. <meta http-equiv='Cache-control' content='no-cache' />
  8. <meta http-equiv='Pragma' content='no-cache' />
  9. <meta http-equiv='Expires' content='-1' />
  10. <meta name='robots' content='index,follow' />
  11. <meta name='googlebot' content='index,follow,snippet,noarchive' />
  12. <meta name='description' content='Interval.cz - Internetov² magazφn o webdesignu, v²voji webov²ch aplikacφ a e-komerci. VÜe podstatnΘ o technologiφch XHTML, HTML, CSS, DHTML, JavaScript, XML, .NET, ASP, PHP, Java, J2ME, SQL, WAP...' />
  13. <meta name='keywords' content='Interval' />
  14. <meta name='ICBM' content='49.1915, 16.626' />
  15. <meta name='DC.Title' content='Interval.cz' />
  16. <meta name='DC.Identifier' content='http://interval.cz' />
  17. <meta name='DC.Language' content='cs' />
  18. <meta http-equiv='pics-label' content='(pics-1.1 "http://www.icra.org/ratingsv02.html" comment "ICRAonline EN v2.0" l gen true for "http://interval.cz" r (nz 1 vz 1 lz 1 oz 1 cz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://interval.cz" r (n 0 s 0 v 0 l 0))' />
  19. <meta http-equiv='imagetoolbar' content='no' />
  20. <meta http-equiv='MSThemeCompatible' content='no' />
  21. <meta name='MSSmartTagsPreventParsing' content='true' />
  22. <link rel='shortcut icon' type='image/x-icon' href='favicon.ico' />
  23. <link rel='alternate' type='application/rss+xml' title='RSS Interval.cz' href='http://interval.cz/__rss/rss.asp' />
  24. <link rel='home' href='http://interval.cz' />
  25. <link rel='search' href='http://interval.cz/search_ex.asp' />
  26. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/html4.css' />
  27. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/basic_all.css' />
  28. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/homepage_all.css' />
  29. <link rel='stylesheet' type='text/css' media='all' href='__services/styles/articles_all.css' />
  30. <link rel='stylesheet' type='text/css' media='print' href='__services/styles/articles_print.css' />
  31. <title>Interval.cz - webdesign a e-komerce denn∞</title>
  32. </head>
  33. <body class='interval interval-articles'>
  34. <div id='page-header'><div id='interval-logo'><h1 title='Interval.cz - denn∞ o tvorb∞ webu a e-komerci (logo & index link)'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz'>Interval.cz<span></span></a></h1></div><div id='advertising-page-header'></div><div class='page-maker'> </div></div>
  35. <div id='page-topmenu'><h2 class='textversion'>Navigace</h2><div id='page-mainmenu'><h3 class='textversion'>Hlavnφ menu</h3><ul><li class='first selected'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz'>Titulnφ strana</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=14'>Webdesign</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=15'>V²voj aplikacφ</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=18'>E-komerce</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=17'>Nßstroje</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz?idcategory=16'>Magazφn</a></li><li class='right selected'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.inshop.cz'>Knihkupectvφ</a></li><li class='right'><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interforum.interval.cz'>Interforum</a></li></ul></div><div id='page-mainmenu-maker'> </div></div>
  36. <div id='page-body'><div id='page-left'><div id='article'>
  37.  
  38.  
  39. <h2>Kurz SVG - o°ezßvßnφ a maskovßnφ</h2>
  40. <p id='prepend'>Standard SVG obsahuje kompletnφ sadu grafick²ch nßstroj∙ a nenφ mu cizφ ₧ßdn² postup vyu₧φvan² profesionßly. Rozdφl mezi formßtem SVG a zbytkem sv∞ta, lidov∞ °eΦno, se podobß rozdφlu mezi Mercedesem a Trabantem. V tomto Φlßnku si tedy probereme o°ezßvßnφ a maskovßnφ, co₧ jsou velmi silnΘ grafickΘ nßstroje, umo₧≥ujφcφ podstatn∞ m∞nit vzhled dokumentu.</p>
  41.  
  42. <p>Maskovßnφ a o°ezßvßnφ jsou sice podobnΘ grafickΘ operace, ale s pom∞rn∞ velk²m kvalitativnφm rozdφlem:</p>
  43.  
  44. <div class='list'>
  45. <ul>
  46. <li><em>O°ezovΘ cesty</em> (clipping paths) - dobrß p°edstava je takovß, jako by o°ezßvan² objekt byl podle obrysu tΘto vektorovΘ cesty vyst°i₧en z papφru n∙₧kami. Slovy modernφ poΦφtaΦovΘ grafiky, o°ezov² obrys p°edstavuje jednobitovou masku, pod kterou jsou maskovanΘ objekty vykresleny, zatφmco vn∞ nikoli.</li>
  47. <li><em>Masky</em> (masks) - na rozdφl od prostΘho o°ezu m∙₧e mφt ka₧d² bod v masce r∙zn² stupe≥ pr∙hlednosti (typicky bude maska osmibitovß = 256 ·rovnφ pr∙hlednosti), v tomto p°φpad∞ tedy masku netvo°φ obrys maskovacφch objekt∙, ale jas jejich v²pln∞. Uv∞domte si i vyÜÜφ v²poΦetnφ nßroΦnost prßce s maskami, to je pravd∞podobn∞ dalÜφ d∙vod, proΦ jsme Φekali na podobnΘ funkce tak dlouho.</li>
  48. </ul>
  49. </div>
  50.  
  51. <p>Pro lepÜφ p°edstavu mohu vzφt p°φklad z oblasti profesionßlnφ grafiky. O°ezovΘ cesty, historicky samoz°ejm∞ starÜφ, p°edstavuje nap°φklad (dodnes dosti rozÜφ°en² zp∙sob) vklßdßnφ obrßzk∙ EPS s nastavenou o°ezovou cestou do sßzecφho programu QuarkXpress. Maskovßnφ na osobnφ poΦφtaΦe pravd∞podobn∞ p°inesl jako prvnφ slavn² Adobe Photoshop - sice ji₧ pom∞rn∞ brzy (od verze 3), ale vklßdßnφ do strßnek se zachovßnφm pr∙hlednosti dovolujφ a₧ nov∞jÜφ programy. Mßte-li zpr∙hledn∞nou obrazovou vrstvu s maskou v souboru formßtu PSD, m∙₧ete takov² soubor umφstit kup°φkladu do InDesignu od verze 2 nebo Corelu (tuÜφm od verze 9), kde bude maskovan² obraz stejn∞ pr∙hledn² jako v bitmapovΘm editoru.</p>
  52.  
  53. <h3>SluΦovßnφ maskovanΘho objektu s pozadφm</h3>
  54. <p>TakzvanΘ <em>sluΦovßnφ</em> (simple alpha compositing) je d∙le₧it² termφn, kter² p°edstavuje postup, jak se maskovanΘ objekty vykreslujφ do ji₧ existujφcφho pozadφ. Maskovan² objekt je slouΦen (smφchßn) s existujφcφm pozadφm podle nßsledujφcφho vzorce, kter² ukazuje, jak se spoΦφtß v²slednß hodnota bodu pozadφ p°i slouΦenφ s bodem vykreslovanΘho elementu, jen₧ je ovlivn∞n maskou Φi pr∙hlednostφ:</p>
  55.  
  56. <div class='sample'>
  57.    Pr' = (1 - Ea) x Pr + Er
  58. <br />   Pg' = (1 - Ea) x Pg + Eg
  59. <br />   Pb' = (1 - Ea) x Pb + Eb
  60. <br />   Pa' = 1 - (1 - Ea) x (1 - Pa)
  61. </div>
  62.  
  63. <div class='list'>
  64. <ul>
  65. <li><em>Er</em>, <em>Eg</em>, <em>Eb</em> - barva Elementu x Ea</li>
  66. <li><em>Ea</em> - pr∙hlednost Elementu</li>
  67. <li><em>Pr</em>, <em>Pg</em>, <em>Pb</em> - barva Pozadφ x Pa</li>
  68. <li><em>Pa</em> - pr∙hlednost Pozadφ</li>
  69. <li><em>Pr'</em>, <em>Pg'</em>, <em>Pb'</em> - barva Pozadφ po slouΦenφ x Pa'</li>
  70. <li><em>Pa'</em> - pr∙hlednost Pozadφ po slouΦenφ</li>
  71. </ul>
  72. </div>
  73.  
  74. <p>Pozor, aby se dosßhlo elegantnφho zßpisu, hodnoty barev jsou psßny jako <em>p°ednßsobenΘ</em> (premultiplied) hodnotou pr∙hlednosti (alpha).</p>
  75.  
  76. <h3>Co je "viewport"</h3>
  77. <p>Na ·vod problematiky si budeme muset zavΘst jeden teoretick² pojem. V jakΘmkoli bod∞ kresby lze vytvo°it takzvan² <strong>viewport</strong>, co₧ je rßm, kter² Φinφ do n∞ho vlo₧enou grafiku do urΦitΘ mφry nezßvislou na nad°azenΘm obsahu. Aby n∞jak² prvek mohl vytvo°it viewport, musφ mφt atributy "x", "y", "width" a "height".</p>
  78. <p>P°edevÜφm se uvnit° viewportu automaticky vytvo°φ nov² sou°adnicov² systΘm, kter² bude shodn² se systΘmem aktußlnφm v mφst∞ vlo₧enφ s tφm rozdφlem, ₧e se zm∞nφ poΦßtek sou°adnic - posune se na bod "x", "y" - m∞°eno v systΘmu aktußlnφm v mφst∞ vlo₧enφ. Dßle se logicky zm∞nφ v²znam procentnφch jednotek, tak₧e 100 % bude odpovφdat plnΘ Üφ°ce Φi v²Üce novΘho boxu. Sou°adnicov² systΘm lze navφc p°edefinovat nepovinn²m atributem "viewBox = (x y Üφ°ka v²Üka)" (viz tΘ₧ <a href='http://interval.cz/clanek.asp?article=3460' title='Hejral, Martin: Kurz SVG - struktura dokumentu, zobrazovacφ a vykreslovacφ model'>p°ehled atribut∙ elementu <code>svg</code></a>). Dßle se na takov² prvek aplikujφ atributy "overflow" a "clip", popsanΘ nφ₧e.</p>
  79. <p>Nov² viewport vytvß°ejφ nßsledujφcφ prvky <code>svg</code>, <code>symbol</code> (kdekoliv je vyvolßn prvkem <code>use</code>), <code>image</code>, <code>pattern</code>, <code>marker</code> a <code>foreignObject</code> (vklßdßnφ obsahu v jinΘm XML jazyce).</p>
  80.  
  81. <h3>O°ezßvßnφ</h3>
  82. <p>O°ezßvßnφ je starÜφ a jednoduÜÜφ metodou vykreslovßnφ Φßsti dokumentu urΦenΘ pomocφ hraniΦnφ k°ivky.</p>
  83.  
  84. <h4>Atributy "overflow" a "clip"</h4>
  85. <p>P°esahuje-li obsah sv∙j rodiΦovsk² rßmec, podporuje SVG jako₧to W3C standard i CSS2 atributy "overflow" a "clip", ovliv≥ujφcφ p°etΘkßnφ a o°ezßvßnφ obsahu. Pravidla bylo nutno pro grafiku samoz°ejm∞ lehce rozÜφ°it, ale veÜkerß rozÜφ°enφ jsou velmi logickß a znalci pravidel CSS2 si budou p°ipadat jako doma. Oba atributy lze pou₧φt na vÜechny prvky, kterΘ vytvß°φ nov² "viewport". Musφme si takΘ uv∞domit, ₧e ka₧d² grafick² prvek bude v terminologii CSS v₧dy typu <em>block-level box</em>.</p>
  86.  
  87. <div class='list'>
  88. <ul>
  89. <li><em>overflow</em> - definuje, jak a kdy bude vnit°nφ rßm (grafick² prvek) o°φznut podle hranic rßmu, ve kterΘm je obsa₧en. Mo₧nΘ hodnoty atributu jsou: visible, hidden, scroll, auto, inherit.</li>
  90. <li><em>clip</em> - specifikuje velikost a tvar o°ezanΘ oblasti (masky) nßsledujφcφm zp∙sobem: <code>style="clip: rect(shora, zprava, zdola, zleva);"</code>. Hodnoty uvnit° zßvorek p°edstavujφ p°φsluÜnΘ vzdßlenostφ m∞°enΘ od okraj∙ vn∞jÜφho rßmu. CSS2 p°itom povoluje pouze pravo·hl² o°ez. Vidφme, ₧e se poΦφtß s budoucφ mo₧nostφ o°ezßvat i jin²mi tvary ne₧ obdΘlnφkem, pou₧it² zßpis je ale bohu₧el s SVG nekompatibilnφ.</li>
  91. </ul>
  92. </div>
  93.  
  94. <h4>Vytvo°enφ o°ezovΘ cesty</h4>
  95. <p>O°ezovß cesta se definuje uvnit° prvku <code>clipPath</code>. Pou₧φvß se odkazovßnφm pomocφ lokßlnφ URI v atributu "clip-path", kter² p°idßme k prvk∙m, je₧ chceme o°φznout. Lze provßd∞t dokonce takovΘ kejkle, jako nap°φklad aplikovat o°ez v atributu 
  96. "clip-path" na jin² element <code>clipPath</code>.</p>
  97. <p>Element <code>clipPath</code> m∙₧e obsahovat vektorovΘ prvky <code>path</code> a <code>text</code>, zßkladnφ tvary typu <code>circle</code> a knihovnφ objekty <code>use</code> (odkazujφ-li pouze na prvky uveden²ch povolen²ch typ∙). Sßm o sob∞ se nevykreslφ.</p>
  98.  
  99. <h4>Atributy prvku <code>clipPath</code></h4>
  100. <p>Prvek <code>clipPath</code> m∙₧e nΘst nßsledujφcφ atributy:</p>
  101.  
  102. <div class='list'>
  103. <ul>
  104. <li><em>id</em> - standardnφ identifikßtor objektu</li>
  105. <li><em>clipPathUnits</em> - (nepovinn²) vybere jeden ze dvou mo₧n²ch sou°adnicov²ch systΘm∙ pro grafickΘ prvky masky; mo₧nΘ hodnoty: userSpaceOnUse (v²chozφ), objectBoundingBox. V p°φpad∞ tohoto atributu opakovan∞ doporuΦuji v∞novat extra pozornost nßsledujφcφm hodnotßm. Existuje toti₧ mnoho p°φpad∙, kdy z hlediska p°ehlednosti a elegance zßpisu je v²hodnΘ pou₧φvat sou°adnice relativnφ v∙Φi velikosti aktußln∞ zpracovßvanΘho objektu - jako auto°i dokumentu pak nap°φklad nemusφte m∞nit velikost Üipek na konci Φar, kdy₧ se zm∞nφ Üφ°ka dotyΦnΘ Φßry.
  106.     <ul>
  107.     <li>"userSpaceOnUse" - pou₧ije se aktußlnφ systΘm sou°adnic ve kter²ch je souΦasn² zpracovßvan² objekt definovßn Φi kreslen.</li>
  108.     <li>"objectBoundingBox" - tato hodnota aktivuje sou°adnicov² systΘm orientovan² uvnit° rßmeΦku ohraniΦujφcφho konkrΘtnφ prßv∞ zpracovßvan² objekt - sou°adnice (0,0), respektive (0%,0%), jsou v levΘm hornφm rohu a (1,1), respektive (100%,100%), v pravΘm spodnφm rohu ohraniΦenφ objektu; jin²mi slovy - tento sou°adnicov² systΘm se p°izp∙sobuje velikosti naÜeho objektu</li>
  109.     </ul>
  110. </li>
  111. <li><em>clip-rule</em> - (nepovinn²) je nutno aplikovat na vektorovΘ objekty uvnit° <code>clipPath</code>; mß identick² v²znam s "fill-rule" (viz <a href='http://interval.cz/clanek.asp?article=3476' title='Hejral, Martin: Kurz SVG - vypl≥ovßnφ I'>atributy definujφcφ vypl≥ovßnφ ploch</a>); mo₧nΘ hodnoty: nonzero (v²chozφ), evenodd, inherit</li>
  112. </ul>
  113. </div>
  114.  
  115. <div class='sample'>
  116. <g>
  117. <br />   <clipPath id="orez_cesta">
  118. <br />      <path d="..." clip-rule="evenodd" />
  119. <br />   </clipPath>
  120. <br />   <rect clip-path="url(#orez_cesta)" ... />
  121. <br /></g>
  122. </div>
  123.  
  124. <h4>Aplikace o°ezu</h4>
  125. <p>Vlastnφ pou₧itφ o°ezovΘ cesty je po vÜech definicφch u₧ hraΦkou - o°ezßvan² objekt (skupina objekt∙) pouze dostane navφc atribut <samp>clip-path="url(#orez_cesta)"</samp> odkazujφcφ na n∞jakΘ lokßlnφ URI.</p>
  126.  
  127. <div class='sample'>
  128. <?xml version="1.0" encoding="UTF-8"?>
  129. <br /><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Basic//EN"
  130. <br />  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-basic.dtd">
  131. <br /><svg version="1.1" xmlns="http://www.w3.org/2000/svg"
  132. <br />     xmlns:xlink="http://www.w3.org/1999/xlink"
  133. <br />     width="320px" viewBox="0 0 480 360">
  134. <br />  <title>6.3.3 Orezova cesta</title>
  135. <br />  <defs>
  136. <br />    <!-- bude se orezavat nasledujicim napisem -->
  137. <br />    <clipPath id="orez" clipPathUnits="userSpaceOnUse">
  138. <br />      <text x="40" y="270"
  139. <br />            font-size="100" font-family="Helvetica">
  140. <br />        Clip Test
  141. <br />      </text>
  142. <br />    </clipPath>
  143. <br />  </defs>
  144. <br />  <!-- nejdrive zrojove objekty pro lepsi predstavu -->
  145. <br />  <image xlink:href="checker.png" x="40" y="20"
  146. <br />         width="400px" height="128px" />
  147. <br />  <text x="40" y="120" font-size="100"
  148. <br />        font-family="Helvetica" fill="yellow">
  149. <br />    Clip Test
  150. <br />  </text>
  151. <br />  <!-- oriznuty obraz -->
  152. <br />  <image xlink:href="checker.png" x="40" y="170"
  153. <br />         width="400px" height="128px" clip-path="url(#orez)"/>
  154. <br />  <!-- obrys platna -->
  155. <br />  <rect x="1" y="1" width="478" height="358"
  156. <br />        fill="none" stroke="blue"/>
  157. <br /></svg>
  158. </div>
  159.  
  160. <div class='image'>
  161. <img src='podklady/hejral/916/0633.png' alt='Zobrazenφ o°ezßvßnφ v SVG' title='Zobrazenφ o°ezßvßnφ v SVG' />
  162. <br /><span class='comment'>Zobrazenφ o°ezßvßnφ v SVG (<a href='podklady/hejral/916/0633.svg'>originßlnφ SVG, cca 1 kB</a>)</span>
  163. </div>
  164.  
  165. <h3>Maskovßnφ</h3>
  166. <p>Maskovßnφ v norm∞ SVG znamenß, ₧e libovoln² grafick² objekt nebo skupina m∙₧e b²t pou₧ita jako takzvanß <em>maska pr∙hlednosti</em> (alpha mask) na jak²koli jin² objekt Φi skupinu p°i jejφm sluΦovßnφ s ji₧ vykreslen²m pozadφm.</p>
  167. <p>Na rozdφl od prostΘho o°ezu m∙₧e mφt ka₧d² bod v masce r∙zn² stupe≥ pr∙hlednosti (typicky bude maska osmibitovß = 256 ·rovnφ pr∙hlednosti) - masku netvo°φ obrys maskovacφch objekt∙, ale jejich kresba, tedy p°esn∞ji jas jejich v²pln∞.</p>
  168.  
  169. <h4>Vytvo°enφ masky</h4>
  170. <p>Masku definujeme pomocφ prvku <code>mask</code>. PotΘ je aplikovßna na grafiku p°ipojenφm odkazu v atributu "mask", vlo₧enΘho do konkrΘtnφho objektu Φi skupiny. Pokud jste ji₧ prostudovali o°ezßvßnφ pomocφ cesty, urΦit∞ vidφte formßlnφ shodnost maskovßnφ s o°ezßvacφ operacφ (clipPath = mask, clip-path = mask).</p>
  171.  
  172. <div class='sample'>
  173. <g>
  174. <br />   <mask id="maska">
  175. <br />      <path d="..." />
  176. <br />   </mask>
  177. <br />   <rect mask="url(#maska)" ... />
  178. <br /></g>
  179. </div>
  180.  
  181. <p>Element <code>mask</code> ji₧ m∙₧e obsahovat prvky libovolnΘho typu - vΦetn∞ <code>image</code>, kter² nebyl v p°edchozφm p°φpad∞ povolen - a sßm o sob∞ se <code>mask</code> rovn∞₧ nevykreslφ. Praktickß realizace bude vypadat tak, ₧e se maskovacφ objekty vykreslφ do pomocnΘho alfa kanßlu (inicializovanΘho na "pr∙hlednou" Φernou) a nßsledn∞ se maskovan² objekt nebo skupina, po svΘm kompletnφm vykreslenφ, slouΦφ s pozadφm se zapoΦtenφm hodnot z p°ipravenΘho alfa kanßlu.</p>
  182.  
  183. <h4>Atributy prvku <code>mask</code></h4>
  184. <p>Prvek <code>clipPath</code> m∙₧e nΘst nßsledujφcφ atributy:</p>
  185.  
  186. <div class='list'>
  187. <ul>
  188. <li><em>id</em> - standardnφ identifikßtor objektu</li>
  189. <li><em>maskUnits</em> - (nepovinn²) typ sou°adnicovΘho systΘmu pro urΦenφ velikosti alfa kanßlu masky; mo₧nΘ hodnoty: userSpaceOnUse, objectBoundingBox (v²chozφ)</li>
  190. <li><em>maskContentUnits</em> - (nepovinn²) typ sou°adnicovΘho systΘmu pro obsah masky; mo₧nΘ hodnoty: userSpaceOnUse (v²chozφ), objectBoundingBox</li>
  191. <li><em>x</em>, <em>y</em> - (nepovinn²) lev² hornφ roh alfa bufferu; v²chozφ hodnoty: -10%</li>
  192. <li><em>width</em>, <em>height</em> - (nepovinnß) Üφ°ka a v²Üka alfa bufferu; v²chozφ hodnoty: 120%</li>
  193. </ul>
  194. </div>
  195.  
  196. <h4>Aplikovßnφ masky</h4>
  197. <p>Pou₧itφ masky je ji₧ naprosto trivißlnφ - maskovan² objekt (skupina objekt∙) pouze dostane navφc atribut <samp>mask="url(#maska)"</samp> s lokßlnφm URI odkazem na vytvo°enou masku.</p>
  198.  
  199. <div class='sample'>
  200. <?xml version="1.0" standalone="no"?>
  201. <br /><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
  202. <br />  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  203. <br /><svg width="320px" viewBox="0 0 800 300" version="1.1"
  204. <br />     xmlns="http://www.w3.org/2000/svg"
  205. <br />     xmlns:xlink="http://www.w3.org/1999/xlink">
  206. <br />  <title>6.4.2 Maska</title>
  207. <br />  <desc>
  208. <br />    Modry text na fialovem pozadi maskovany gradientem
  209. <br />    (opet zduraznuji spravne pouziti 'defs').
  210. <br />  </desc>
  211. <br />  <defs>
  212. <br />    <linearGradient id="Gradient" gradientUnits="userSpaceOnUse"
  213. <br />                    x1="0" y1="0" x2="800" y2="0">
  214. <br />      <stop offset="0" stop-color="white" stop-opacity="0" />
  215. <br />      <stop offset="1" stop-color="white" stop-opacity="1" />
  216. <br />    </linearGradient>
  217. <br />    <mask id="Mask" maskUnits="userSpaceOnUse"
  218. <br />          x="0" y="0" width="800" height="300">
  219. <br />    <rect x="0" y="0" width="800" height="300"
  220. <br />          fill="url(#Gradient)" />
  221. <br />    </mask>
  222. <br />  </defs>
  223. <br />  <!-- fialove pozadi -->
  224. <br />  <rect x="0" y="0" width="800" height="300" fill="plum" />
  225. <br />  <text x="400" y="200" text-anchor="middle"
  226. <br />        font-family="Helvetica" font-size="100"
  227. <br />        fill="blue" mask="url(#Mask)" >
  228. <br />    Maskovany text
  229. <br />  </text>
  230. <br />  <!-- nakresli pouze cerny obrys textu -->
  231. <br />  <text x="400" y="200" text-anchor="middle"
  232. <br />        font-family="Helvetica" font-size="100"
  233. <br />        fill="none" stroke="black" >
  234. <br />    Maskovany text
  235. <br />  </text>
  236. <br /></svg>
  237. </div>
  238.  
  239. <div class='image'>
  240. <img src='podklady/hejral/916/0642.png' alt='Zobrazenφ maskovßnφ v SVG' title='Zobrazenφ o°ezßvßnφ v SVG' />
  241. <br /><span class='comment'>Zobrazenφ maskovßnφ v SVG (<a href='podklady/hejral/916/0642.svg'>originßlnφ SVG, cca 1 kB</a>)</span>
  242. </div>
  243.  
  244.  
  245.  
  246. <div id='article-author'>
  247. <a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/autor.asp?author=187'>Hejral, Martin</a> (11. 8. 2004)
  248.  
  249. </div>
  250.  
  251.  
  252. </div></div>
  253. <div id='page-right'><h2 class='textversion'>Prav² sloupek</h2>
  254. <div id='search'><h3 class='textversion'>Vyhledßvßnφ</h3><form method='get' action='http://interval.cz/search.asp'><div><input type='text' name='hledej' class='text' /><input type='submit' class='submit' value='Najdi!' /></div></form><div><a href='http://interval.cz/search_ex.asp'>RozÜφ°enΘ vyhledßvßnφ</a></div></div>
  255.  
  256.  
  257.  
  258. <div class='page-right-box book'>
  259.     <h3>Kni₧nφ novinka</h3>
  260.     <div class='page-right-box-in'>
  261.         <div class='book-top'>
  262.             <h4><a href='http://interval.cz/__redirect/redirect.asp?what=interval_booknews&url=http://interval.inshop.cz/inshop/scripts/detail.asp?ItemID=254'>Macromedia Flash MX 2004, oficißlnφ v²ukov² kurz</a></h4>
  263.         </div>
  264.         <div class='image'>
  265.             <img src='podklady/knihy/image.jpg' alt='obßlka' title='obßlka' /></a>
  266.         </div>
  267.         <div class='book-bottom'>Cena: <span class='book-price-old'>550 KΦ</span> <span class='book-price-new'>495 KΦ</span></div>
  268.     </div>
  269. </div>
  270.  
  271.  
  272.  
  273. <div class='page-right-box reading'><h3 title='NejΦten∞jÜφ Φlßnky za poslednφch 7 dn∙'>NejΦten∞jÜφ</h3><div class='page-right-box-in'><ul><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3549'>Hrßtky s okrajem textu v CSS</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3527'>Manußly aneb Jak jsem se nauΦil ned∞lat si starosti a mφt rßd internet</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3528'>PφÜeme pro web - odliÜte se od konkurence</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3546'>Zamezenφ vφcenßsobnΘho odeslßnφ formulß°e JavaScriptem</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3550'>Nßvrh aplikacφ v jazyce UML - textovß specifikace p°φpad∙ u₧itφ</a></li></ul></div></div><div class='page-right-box cauldron'><h3 title='Nejdiskutovan∞jÜφ Φlßnky za poslednφch 21 dn∙'>Diskuznφ kotel</h3><div class='page-right-box-in'><ul><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3533' title='(55 komentß°∙)'>Editory pro webdesignΘry - velk² programßtor</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3529' title='(40 komentß°∙)'>Zaklφnadla na spam</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3527' title='(22 komentß°∙)'>Manußly aneb Jak jsem se nauΦil ned∞lat si starosti a mφt rßd internet</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3517' title='(21 komentß°∙)'>PφÜeme pro web - podle Φeho se zßkaznφci rozhodujφ</a></li><li><a href='http://interval.cz/__redirect/redirect.asp?what=interval_offline&url=http://interval.cz/clanek.asp?article=3549' title='(16 komentß°∙)'>Hrßtky s okrajem textu v CSS</a></li></ul></div></div>
  274.  
  275.  
  276.  
  277. <div class='page-right-box emailserv'><h3>Email servis</h3><div class='page-right-box-in'><form action='prihlaseni.asp' method='post'><div class='shell'><input class='text' type='text' name='adresa' /></div><div class='shell'><input class='radio' type='radio' value='1' name='co' checked='checked' />T²dennφ p°ehled Φlßnk∙</div><div class='shell'><input class='radio' type='radio' value='2' name='co' />HELP konference</div><div class='shell'><input class='submit' type='submit' value='P°ihlßsit' /></div></form></div></div>
  278. </div>
  279. <div class='page-maker'> </div><div class='page-maker-white'> </div></div>
  280. <div id='page-foot'><div id='page-foot-menu'><a href='http://interval.cz/reklama.asp'>Inzerce na Interval.cz</a> | <a href='http://interval.cz/redakce.asp'>Redakce Interval.cz</a> | <a href='http://interval.cz/autori.asp'>Hledßme novΘ autory</a></div><div id='issn'>ISSN 1212-8651</div><div id='page-foot-zoner'>© Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje <a href='http://interval.cz/privacy.asp'>prßvnφ p°edpisy</a>o ochran∞ osobnφch ·daj∙.</div></div>
  281. </body>
  282. </html>
  283.