Вертикальный текст в HTML
Как я уже писал, в HTML совершенно нет возможности размещать текст по-вертикали. Правда, сильно ограниченные возможности присутствуют в Internet Explorer, правда, у этого способа я обнаружил один баг — при предварительном просмотре печати текст оказывается зеркально отраженным, видимо, второй фильтр не применяется.
Хотелось бы найти универсальный способ отображать вертикальный текст по-вертикали во всех браузерах и по возможности без глюков. Как говорится если нельзя, но очень хочется, то можно.
Создал небольшой скрипт для отображения текста по-вертикали. Код получился сравнительно небольшим. Скрипт использует VML под IE и SVG под остальными браузерами.
Внешний вид полностью настраивается при помощи CSS и Javascript. Здесь можно скачать архив, а здесь увидеть как это работает в живую.
Выложенный пример тестировался на IE6-IE7, Firefox2, Google Crome, Opera и Safary.
Примеры использования VML и SVG
Сейчас в интернете накопилось огромное количество примеров использования SVG и VML однако, в большинстве случаев это именно XML файлы для отображения которых их нужно скормить браузеру либо как файл с расширением .svg либо как .vml. В некоторых примерах имеет место XHTML файл у которого уже прописаны namespace и всякая дополнительная бутафория. Меня же в данном случае интересует как взять ОБЫЧНЫЙ html файл и добавить к нему векторную картинку. Причем добавить непосредственно к уже существующему HTML коду чтобы HTML и VML или SVG отображались вместе.
В конце концов путем расковыривания кода Барановского и анализа существующих примеров сделал два примера которые меня устроили:
пример создания SVG - в FF и Safari должен показаться заполненный круг
пример создания VML - в IE должен показаться овал и линия
Векторная графика под HTML
Оказывается, под HTML есть возможность использовать векторную графику, вот только разные браузеры реализуют эту возможность по разному, и пока HTML5 находится в зачаточном состоянии, VML под IE и SVG под остальными браузерами вполне себе работоспособны. Проблема в том как подружить эти две технологии. Дмитрий Барановский создал уровень абстракции позволяющий создавать волшебные вещи, причем во всех браузерах.
Залез смотреть исходник - внутри куча всего интересного - причем я еще не до конца уверен - это пис оф кейк или пис оф шит... Узнал много нового из жизни JavaScript...
Искренне завидую - тоже так хочу.
Как показывать и прятать строки таблицы
Давным давно стояла задача, как при помощи JavaScript прятать одни строки таблицы и показывать другие. В CSS у стиля display есть значение table-row которое как раз и применяется по умолчанию к элементам типа TR, однако в Internet Explorer поддержка табличных классов практически не реализована, поэтому прямое присваивание .style.display = 'table-row' в IE ниже восьмой версии работать не будет. Не работает также и run-in. Однако, есть одно значение display которое железно работает везде - это nodisplay.
Как при помощи nodisplay показать спрятанный элемент? Просто удаляем связанный с TR класс! Т.е. у невидимых элеменов будет класс с display:nodisplay, назовем его nodisplay у видимых этого класса не будет и они останутся видимыми. Если хотим сделать видимыми невидимые элементы а невидимые видимыми то просто удаляем невидимый класс у одних и добавляем его другим. Очень просто! Как это сразу не пришло мне в голову....
пример
row 1 | row 1 |
row 2 | row 2 |