Hi.

I've built a CHM file using the new styling.

It is a bit of a hack as rather than just a single CSS file, 3 are
required and also an additional class attribute.

The css class "docs" is not known in the CHM html files.

I've set that on <body class="docs"> and that seems to be good.

It seems IE is making a right pig of the new styling at the moment,
though in the CHM reader, things look quite good.

>From what I can see, alternate row colouring and last column styling
is unsupported by IE in the current form (just using CSS).

Richard.

-- 
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY
Index: phpdotnet/phd/Package/PHP/CHM.php
===================================================================
--- phpdotnet/phd/Package/PHP/CHM.php   (revision 307074)
+++ phpdotnet/phd/Package/PHP/CHM.php   (working copy)
@@ -238,7 +238,12 @@
             $this->hhcStream = fopen($this->chmdir . "php_manual_{$lang}.hhc", 
"w");
             $this->hhkStream = fopen($this->chmdir . "php_manual_{$lang}.hhk", 
"w");
 
-            file_put_contents($this->outputdir . "style.css", 
$this->fetchStylesheet() . PHP_EOL . 'body { padding : 3px;}');
+            file_put_contents($this->outputdir . "style.css",
+               $this->fetchStylesheet('reset.css') . PHP_EOL .
+               $this->fetchStylesheet('theme.css') . PHP_EOL .
+               $this->fetchStylesheet('doc.css') . PHP_EOL .
+               'body { padding : 3px;}'
+               );
 
             self::headerChm();
             break;
@@ -391,11 +396,16 @@
 
     public function header($id) {
         $header = parent::header($id);
-        // Add CSS link to <head>
-        $pattern = '/(.*)(\r|\n|\r\n|\n\r)(.*)<\/head>/';
-        $replacement = '$1  <link media="all" rel="stylesheet" type="text/css" 
href="style.css"/>$2$3</head>';
-
-        $header = preg_replace($pattern, $replacement, $header);
+        
+        $patterns = array(
+            '/(.*)(\r|\n|\r\n|\n\r)(.*)<\/head>/', // Add CSS link to <head>
+            '/(<body)/',                           // Add 'docs' class to body.
+        );
+        $replacements = array(
+            '$1  <link media="all" rel="stylesheet" type="text/css" 
href="style.css"/>$2$3</head>',
+            '$1 class="docs"',
+        );
+        $header = preg_replace($patterns, $replacements, $header);
         return $header;
     }
 
@@ -412,8 +422,11 @@
     }
 
     protected function fetchStylesheet($name = null) {
-        $stylesheet = file_get_contents("http://www.php.net/styles/site.css";);
-        if ($stylesheet) return $stylesheet;
+        $stylesheet = file_get_contents("http://www.php.net/styles/"; . 
(is_null($name) ? "site.css" : $name));
+        if ($stylesheet) {
+            v("Loaded $name stylesheet.", VERBOSE_MESSAGES);
+            return $stylesheet;
+        }
         else {
             v("Stylesheet not fetched. Uses default rendering style.", 
E_USER_WARNING);
             return "";

Reply via email to