Я генерирую HTML-страницу из C #. В HTML-странице много элементов. Все они имеют абсолютную позицию.
Одним из этих элементов является таблица. Эта таблица представляет объект, который хранит double []. Каждое двойное значение - это новая ячейка в новой строке.
Я перебираю double [] и создаю свою таблицу:
for (int i = 0; i < dbl.Length; i++)
{
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Tr);
htmlTextWriter.RenderBeginTag(HtmlTextWriterTag.Td);
htmlTextWriter.Write(dbl[i]);
htmlTextWriter.RenderEndTag(); // td
htmlTextWriter.RenderEndTag(); // tr
}
Если в таблице так много элементов, что она пересекает элемент, который находится ниже этой таблицы, я должен реагировать на эту проблему.
Это означает, что мне нужно знать, сколько пикселей у этой таблицы.
Конечно, я знаю, сколько я генерирую ячеек, а также я знаю BorderSize, Padding, Margin и т. Д.
Но есть две проблемы. Во-первых, хотя я знаю FontSize, FontFamily, FontWeight, я не знаю, как включить эту информацию в математический расчет.
Во-вторых, я думаю, что в каждом браузере фактический размер также отличается. Я создал фиктивную таблицу и понял, что на одной высоте экрана у меня уже есть разница в одну ячейку между Opera и Firefox.
Так что я думаю, что в C # я могу только приблизить фактическую высоту?!
Следующая идея, которую я имею, - включить JavaScript в мой HTML. У меня нет опыта работы с JavaScript, но мой подход заключается в том, чтобы найти мои таблицы и прочитать их размер. Затем переберите все элементы и найдите все перекрытия.
Мои вопросы:
- Верны ли мои соображения или я упускаю некоторые аспекты?
- Правильные ли мои подходы (в C # я получу только
приблизительный результат?!, JavaScript я не знаю, если это действительно
возможно то, что я хочу сделать)
- Есть ли другие возможности, которых я сейчас не вижу?
Подсказка: другие языки сценариев, кроме JavaSript, не применимы для моего решения. JavaScript я использую только в случае крайней необходимости.