アプリ版:「スタンプのみでお礼する」機能のリリースについて

HTMLの質問なのかJAVAサーブレットの質問なのか微妙なのですがテーブルを一行に二つ表示したいのですが表示はできるんですが表示位置を中央にすることができなくて困ってます
どうすれば中央にすることができますか?
while(rs2.next()){
String name = rs2.getString("st.staff_name");
String kana = rs2.getString("st.staff_kana");
String birthday = rs2.getString("st.birthday");
String sex = rs2.getString("sm.sex");
String blood = rs2.getString("bm.blood_type");
String hight = rs2.getString("st.hight");
String weight = rs2.getString("st.weight");
String reration = rs2.getString("st.reration");
String mobile = rs2.getString("st.mobile_tel");
String tel = rs2.getString("st.tel");
out.println("<br></br><TABLE border=0 align=\"center\"><table border=1 align=\"left\"><tr><th width=150>氏名</th>");
out.println("<td width=200>"+name+"</td></tr><tr>");
out.println("<th>ヨミガナ</th>");
out.println("<td>"+kana+"</td></tr><tr>");
out.println("<th>生年月日</th>");
out.println("<td>"+birthday.replace("-", "/")+"</td></tr><tr>");
out.println("<th>性別</th>");
out.println("<td>"+sex+"</td></tr><tr>");
out.println("<tr><th>身長</th>");
out.println("<td>"+hight+"</td></tr>");
out.println("<tr><th>体重</th>");
out.println("<td>"+weight+"</td></tr>");
out.println("<tr><th>血液型</th>");
out.println("<td>"+blood+"</td></tr>");
out.println("<tr><th>携帯電話番号</th>");
String mtel="";
if(mobile!=null&&mobile.length()>0){
for (int i = 0; i < mobile.length(); i++) {
char ch = mobile.charAt(i);
if(i==3){
mtel+="-";
}
if(i==7){
mtel+="-";
}
mtel+=ch;
if(mobile.length()==0){
mtel="-";
}
}
}else{
mtel="不所持";
}
out.println("<td>"+mtel+"</td></tr>");
out.println("<tr><th>自宅電話番号</th>");
String ttel="";
for (int i = 0; i < tel.length(); i++) {
char ch = tel.charAt(i);
if(i==4){
ttel+="-";
}
if(i==6){
ttel+="-";
}
ttel+=ch;
}
out.println("<td>"+ttel+"</td></tr>");
out.println("<tr><th>続柄</th>");
out.println("<td>"+reration+"</td>");
out.println("</tr></table>");

A 回答 (3件)

No.1です。


さらに追記です。

前置きとして、表示の問題は、HTMLだけの問題なので、
出力したHTMLを元に、まずHTMLを修正して、正しく表示
されるようになったら、それと同じHTMLをJavaで吐き出す
ように修正する、というアプローチを取ってください。
まずJavaありきでは、何が何だかわからなくなるでしょうから。

で、本題なのですが、TABLEの構造からして間違っています。
内側のTABLEが、外側のTABLEの要素として、正しく記述
されていません。

現在出力しようとしているのは、下のような構造です。
外側のTABLEに <tr><td>...</td></tr> がありません。

<table ....>
<table >
<tr><th>...</th><td>...</td></tr>
......
</table>
<table>
<tr><th>...</th><td>...</td></tr>
......
</table>
</table>

下のように、内側のTABLEは、外側のTABLEの<tr><td>...</td></tr>に
囲まれてないといけません。

<table ....>
<tr>
<td>
<table >
<tr><th>...</th><td>...</td></tr>
......
</table>
<table>
<tr><th>...</th><td>...</td></tr>
......
</table>
</td>
</tr>
</table>

それでも、内側のTABLEが横一列に表示されないようでしたら、
一番外側のTABLEの<td>に、nowrap 属性をつけるとか、
一番外側のTABLEの width 属性で、横幅を広げてみるとか、
いろいろやってみてください。

HTMLの知識が不足しているのでしたら、下記サイトの
「HTMLリファレンス」や「逆引きリファレンス」などの
ページを参考に、調べていろいろやってみてください。

http://www.tohoho-web.com/www.htm

参考URL:http://www.tohoho-web.com/www.htm
    • good
    • 0

No.1です。

追記です。

「テーブル中の文字を中央に表示したい」ということであれば、
<tr> タブに 「align="center"」を指定する必要があります。

下記ページの「■ 文字の配置」の項を参照してみてください。
http://html.seo-search.com/reference/table.html

<tr>一つ一つにalign 指定をすると、HTMLが見にくくなるので、
CSSで指定するとよいと思います。
    • good
    • 0

HTMLで表示してないので、合っているかどうかわかりませんが、


テーブルの中のテーブルのalign が 「left」だからじゃないですか。

つまり、ここ↓の「氏名」の前のtableの 「align=\"left\"」を「align=\"center\"」に
変更してみては?

out.println("<br></br><TABLE border=0 align=\"center\"><table border=1 align=\"left\"><tr><th width=150>氏名</th>");
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます^^
残念ながらアドバイスのとおりにやると左側のテーブルだけが中央に表示されもうひとつは次の行の左寄せで表示されてしまいます;;

お礼日時:2010/07/11 01:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!