Невозможно изменить цвет шрифта всех элементов в строках и столбцах табличных тегов

0

Я пытаюсь изменить цвет шрифта различных веб-элементов в разных областях. В основном это нормально работает, пока я использую. Я использую вот так:

<font color='BLUE'>
<DIV>
<SPAN style="WHITE-SPACE: normal; TEXT-TRANSFORM: none; WORD-SPACING: 0px; FLOAT: none;      : rgb(34,34,34); FONT: 13px Calibri; -webkit-text-size-adjust: auto">
</SPAN>
</DIV>
<DIV>
<SPAN style="BORDER-TOP-     : ; WHITE-SPACE: normal; TEXT-TRANSFORM: none; WORD-SPACING: 0px; FLOAT: none;      : rgb(0,0,0); FONT: large arial, sans-serif;  -webkit-text-size-adjust: auto">abc
</SPAN>
</DIV>
</font>

или просто

 <font color='BLUE'>
<P>abc
</P>
    </font>

НО, когда я пытаюсь изменить цвет шрифта и формирование некоторых текстовых элементов, которые находятся под тегами, он не работает!

<font color='Blue'>
        <DIV>   
        <TABLE style="WIDTH: 165pt; BORDER-COLLAPSE: collapse; border=0 cellSpacing=0 cellPadding=0 width=219>
        <COLGROUP>
        <COL style="WIDTH: 21pt; mso-width-source: userset; mso-width-alt: 1024" width=28>
        <COL style="WIDTH: 92pt; mso-width-source: userset; mso-width-alt: 4498" width=123>
        <TBODY>
        <TR style="HEIGHT: 66pt; mso-height-source: userset" height=88>
        <TD style="BORDER-BOTTOM: #ece9d8; BORDER-LEFT: #ece9d8;           -     : transparent; WIDTH: 165pt; HEIGHT: 66pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8" class=xl65 height=88 width=219 colSpan=4><FONT size=2 face=Calibri></FONT>
        </TD></TR>
        <TR style="HEIGHT: 107.25pt; mso-height-source: userset" height=143>
        <TD style="BORDER-BOTTOM: #ece9d8; BORDER-LEFT: #ece9d8;           -     : transparent; WIDTH: 165pt; HEIGHT: 107.25pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: #ece9d8" class=xl65 height=143 width=219 colSpan=4>
        <FONT size=2 face=Calibri>
        <SPAN style="mso-spacerun: yes">&nbsp; </SPAN><BR><BR></FONT></TD></TR>
        </TBODY>
        </TABLE>
        </DIV>
        </font>

Пожалуйста, предложите мне, что мне делать, если я хочу сохранить общее правило для изменения цветов шрифта для всех форматов. Это я использую в некоторых приложениях, где я получаю входные данные от пользователя, где они вставляют тексты в теги html, мне просто нужно сделать цвет шрифта похожим на тексты и сохранить одинаковый формат для всех входов.

PS Чтобы сделать сценарий понятным, с сервера я на самом деле получаю все html-теги и тексты, добавляя в начале и конце строки, загружая новую String в веб-просмотр следующим образом:

String str = "abc"; //actaully what I am getting from backend with html tags

if(ann.get() != null)

    String  content = "<font color='Blue'>";
    content = content + Str;
    content = content + "</font>";
    details.loadData(content,"text/html","UTF-8");
    details.setBackgroundColor(Color.Black);
Теги:
html-table
fonts
android-webview

2 ответа

1

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

Например

table {color: white}
td.myclass {color: green}
  • 0
    Как Влад и другие указывают на использование CSS. Пусть машины делают работу. Каскадная часть каскадных таблиц стилей уменьшает необходимость передачи всего содержимого тега STYLE по самому длинному сетевому соединению в веб-приложении, соединению между браузером и сервером. И каскадирование уменьшает количество битов стиля ручного кодирования. И каскадирование означает, что вы программируете намерение, каким должен быть стиль для элемента или класса, а не для построчного применения этого намерения. Win-Win-Win.
  • 0
    Чтобы прояснить сценарий, со стороны сервера я фактически получаю все html-теги и тексты, добавляя в начало и конец строки, загружая новую строку в веб-представление следующим образом: String str = "abc"; // на самом деле то, что я получаю от бэкэнда с HTML-тегами if (ann.getAnnouncementDetails ()! = null) String content = "<font color = 'Blue'>"; контент = контент + ул; content = content + "</ font>"; details.loadData (содержание, "Текст / HTML", "UTF-8"); details.setBackgroundColor (Color.Black);
1

Разметка с элементом div или table внутри элемента font является недопустимой в соответствии со всеми спецификациями HTML. Тем не менее, браузеры традиционно переваривали его, но так, что свойства шрифта не влияют на содержимое внутри таблицы. Это все еще, как современные браузеры ведут себя в режиме Quirks.

Как ни странно, в стандартном режиме современные браузеры применяют цвет шрифта для содержимого таблицы. (Таким образом, в так называемом стандартном режиме соблюдается некоторая нестандартная разметка, которая иначе игнорируется!) Однако переключение в режим стандартов путем <!doctype html> в самом начале документа очень опасно. Код, который был разработан для работы в режиме Quirks, может полностью разрушиться в стандартном режиме, или он может работать почти одинаково или что-то среднее между ними.

Если вы специально хотите установить цвет внутри таблиц страницы, вы можете добавить следующий элемент:

<style>
th, td { color: blue }
</style>

Он должен войти в head часть синтаксисом HTML, но на самом деле он хорошо работает и в части body, поэтому вы можете ударить его (или после!) Таблицы, если нужно.

  • 0
    Чтобы прояснить сценарий, со стороны сервера я фактически получаю все html-теги и тексты, добавляя в <font> начало и конец строки, загружая новую строку в веб-представление следующим образом: String str = "abc «; // на самом деле то, что я получаю от бэкэнда с HTML-тегами if (ann.getAnnouncementDetails ()! = null) String content = "<font color = 'Blue'>"; контент = контент + ул; content = content + "</ font>"; details.loadData (содержание, "Текст / HTML", "UTF-8"); details.setBackgroundColor (Color.Black);
  • 0
    Подтвердил, что это правильно. Я проверил цвет шрифта нерабочего стола, добавив <! Doctype html>, и, конечно же, цвет изменился. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню