Добавляем текстовые метки и картинки

Этот раздел описывает добавление текстовых меток (или надписей) и картинок на окно приложения. И дополнительно мы рассмотрим группировку элементов.

Текстовые элементы

Вы не можете включить текст прямо в XUL файл без обрамления тегами и ожидать, что он будет показан. Вы можете использовать два XUL элемента для достижения этой цели.

Текстовая метка

Самый простой путь для включений текста в окно — использовать текстовые метки. Они могу быть использованы когда Вы хотите разместить простое описание без элемента управления, как кнопка. Пример показан далее:

Пример 1 :

<label value="This is some text"/>

Атрибут «value» может быть использован для некоторого текста, который Вы хотите показать. Текст не может быть с переносами и будет показан в одну строку. Синтаксис позволяет и более общие надписи. Если текст необходимо показать с переносами, Вы можете разместить текст между открывающим и закрывающим тегами, как во втором примере:

Пример 2 :

<label>
   This is some longer text that will wrap onto several lines.
</label>

Как и в HTML, переносы строк и пробелы, следующие более одного подряд, сворачиваются в один пробел. Позже, мы найдем как задать ширину элементов, и увидим, что перенос делается очень просто.

Атрибут «control»

Вы можете использовать атрибут «control» для установки элемента, с которым связанна текстовая метка. Если пользователь щелкнет по связанной текстовой метке, то элемент станет активным (будет в фокусе). Установите как значение атрибута «control» идентификатор элемента, который должен получить фокус.

Пример 3 :

<label value="Click here:" control="open-button"/>
<button id="open-button" label="Open"/>

В примере выше, щелчок по текстовой метке делает кнопку активной.

Элемент «Описание»

Для простого описания без необходимости связывания его с любым другим элементом, Вы можете использовать тег «description». Этот тег полезен, например,  для информационного текста вверху диалоговых окон или групп элементов управления. Как и с текстовыми метками, Вы можете использовать атрибут «value» для одно строчного текста или простого текста, или размещать XHTML между открытым и закрытым тегами «description» для больших блоков текста.

Пример 4 :

<description>
    This longer section of text is displayed.
</description>

Вы можете установить текст из скрипта используя свойство textContent, как в следующем примере:

<description id="text" width="200"/>
document
    .getElementById('text')
    .textContent = "Some lengthy word wrapped text goes here.";

Внутри обоих элементов, как текстовой метке, так и в описании одни и те же элементы. Текстовая метка предназначена для надписей к элементам управления, как текстовое поле. Атрибут control поддерживается только текстовыми метками. Элемент описания предназначен прочих описаний, как информация вверху диалоговых окон.

Картинки

В XUL есть элемент для показа картинок внутри окна. Этот элемент соответствует именованной картинке. Заметим, что имя тега другое чем в HTML (image против img). Вы можете использовать атрибут src для задания URL к файлу картинки. Пример показан ниже:

<image src="images/banner.jpg"/>

Хотя  Вы можете использовать этот синтаксис, он может быть лучше в порядке поддержки разных тем использовать таблицы стилей для установки URL картинки. В следующем разделе будет описано как использовать таблицы стилей, но пример будет показан здесь для полноты картины.Вы может использовать свойство CSS list-style-image CSS для установки URL до картинки. Вот этот пример:

XUL:
 <image id="image1"/>
 <image id="search"/>
Style Sheet:
 #image1 {
   list-style-image: url("chrome://findfile/skin/banner.jpg");
 }

 #search {
   list-style-image: url("http://example.com/images/search.png");
 }

Эти картинки расположены внутри папки chrome, в темах для пакета findfile. Так как картинки меняются в теме, Вы обычно можете размещать их в папке темы.

В следующем разделе мы научимся как добавить элементы ввода к окну.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.