Демонстрацию использования vbox
, hbox
, spacer
можно посмотреть на примере игры "крестики-нолики" написанной мной на XUL.
Притензии к тому, что программа часто проигрывает - не принимаются. Я не очень хорошо играю в "крестики-нолики" :), если имеете возможность, помогите.
Сам код, который отвечает за рисование "доски":
<?xml version="1.0" encoding="windows-1251"?> <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> <?xml-stylesheet href="cross.css" type="text/css"?> <!-- @copy Yegor Turin, 2004 @home xul.ru --> <window title="Крестики - нолики " id="crossWin" width="300" height="300" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <script src="cross.js" type="application/x-javascript"/> <vbox height="290"> <button label="restart" height="10" onclick="init()"/> <spacer flex="1"/> <hbox> <spacer flex="1"/> <vbox> <image id="im_1" src="cell_free.gif" class="cell" onclick="iclick(1)"/> <separator height="3"/> <image id="im_2" src="cell_free.gif" class="cell" onclick="iclick(2)"/> <separator height="3"/> <image id="im_3" src="cell_null.gif" class="cell" onclick="iclick(3)"/> </vbox> <separator width="3"/> <vbox> <image id="im_4" src="cell_free.gif" class="cell" onclick="iclick(4)"/> <separator height="3"/> <image id="im_5" src="cell_cross.gif" class="cell" onclick="iclick(5)"/> <separator height="3"/> <image id="im_6" src="cell_free.gif" class="cell" onclick="iclick(6)"/> </vbox> <separator width="3"/> <vbox> <image id="im_7" src="cell_free.gif" class="cell" onclick="iclick(7)"/> <separator height="3"/> <image id="im_8" src="cell_free.gif" class="cell" onclick="iclick(8)"/> <separator height="3"/> <image id="im_9" src="cell_free.gif" class="cell" onclick="iclick(9)"/> </vbox> <spacer flex="1"/> </hbox> <spacer flex="1"/> </vbox> </window>Внешний код:
<vbox> <spacer flex="1"/> <hbox> ........... </hbox> <spacer flex="1"/> </vbox>отвечает за выравнивае "внутреностей" в центре по вертикали. Сверху и снизу я расположил
<spacer flex="1"/>
- пустой элемент, который благодаря установленому атрибуту
flex="1", постарается занять весь имеющийся свободный обьём и отцентрирует внутрености.
Тотже эфект используется для центрирования по горизотали, только с использованием <hbox>
:
<hbox> <spacer flex="1"/> .......... <spacer flex="1"/> </hbox>
В результате, мы получили нечто, по центру страницы, вне зависимости от её размеров.
Этот прием часто используется.
Для создания фиксированных промежутков между элементами я использовал <spacer>
с указанием размеров промежутков.
Сам код, который отвечает за игру, вы можете скачать в архиве.
Хотите помочь? Вы нашли ошибку или хотите сделать комментарий - пишите. Я рад любой помощи.
©Yegor Turin
(electroCat.ru) 2004 year. All Rights Reserved.