Всем привет. Я делаю некий XUL-интерфейс к серверному приложению. Суть в том что, "XUL файлы" на сервере имеют вид "some-file.xul.php", соответственно обрабатываются сервером как PHP. В браузер файлы отдаются так (пример).

Выделить код

Код:

<?php
header('Content-Type: application/vnd.mozilla.xul+xml');
echo "<?xml version='1.0'?>\n";
echo "<?xml-stylesheet href='chrome://global/skin/' type='text/css'?>\n";
echo "<?xml-stylesheet href='double.css' type='text/css'?>\n"; ?>

<window id="example-window" title="Example 8.1.2"
        xmlns:html="http://www.w3.org/1999/xhtml"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<tree flex="1">
  <treecols>
    <treecol id="sender" label="Sender" flex="1"/>
    <treecol id="subject" label="Subject" flex="2"/>
  </treecols>

  <treechildren>
    <treeitem>
      <treerow>
        <treecell label="joe@somewhere.com"/>
        <treecell label="Top secret plans"/>
      </treerow>
    </treeitem>
    <treeitem>
      <treerow>
        <treecell label="mel@whereever.com"/>
        <treecell label="Let's do lunch"/>
      </treerow>
    </treeitem>
  </treechildren>
</tree>
</window>

Теперь проблема: исчезли <treechildren>!!! Заголовки есть, а самого "дерева" нет. Что я делаю не так?
Вот скриншоты:
PHP + XUL: http://img186.imageshack.us/img186/9981/phpxulfalseda7.jpg
Обычный XUL: http://img80.imageshack.us/img80/5577/xulokpe0.jpg

хм, кажется всё верно. исходный код xul файла и файла на выводе сервера совпадают?

Вот я тоже смотрю что все верно, но что-то не то.
Сравнивая два выходных файла, оказалось что причина вот в этом:

Выделить код

Код:

<?xml-stylesheet href="double.css" type="text/css"?>

смотрим код double.css:

Выделить код

Код:

*{
	font-size: 102%;
	/*padding: 1px 1px 1px 1px;*/
}
hbox{
	-moz-box-align:center;
}

Дальнейшим методом своеобразного "половинного деления" выяснил, что проблема была в hbox{-moz-box-align:center;}

В CSS я не очень, но не пойму что тут неправильного было. Подскажите!
Вот как оказывается, что "неправильно определенный" стиль может свалить все приложение.  Спасибо.

[S]
а где вы взяли этот кусок и что он по вашему должен делать?

Этот кусок кода я взял из туториала с xulplanet http://xulplanet.com/references/elemref … rties.html

По моему он должен делать следующее:
любой тэг <hbox> этот стиль превращает в такой:

Выделить код

Код:

<hbox align="center">

<hbox> является дочерним элементом <treerows> и hbox{-moz-box-align:center;} сбрасывает размеры treechildren в 0. Если эта часть css не предназначена для дерева, может быть, проще усложнить селектор ?

Anton
Спасибо за комментарий. Честно говоря, то что "<hbox> является дочерним элементом <treerows>", это для меня - новость.

Можно ссылку откуда такие сведения? Хотелось бы еще узнать какие еще элементы являюся дочерними для других, чтобы в будущем так не попасть.

hbox{-moz-box-align:center;} действительно не предназначен для дерева, а только для <hbox> (всех), подумаю как сделать по другому.

Можно ссылку откуда такие сведения?

Инструменты -> Инспектор DOM. В крайнем случае - chrome/toolkit/global/bindings

hbox{-moz-box-align:center;} действительно не предназначен для дерева, а только для <hbox> (всех), подумаю как сделать по другому.

можно
hbox:not([class="tree-bodybox"]) { ... }