тег | атрибут | свойство | стиль | ||
новые html-термины | line | aling | point | default | |
значения новых html-терминов | side | romb | |||
старые html-термины | td | id | list | ||
значения старых html-терминов | circle | ||||
коммуникационный xml | sound | sync | power | ||
значения коммуникационного xml | nouser | ||||
клавиатурные и мышиные команды | enter |
Какие языки нужно знать, чтобы визуализировать базу данных? SQL, потому что промышленный стандарт баз данных. HTML, потому что промышленный стандарт визуализации. Что еще? Больше ничего.
Представьте, что запрос в базу данных вернул вам дерево, состоящее из произвольных (неизвестных браузеру) тегов (например, названия тегов совпадают с названиями таблиц базы данных). Я предлагаю наделить любые теги свойствами и тем определить их отображение в браузере (назовем такой html расширенным, extended html, eHTML). И перечислять свойства произвольных тегов в css-файле (это проще, чем писать для них xsl-файл). Старые, уже известные html-теги нужно рассматривать как html-теги с заранее предопределенными значениями свойств - но таким же набором свойств могут обладать и другие теги.
Пусть, например, браузеру встретился незнакомый тег "anytag" с текстом "internal text" внутри.
Если до и после какого-либо тега должен произойти переход на новую строку,
для такого случая соответствующее свойство все еще не названо.
Пусть это будет
newstring со значениями
yes и
no.
Значением yes обладают ранее известные теги
p
,
br
,
hr
,
table
,
caption
,
tr
.
Выстраивание в колонки может быть выполнено автономно для разных
частей документа и порождать разные ширины колонок в каждой части.
Отделение частей документа друг от друга должно быть выполнено каким-либо тегом со
специальным свойством.
Пусть таким свойстваом будет
kind=table.
Из ранее известных тегов этим свойством обладал только тег
table
.
Таким образом, если определен css-файл
Все теги, не зависимо от их названия, непосредственно вложенные в тег с
kind=table,
интерпретируются как теги с данными.
Может одновременно присутствовать несколько разноименных тегов с данными.
При этом имя тега и имя его класса (значение атрибута class
)
всегда совпадают:
если у тега определен атрибут class
,
то имя тега игнорируется;
если этот атрибут не определен (отсутствует),
то имя тега есть имя класса.
Для симметрии позволим заполнять документ "по-колонно", для чего для тегов
table
, tbody
, tfoot
, thead
,
Аналогично должно быть выполнено отделение частей документа друг от друга для построения списков и линий - пусть это будут теги со свойствами kind=list и kind=line.
Все теги, не зависимо от их названия, непосредственно вложенные в тег с kind=list, интерпретируются как элементы списка. Может одновременно присутствовать несколько разноименных тегов-элементов списка.
Все теги, не зависимо от их названия, непосредственно вложенные в тег с kind=line, интерпретируются как элементы линии. Может одновременно присутствовать несколько разноименных тегов-элементов линии.
Свойство kind определяет, какие еще свойства существуют у данного тега.
Присвоение этому свойству любого значения, в т.ч. и того, которое содержалось в нем ранее, сбрасывает в "null" все остальные свойства тега.
Это свойство может иметь более одного значения одновременно.
Для поисковых роботов предназначено свойство
semantics со значениями
(свойство может иметь несколько значений одновременно):
address (страна, сайт, электронная почта, телефон - теги
address
, cite
);
idea (dfn
),
important (em
, strong
),
quote (backquote
, q
);
example (code
),
input (kbd
),
output (samp
),
rating,
price,
author,
date.
Свойство semantics не описывает аббревиатуру,
т.к. ее легко обнаружить по тому ее качеству, что все ее буквы - прописные.
Специальное значение звездочка
*
атрибутов
colspan
,
rowspan
означает использование всех оставшихся колонок (или строк соответственно) как одной.
Теги в таблице ниже,
для которых вторая колонка таблицы не заполнена, не выражаемы через свойства.
Но их (например, тег object
)
можно применять как таковые.
Внутри тега select
вместо тегов
option
и optgroup
могут применяться теги
ti.
html-тег | свойства xml-тега | свойства обрамляющего xml-тега, т.е. тега [-1]-го уровня |
свойства xml-тега [-2]-го уровня |
<a href= > | kind:anchor; src:/dir/filename; | ||
<a name=A > | kind:mark; id:A; | ||
<abbr> | |||
<address> | font-type:oblique; semantics:address; | ||
<b> | font-weight:+100%; | ||
<backquote> | semantics:quote; | ||
<big> | font-size:+30%; font-weight:+100%; | ||
<body> | kind:body; | ||
<br> | newstring:yes; | ||
<caption> | newstring:yes; colspan:* ; | kind:table; | |
<code> | font-family:courier; semantics:example; | ||
<contour> | kind:contour; | ||
<cite> | font-type:oblique; semantics:address; src:www.com; | ||
<def> | font-type:oblique; semantics:idea; | ||
<del> | |||
<div> | |||
<dd> | padding-left:10mm; | ||
<dl> | |||
<dt> | padding-left:0; | ||
<em> | font-type:oblique; semantics:important; | ||
<form> | kind:form; | ||
<h1> | text-align:left; font-size:+100%; | ||
<h2> | text-align:left; font-size:+50%; | ||
<h3> | text-align:left; font-size:+20%; | ||
<h4> | text-align:left; | ||
<h5> | text-align:left; font-size:-20%; | ||
<h6> | text-align:left; font-size:-40%; | ||
<head> | kind:head; | ||
<hidden> | kind:hidden; | ||
<hr> | kind:hr; | ||
<i> | font-type:oblique; | ||
<img src= > | <link src= > | ||
<input type=button> | kind:anchor; src:/dir/filename; look:button; | ||
<input type=checkbox> | kind:checkbox; | ||
<input type=file> | kind:file; | ||
<input type=hidden> | <hidden> | ||
<input type=image> | kind:image; | ||
<input type=password> | kind:password; | ||
<input type=pic> | kind:pic; | ||
<input type=radio> | kind:radio; | ||
<input type=reset> | kind:reset; | ||
<input type=select> | kind:select; | ||
<input type=submit> | kind:submit; | ||
<input type=text> | <input type=textarea> | ||
<input type=textarea> | kind:area; | ||
<ins> | |||
<interface> | kind:interface; | ||
<kbd> | font-type:courier; semantics:input; | ||
<label> | |||
<legend> | |||
<li> | kind:list / line; | ||
<line> | kind:line; | ||
<link href= > | kind:link; src:/dir/filename; | ||
<map name= > | |||
<menu> | kind:menu; | ||
<module> | kind:module; | ||
<object data= > | |||
<ol> | <ul> | ||
<optgroup> | |||
<option> | |||
<p> | newstring:yes; indent:N; | ||
<pre> | font-family:courier; white-space:pre; | ||
<q> | semantics:quote; | ||
<samp> | font-type:courier; semantics:output; | ||
<small> | font-size:-50%; | ||
<span> | |||
<strong> | font-weight:+100%; semantics:important; | ||
<sub> | vertical-align:sub; | ||
<sup> | vertical-align:super; | ||
<table> | kind:table; | ||
<table-dim> | kind:table-dimensional; | ||
<tree> | kind:tree; | ||
<ti> | kind:ti; | ||
<tbody> | kind:tbody; | ||
<tc> | type:column; newstring:yes; | kind:table/tbody/tfoot/thead; | |
<tfoot> | kind:tfoot; | ||
<thead> | kind:thead; | ||
<td> | newstring: yes; | kind:table/tbody/tfoot/thead; | |
<th> | font-weight:+100%; | newstring: yes; | kind:table/tbody/tfoot/thead; |
<tr> | type:row; newstring:yes; | kind:table/tbody/tfoot/thead; | |
<tt> | font-family:courier; | ||
<u> | |||
<ul> | kind:list; |
Ячейки таблицы могут быть текстовыми виджетами (полями ввода) непосредственно (отредактировал текст в ячейке таблицы - таблица автоматически переформатировалась). При этом возможно копирование из буфера обмена (clipboard) сразу в несколько ячеек таблицы.
Значения всех свойств распространяются на все под-теги. Следующие два css-файла означают одно и то же.
tag { kind: table; } sub_tag { newstring: yes; } sub_sub_tag { kind: area; } | tag { kind: table area; } sub_tag { newstring: yes; } sub_sub_tag { } |
Некоторый тег может быть меткой и ссылкой одновременно.
Тег может соответствовать шаблону более чем в одном атрибуте.
tag1.class1 tag2.class2 {} |
= | <tag1 class=class1> <tag2 class=class2> { } |
тег | атрибут | список возможных значений |
link |
type |
vector |
свойство | значение по умолчанию | список возможных значений |
kind | anchor, checkbox, contour, file, form, hidden, hr, image, line, link, list, mark, password, radio, reset, table, table-dimensional, tbody, tfoot, thead, ti, tree, area, select, submit | |
newstring | no | no, yes |
semantics | address, idea, important, quote, example, input, output | |
type | row | row, column |
html60author