<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title> Chapter 2. FAQ - Frequently Asked Questions </title> <link rel="stylesheet" href="book.css" type="text/css" /> <meta name="generator" content="DocBook XSL Stylesheets V1.69.1" /> <link rel="start" href="index.html" title="HTML_CSS Manual" /> <link rel="up" href="pt01.html" title="Part I. Introduction" /> <link rel="prev" href="ch01s03.html" title="Why use HTML_CSS ?" /> <link rel="next" href="pt02.html" title= "Part II. Getting Started" /> <style type="text/css"> /*<![CDATA[*/ body { background-color: white; color: black; } :link { color: #0000FF } :visited { color: #840084 } :active { color: #0000FF } div.c2 {font-family: monospace;} col.c1 {text-align: left} /*]]>*/ </style> </head> <body> <table class="htmlcssHeader"> <tr> <td> <img src="img/pearsmall.gif" align="left" alt="PEAR logo" /> <h1> HTML_CSS : The Definitive Guide </h1> <div class="navheader"> <table width="100%" summary="Navigation header"> <tr> <th colspan="3" align="center"> Chapter 2. FAQ - Frequently Asked Questions </th> </tr> <tr> <td width="20%" align="left"> <a accesskey="p" href="ch01s03.html">Prev</a> </td> <th width="60%" align="center"> Part I. Introduction </th> <td width="20%" align="right"> <a accesskey="n" href="pt02.html">Next</a> </td> </tr> </table> </div><br /> <br /> </td> </tr> </table> <div class="chapter" lang="en" xml:lang="en"> <div class="titlepage"> <h2 class="title"> <a name="faq" id="faq"></a>Chapter 2. FAQ - Frequently Asked Questions </h2> </div> <div class="qandaset"> <dl> <dt> 2.1. <a href="ch02.html#id4733589">General questions</a> </dt> <dd> <dl> <dt> 2.1.1. <a href="ch02.html#id4733594">What does it cost ?</a> </dt> <dt> 2.1.2. <a href="ch02.html#id4733560">Do you offer support ?</a> </dt> <dt> 2.1.3. <a href="ch02.html#id4733343">I found a bug, what shall i do ?</a> </dt> <dt> 2.1.4. <a href="ch02.html#id4735702">What is CSS ?</a> </dt> <dt> 2.1.5. <a href="ch02.html#id4735760">What is PEAR ?</a> </dt> </dl> </dd> <dt> 2.2. <a href="ch02.html#id4735822">How to</a> </dt> <dd> <dl> <dt> 2.2.1. <a href="ch02.html#id4735827">I want to use HTML_CSS without PEAR. Is it possible ?</a> </dt> <dt> 2.2.2. <a href="ch02.html#id4780772">I want to know property value of a selector, but it can not exist</a> </dt> </dl> </dd> </dl> <table border="0" summary="Q and A Set"> <col class="c1" width="1%" /> <tbody> <tr class="qandadiv"> <td align="left" valign="top" colspan="2"> <h3 class="title"> <a name="id4733589" id="id4733589"></a>2.1. General questions </h3> </td> </tr> <tr class="toc"> <td align="left" valign="top" colspan="2"> <dl> <dt> 2.1.1. <a href="ch02.html#id4733594">What does it cost ?</a> </dt> <dt> 2.1.2. <a href="ch02.html#id4733560">Do you offer support ?</a> </dt> <dt> 2.1.3. <a href="ch02.html#id4733343">I found a bug, what shall i do ?</a> </dt> <dt> 2.1.4. <a href="ch02.html#id4735702">What is CSS ?</a> </dt> <dt> 2.1.5. <a href="ch02.html#id4735760">What is PEAR ?</a> </dt> </dl> </td> </tr> <tr class="question"> <td align="left" valign="top"> <a name="id4733594" id="id4733594"></a><a name="id4733596" id= "id4733596"></a><b>2.1.1.</b> </td> <td align="left" valign="top"> <p> What does it cost ? </p> </td> </tr> <tr class="answer"> <td align="left" valign="top"></td> <td align="left" valign="top"> <p> You can download and use it for free. But don't delete the copyright notice. You can read terms of the <a class= "external" href= "http://www.laurent-laville.org/index.php?mod=pear&des=css&act=license" title= "http://www.laurent-laville.org/index.php?mod=pear&des=css&act=license"> license</a> </p> </td> </tr> <tr class="question"> <td align="left" valign="top"> <a name="id4733560" id="id4733560"></a><a name="id4733562" id= "id4733562"></a><b>2.1.2.</b> </td> <td align="left" valign="top"> <p> Do you offer support ? </p> </td> </tr> <tr class="answer"> <td align="left" valign="top"></td> <td align="left" valign="top"> <p> YES if there is no answer in this Guide and if you are ready to share some informations such as : your configuration (platform Win *nix mac, PHP version, PEAR packages installed) and perharps your script. </p> </td> </tr> <tr class="question"> <td align="left" valign="top"> <a name="id4733343" id="id4733343"></a><a name="id4733345" id= "id4733345"></a><b>2.1.3.</b> </td> <td align="left" valign="top"> <p> I found a bug, what shall i do ? </p> </td> </tr> <tr class="answer"> <td align="left" valign="top"></td> <td align="left" valign="top"> <p> You can report it with the bug tracker at <a class="external" href="http://pear.php.net/package/HTML_CSS/bugs" title= "http://pear.php.net/package/HTML_CSS/bugs">PEAR</a>. </p> </td> </tr> <tr class="question"> <td align="left" valign="top"> <a name="id4735702" id="id4735702"></a><a name="id4735705" id= "id4735705"></a><b>2.1.4.</b> </td> <td align="left" valign="top"> <p> What is CSS ? </p> </td> </tr> <tr class="answer"> <td align="left" valign="top"></td> <td align="left" valign="top"> <p> CSS (an acronym for <span class= "bold"><strong>C</strong></span>ascading <span class= "bold"><strong>S</strong></span>tyle <span class= "bold"><strong>S</strong></span>heets) is a simple mechanism for adding style (e.g. fonts, colors, spacing) to Web documents. </p> <p> <span class="bold"><strong>HTML_CSS</strong></span> is a PEAR package that provides methods for handling stylesheet declarations. </p> <p> Version 1.0.0 does not offers yet methods to validate a style sheet. </p> </td> </tr> <tr class="question"> <td align="left" valign="top"> <a name="id4735760" id="id4735760"></a><a name="id4735762" id= "id4735762"></a><b>2.1.5.</b> </td> <td align="left" valign="top"> <p> What is PEAR ? </p> </td> </tr> <tr class="answer"> <td align="left" valign="top"></td> <td align="left" valign="top"> <p> PEAR (an acronym for <span class= "bold"><strong>P</strong></span>HP <span class= "bold"><strong>E</strong></span>xtension and <span class= "bold"><strong>A</strong></span>pplication <span class= "bold"><strong>R</strong></span>epository) is a framework and distribution system for reusable PHP components. </p> <p> Don't forget to read also the <a class="external" href= "http://pear.php.net/manual/en" title= "http://pear.php.net/manual/en">PEAR Manual</a> and <a class= "external" href="http://pear.php.net/manual/en/faq.php" title="http://pear.php.net/manual/en/faq.php">PEAR FAQ</a>. </p> </td> </tr> <tr class="qandadiv"> <td align="left" valign="top" colspan="2"> <h3 class="title"> <a name="id4735822" id="id4735822"></a>2.2. How to </h3> </td> </tr> <tr class="toc"> <td align="left" valign="top" colspan="2"> <dl> <dt> 2.2.1. <a href="ch02.html#id4735827">I want to use HTML_CSS without PEAR. Is it possible ?</a> </dt> <dt> 2.2.2. <a href="ch02.html#id4780772">I want to know property value of a selector, but it can not exist</a> </dt> </dl> </td> </tr> <tr class="question"> <td align="left" valign="top"> <a name="id4735827" id="id4735827"></a><a name="id4735829" id= "id4735829"></a><b>2.2.1.</b> </td> <td align="left" valign="top"> <p> I want to use HTML_CSS without PEAR. Is it possible ? </p> </td> </tr> <tr class="answer"> <td align="left" valign="top"></td> <td align="left" valign="top"> <p> Yes it is. First, you need to download package <a class= "external" href="http://pear.php.net/package/HTML_Common" title= "http://pear.php.net/package/HTML_Common">PEAR::HTML_Common</a> version 1.2 or greater. </p> <p> Extract content (<code class="filename">common.php</code> file) in same directory <code class="filename">HTML/</code> as <code class="filename">CSS.php</code> file. </p> <p> Last, you should create your own error handler, or disable it. See chapter <a href="ch09.html" title= "Chapter 9. Error Handler">Error Handler</a> for details. </p> </td> </tr> <tr class="question"> <td align="left" valign="top"> <a name="id4780772" id="id4780772"></a><a name="id4780774" id= "id4780774"></a><b>2.2.2.</b> </td> <td align="left" valign="top"> <p> I want to know property value of a selector, but it can not exist </p> </td> </tr> <tr class="answer"> <td align="left" valign="top"></td> <td align="left" valign="top"> <p> With previous release than 1.1.0 it was not possible because <code class="methodname">HTML_CSS::getStyle()</code> require at least an existing property, or it will return <code class= "constant">HTML_CSS_ERROR_NO_ELEMENT_PROPERTY</code>. </p> <p> With new function <code class= "methodname">HTML_CSS::grepStyle()</code> of version 1.1.0, it's now possible. </p> <div class="php c2"> <ol> <li class="li1"> <div class="de1"> <span class="kw2"><?php</span> </div> </li> <li class="li1"> <div class="de1"> <span class="kw1">require_once</span> <span class= "st0">'HTML/CSS.php'</span>; </div> </li> <li class="li1"> <div class="de1"> </div> </li> <li class="li1 ln-xtra"> <div class="de1"> <span class="kw2">function</span> myErrorHandler<span class="br0">(</span><span class= "br0">)</span> </div> </li> <li class="li1"> <div class="de1"> <span class="br0">{</span> </div> </li> <li class="li1"> <div class="de1"> <span class="kw1">return</span> PEAR_ERROR_PRINT; <span class="co1">// always print all error messages</span> </div> </li> <li class="li1"> <div class="de1"> <span class="br0">}</span> </div> </li> <li class="li1"> <div class="de1"> </div> </li> <li class="li1 ln-xtra"> <div class="de1"> <span class="re0">$styles</span> = <span class= "st0">'</span> </div> </li> <li class="li1"> <div class="de1"> <span class="st0">h1, h2, h3, h4 { padding: 1em; }</span> </div> </li> <li class="li1"> <div class="de1"> <span class="st0">.highlight p, .highlight ul { margin-left: .5em; }</span> </div> </li> <li class="li1"> <div class="de1"> <span class="st0">#main p, #main ul { padding-top: 1em; }</span> </div> </li> <li class="li1"> <div class="de1"> <span class="st0">'</span>; </div> </li> <li class="li1"> <div class="de1"> </div> </li> <li class="li1 ln-xtra"> <div class="de1"> <span class="re0">$prefs</span> = <span class= "kw3">array</span><span class="br0">(</span> </div> </li> <li class="li1"> <div class="de1"> <span class="st0">'push_callback'</span> => <span class="st0">'myErrorHandler'</span>, </div> </li> <li class="li1"> <div class="de1"> <span class="br0">)</span>; </div> </li> <li class="li1"> <div class="de1"> <span class="re0">$attribs</span> = <span class= "kw2">null</span>; </div> </li> <li class="li1"> <div class="de1"> </div> </li> <li class="li1 ln-xtra"> <div class="de1"> <span class="re0">$css</span> = <span class= "kw2">new</span> HTML_CSS<span class= "br0">(</span><span class="re0">$attribs</span>, <span class="re0">$prefs</span><span class= "br0">)</span>; </div> </li> <li class="li1 ln-xtra"> <div class="de1"> <span class="re0">$css</span>-><span class= "me1">parseString</span><span class= "br0">(</span><span class= "re0">$styles</span><span class="br0">)</span>; </div> </li> <li class="li1"> <div class="de1"> </div> </li> <li class="li1 ln-xtra"> <div class="de1"> <span class="re0">$css</span>-><span class= "me1">getStyle</span><span class= "br0">(</span><span class="st0">'.highlight p'</span>, <span class="st0">'color'</span><span class= "br0">)</span>; </div> </li> <li class="li1"> <div class="de1"> </div> </li> <li class="li1 ln-xtra"> <div class="de1"> <span class="re0">$styles</span> = <span class= "re0">$css</span>-><span class= "me1">grepStyle</span><span class= "br0">(</span><span class="st0">'/highlight/'</span>, <span class="st0">'/^color$/'</span><span class= "br0">)</span>; </div> </li> <li class="li1"> <div class="de1"> <span class="kw3">echo</span> <span class= "st0">'<pre>'</span>; <span class= "kw3">var_dump</span><span class= "br0">(</span><span class= "re0">$styles</span><span class="br0">)</span>; <span class="kw3">echo</span> <span class= "st0">'</pre>'</span>; </div> </li> <li class="li1"> <div class="de1"> <span class="kw2">?></span> </div> </li> </ol> </div> <div class="variablelist"> <dl> <dt> <span class="term">Lines 4-7, 15-17, 20 :</span> </dt> <dd> <p> Custom error handler is defined to allow script to continue (print message), when <code class= "methodname">HTML_CSS::getStyle()</code> will raise error at line 23. </p> </dd> <dt> <span class="term">Lines 9-13, 21 :</span> </dt> <dd> <p> Stylesheet used is : </p> <div class="css c2"> <ol> <li class="li1"> <div class="de1"> h1, h2, h3, h4 <span class="br0">{</span> <span class="kw1">padding</span>: 1em; <span class="br0">}</span> </div> </li> <li class="li1"> <div class="de1"> <span class="re1">.highlight</span> p, <span class="re1">.highlight</span> ul <span class="br0">{</span> <span class= "kw1">margin-left</span>: .5em; <span class= "br0">}</span> </div> </li> <li class="li1"> <div class="de1"> #main p, #main ul <span class="br0">{</span> <span class="kw1">padding-top</span>: 1em; <span class="br0">}</span> </div> </li> </ol> </div> </dd> <dt> <span class="term">Lines 23, 25 :</span> </dt> <dd> <p> While <code class= "methodname">HTML_CSS::getStyle()</code> will raise error (printed by custom error handler), line 25 will return an empty array with no error raised. </p> <p> Reason : <code class="literal">color</code> property does not exist for <code class="literal">.highlight p</code> class selector. </p> </dd> </dl> </div> </td> </tr> </tbody> </table> </div> </div> <table class="htmlcssFooter"> <tr> <td align="left"> HTML_CSS : The Definitive Guide </td> <td align="right"> v 1.1.3 : February 18, 2007 </td> </tr> </table> <div class="navfooter"> <hr /> <table width="100%" summary="Navigation footer"> <tr> <td width="40%" align="left"> <a accesskey="p" href="ch01s03.html">Prev</a> </td> <td width="20%" align="center"> <a accesskey="u" href="pt01.html">Up</a> </td> <td width="40%" align="right"> <a accesskey="n" href="pt02.html">Next</a> </td> </tr> <tr> <td width="40%" align="left" valign="top"> Why use HTML_CSS ? </td> <td width="20%" align="center"> <a accesskey="h" href="index.html">Home</a> </td> <td width="40%" align="right" valign="top"> Part II. Getting Started </td> </tr> </table> </div> </body> </html>