0

さまざまな領域のさまざまな Web 要素のフォントの色を変更しようとしています。私がこのように使用している間、ほとんどは正常に動作します:

<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タグとテキストを取得し、文字列の最初と最後に追加し、新しい文字列を次のようにwebviewにロードしています:

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);
4

2 に答える 2

1

要素内にdivor要素を含むマークアップは、すべての HTML 仕様に従って無効です。それでも、ブラウザーは伝統的にそれを消化してきましたが、フォントのプロパティがテーブル内のコンテンツに影響を与えないようにしています。これは、最新のブラウザーがQuirks Modeでどのように動作するかです。tablefont

奇妙なことに、標準モードでは、最新のブラウザーは表のコンテンツにフォントの色を適用します。(したがって、いわゆる標準モードでは、無視される非標準のマークアップが受け入れられます!) ただし、<!doctype html>ドキュメントの冒頭で平手打ちをして標準モードに切り替えることは非常に危険です。互換モードで動作するように開発されたコードは、標準モードでは完全に崩壊するか、ほぼ同じか、またはその中間で動作する可能性があります。

ページのテーブル内の色を特に設定したい場合は、次の要素を追加できます。

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

HTML 構文でパーツに挿入する必要がありheadますが、実際にはパーツでもうまく機能するbodyため、必要に応じて表の前 (または後) にスラップすることができます。

于 2013-09-17T20:53:02.470 に答える