корень степени N
[HTML] <span id="power_root" style="border: solid 1px black">
<span id="power" style="position: absolute; left: 0px;">
bla
</span>
<font id="sym_root" style="line-width: 10%;border: solid 1px black;" face="symbol" size="">Ö</font>
<span class="root">
<table style="vertical-align: middle;"><tr><td style="border-bottom: solid 1px black;">2</td></tr> <tr><td><table style="vertical-align: middle;"><tr><td style="border-bottom: solid 1px black;">2</td></tr><tr><td>3</td></tr> </table></td></tr></table>
</span>
</span>
as
<script language="javascript">
var pow = document.all("power");
pow.style.top = pow.parentElement.offsetTop - pow.offsetHeight/2 + pow.offsetTop + "px";
pow.style.left = pow.parentElement.offsetLeft - pow.offsetWidth/2 + pow.offsetLeft + "px";
</script>
[/HTML]
вроде как почти все проблемы решены -- траблы с растягивание символа корня (aka зюзлик). видел, что такое реализовано (тут http://vanav.com.ua/soft/unimath/mathml-editor.html), но как, не понял -- там код жутко мутный
буду благодарен любым намёткам!
w3.org - идем сюда и читаем стандарты
По той линке тоже стоит покопаться тем более что там 100% рабочий код. Или тебя не учили в детстве заимствовать чужие идеи?
поясню ситуацию -- у меня есть MathML и есть XSLT, которая это MML отображает в виде HTML. но там не реализован элемент mroot MML'я -- корень степени N. и мне надо его доделать.
http://www.w3.org/TR/REC-html32#latin1
http://www.w3.org/TR/REC-html32#charset
и вот тоже самое по-русски:
http://www.rol.ru/news/it/helpdesk/html32.htm#latin1
http://www.rol.ru/news/it/helpdesk/html32.htm#charset
Ну и пожалуй, самое лучшее:
http://html.manual.ru/book/info/specialchars.php
Символ корня квадратного встроен в HTML еще в версии 3.2, а вот как реализовать корень другой степени без создания картинки на стороне сервера или хитрого Javascript на стороне клиента, лично я, даже не представляю. Дело в том, что в Мозилле вроде есть встроенная поддержка MathML, а вот в IE нет.
Хотя, еще есть Flash, и уж у нее точно не будет проблем с разными браузерами, да и с динамическим созданием необходимой графики.
во-первых сам символ корня есть. во-вторых никакого сервера нет. есть только файл с MathML и XSLT к нему. вот что я сделал на сегодня. в принципе, довольно сносно выглядит.
[html]
<HTML>
<HEAD>
<style>
table {
display: inline;
}
</style>
</HEAD>
<BODY>
2*cos(<table cellpadding="0" cellspacing="0" border="0" style="vertical-align: middle;">
<tr><td style="border-bottom: solid 1px black;">2</td></tr> <tr><td>sin(x)</td></tr></table>)
<table id="power_root" border="1" cellpadding="0" cellspacing="0" style="vertical-align: middle;">
<tr>
<td id="power" valign="top" align="lright">
<table cellpadding="0" cellspacing="0" border="0" style="vertical-align: middle;">
<tr><td style="border-bottom: solid 1px black;">2</td></tr> <tr><td>4</td></tr></table>*sin(2*x)
</td>
<td align="right">
<table id="tab_root" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<font id="sym_root" face="symbol" style="position: relative; top: 1px;">&#214;</font>
</td>
<td style="margin-left: 100px;">
<table cellpadding="0" cellspacing="0" border="0" style="vertical-align: middle;border-top: solid 2px black;">
<tr><td style="border-bottom: solid 1px black;">2</td></tr> <tr><td>4</td></tr></table>
</td>
</tr>
</table>
<tr>
</table>
<script language="javascript">
var sr = document.all("sym_root");
var pr = document.all("power_root");
var tr = document.all("tab_root");
var delta = document.all("power").offsetHeight / 2;
tr.style.marginTop = delta;
sr.style.fontSize = pr.offsetHeight -delta+ "px";
</script>
</body>
</html>
[/html]но сейчас корни, к которых большая по высоте степень уходят ниже линии текста. а хотелось бы, что она были не прямо на линии, а ЧУТЬ_ЧУТЬ ниже неё. я просто херово знаю HTML и ещё хуже CSS. подскажите плз чё-нить
ЗЫ этот код пашет тока в експлорере
PS2 чёрт, с спец символами проблемы. там где написано &#213; дожно быть просто Ö -- это и есть символ корня в шрифте symbol
За эти два дня уже давно можно было во всем разобраться самому для всех пяти браузеров.
с XML я знаком! с MathML тоже! мне просто нужно "НАРИСОВАТЬ" В HTML КОРЕНЬ СТЕПЕНИ N.
мне нужно реализоать преобразование текста типа <mroot><mn>3</mn><mn>8</mn></mroot> в нечто, внешне напоминающее такой корень третьей степени из восьми, который мы рисовали в тетрадке в 10-ом классе. по поводу примера, на который я сам дал ссылку -- для меня предствляется нереальным в нём разобраться, поскольку там весь код написан "в одну строчку". если знаете как его более-менее прилично отформатировать, то подскажите. НО! в этом редакторе корень степени n тоже не реализован!
я всего лишь прошу людей, которые приличнее меня знакомы с HTML и CSS нарисовать мне корень с основанием и степенью. т.е. моих знаний этих технологий оказывается недостаточно.
у того варианта, что я наваял немного туговато с масштабированием.
Честно говоря я бы не стал вообще связываться с MathML, который ни одним браузером нормальное не поддерживается (в Опере у меня твой пример вообще не работает). Я бы работал с картинками. Так поступают многие. Например та же Википедия - там все формулы картинками.
хорошо, HTML+CSS+JavaScript -- так как в моём варианте. меня в нём не устраивает только выравнивание относительно остального текста.
хорошо, HTML+CSS+JavaScript -- так как в моём варианте. меня в нём не устраивает только выравнивание относительно остального текста.[/QUOTE]
В таком случае эту проблему решать вам с вашей компанией.
"Бери ношу по себе, чтоб не падать при ходьбе" (с)
Мне более нечего добавить к вашей проблеме. Кажется остальным участникам форума тоже. Успехов!
ЗЫ Если удастся разрулить проблему для нормальных браузеров - будет интересно узнать. Надеюсь поделитесь решением
ЗЫ а что, мозилла не в полной мере поддерживает MathML???
На сегодняшний день не существует НИ ОДНОГО браузера поддерживающего хотя бы 3/4 того что написано на w3.org
Что бы там ни говорили апологеты ФФ или Safari или Оперы. Каждый из браузеров имеет свои сильные и слабые стороны, свои косяки и недочеты. Те кто хоть раз писал более-менее сложные стили для страниц со мной согласится. Приходится внедрять тонны костылей вроде параметров -moz-xxxx или "кряка" IE. Не говоря уже об SVG, подержку которого уже сколько времени не могут до ума довести.
Так что думается мне насчет MathML удивляться нечему.
при всём этом это лишь частный случай. и нужно обеспечить совместимость с общим случаем -- когда все эти дивы видимые.
есть может какие-то флаги\стили, чтобы ИЕ полностью создавал даже невидимые элементы.
Попробуйте задавать этим элементам отрицательные значения полей -- margin: -1000px -1000px 0 0;