よくある、「サービスにログインするときのパスワード、ID入力画面」というものを作ってます。
パスワード、テキストフィールド
ID、テキストフィールド
ログインボタン
のような。
たとえば簡単にテーブルで組みますと、
<table width="400" border="0" cellspacing="0" cellpadding="2">
<tr>
<td width="100">パスワード</td>
<td><label>
<input type="text" name="textfield" />
</label></td>
</tr>
<tr>
<td>ID</td>
<td><input type="text" name="textfield2" /></td>
</tr>
<tr>
<td colspan="2" align="center"><label>
<input type="submit" name="Submit" value="ログイン" />
</label></td>
</tr>
</table>
似たり寄ったりこんな感じだとします。
これと同等のものを、スタイルシートだけで作成できますか?
たとえば、ソースは、
<dl id="LOGIN-FORM">
<dt class="loginFormLabel" id="USER-NAME-LABEL">
<label for="USER-NAME">ユーザ名</label>
<input type="text" name="username" size="24" value="" id="USER-NAME" class="inputText" />
</dt>
<dt class="loginFormLabel" id="USER-PASSWORD-LABEL">
<label for="USER-PASSWORD">パスワード</label>
<input type="password" name="password" size="24" value="" onmousedown="" onkeydown="if (event.keyCode == 13) {enter.click();return false;}" id="USER-PASSWORD" class="inputText" />
</dt>
<dt class="loginFormLabel" id="USER-INFO-SUBMIT-LABEL">
<label for="USER-INFO-SUBMIT">アクション</label>
</dt>
<dd class="loginFormText" id="USER-INFO-SUBMIT-TEXT">
<input type="submit" value="ログイン" id="USER-INFO-SUBMIT" class="submit" />
</dd>
</dl>
です。
テキストフィールドの頭をそろえたり、ログインボタンの位置を
変えたりしたいです。
テーブルでやればいいのに・・・と思いますが、
スタイルシートで頼むといわれて、困ってます。
教えてください。
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
いくつかパターンを簡潔におなじ見た目になるように紹介されています。
borderとwidthをプラスして、表っぽくすれば、いいのでは?と思います。
お礼おくれてすいません!ありがとうございます!
これは参考になりますね、なるほどーーー
じっくり検証してみます!
※みなさんへ
ここのお礼欄をお借りしてお礼申し上げます。
ポイントは後ほどつけさせていただきますので
少々お待ちくださいませ!
No.5
- 回答日時:
IEを完全に無視し,Firefoxもtrunkでないと多分駄目という蛇足オマケバージョン。
Operaは知らないけど,手元の9.20 Betaでは上手く行った(笑)<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
dl#LOGIN-FORM{
width:80%;
background-color:green;
margin:auto;
padding:0;
}
dl#LOGIN-FORM dt.loginFormLabel{
display:inline-block;
width:10%;
margin:0;
padding:0;
text-align:center;
background-color:yellow;
}
dl#LOGIN-FORM dd.loginFormText{
display:inline-block;
width:80%;
margin:0;
padding:0;
text-align:center;
background-color:pink;
}
dl#LOGIN-FORM dd.loginFormText input{
width:100%;
}
</style>
<title>サンプル</title>
</head>
<body>
<dl id="LOGIN-FORM">
<dt class="loginFormLabel" id="USER-NAME-LABEL">
<label for="USER-NAME">ユーザ名</label>
</dt>
<dd class="loginFormText">
<input type="text" name="username" size="24" value="" id="USER-NAME" class="inputText" />
</dd>
<dt class="loginFormLabel" id="USER-PASSWORD-LABEL">
<label for="USER-PASSWORD">パスワード</label>
</dt>
<dd class="loginFormText">
<input type="password" name="password" size="24" value="" onmousedown="" onkeydown="if (event.keyCode == 13) {enter.click();return false;}" id="USER-PASSWORD" class="inputText" />
</dd>
<dt class="loginFormLabel" id="USER-INFO-SUBMIT-LABEL">
<label for="USER-INFO-SUBMIT">アクション</label>
</dt>
<dd class="loginFormText" id="USER-INFO-SUBMIT-TEXT">
<input type="submit" value="ログイン" id="USER-INFO-SUBMIT" class="submit" />
</dd>
</dl>
</body>
</html>
ちなみに,前回や今回に含まれていない
>td colspan="2"
は適当に工夫してください(笑)
そう考えると
最後のsubmitのclassをloginFormLabelとloginFormTextのままにしたのは失敗だったなあという気が。
お礼おくれてすいません!ありがとうございます!
おお、再度ありがとうございますーーー
試してみます・・・ですが、
>>IEを完全に無視し
IEは無視できないのです~
でもちょいと改造してみますね!
No.4
- 回答日時:
CSSをかなり触らないといけませんが、一応作ってみたので書いておきます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Style-Type" content="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
<title>ログイン画面</title>
<style type="text/css">
form#LOGINFORM p{
clear:left;
}
form#LOGINFORM label{
margin:0;
padding:0;
float:left;
display:block;
width:100px;
}
</style>
</head>
<body>
<form id="LOGINFORM">
<p>
<label for="TEXTFIELD">パスワード</label>
<input type="text" id="TEXTFIELD" />
</p>
<p>
<label for="TEXTFIELD2">ID</label>
<input type="text" id="TEXTFIELD2" />
</p>
<p>
<input type="submit" value="ログイン" />
</p>
</form>
</body>
</html>
labelをブロック要素にして、widthで幅を指定し、それを p で囲んだだけのもの。
でも table を表に使うのなら table を使ってもいいと思いますが
お礼おくれてすいません!ありがとうございます!
>CSSをかなり触らないといけませんが
そうなんですよね、、私も力技ですと
どうしても色々触らないといけなくて・・
そうすると壊れちゃうんですよね。。
上の試してみます、さっそく!
No.3
- 回答日時:
多分・・・
質問者は理解しているけど,発注している人が以下を【理解していない。】
『俗に言うテーブルレイアウト = 悪だと思われている。』
『俗に言うテーブルレイアウト ≠ table要素を使うこと。』
『スタイルシートを使うこと ≠ table要素を使わないこと。』
『table要素も適切に使えばStrictなコードである』
環境で受注しているんでしょう。大方。
で,受注側がそれを説明しても,
発注側が理解してくれず
【table要素は悪だ】
という思考でしかないので無理矢理
>「 dl 関連要素で実現したい 」
をやらざるを得なくなる,と。
>すでに組んであるcssはあまり崩して欲しくないんだそうです。
ここなんか見ると尚更そんな気がする。意味不明だもん。多分質問者もその意図を掴めず言っていると予想しているけど。
こんなのしか思いつかなかった。XHTML側をかなり弄ってますので注意。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dt …
<html xml:lang="ja" xmlns="http://www.w3.org/1999/xhtml" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
dl#LOGIN-FORM{
width:80%;
background-color:green;
margin:auto;
padding:0;
overflow:auto;
}
dl#LOGIN-FORM dt.loginFormLabel{
/* display:block; */
width:20%;
float:left;
clear:left;
overflow:auto;
background-color:yellow;
margin:0;
padding:0;
}
dl#LOGIN-FORM dd.loginFormText{
width:70%;
float:left;
overflow:auto;
background-color:red;
margin:0;
padding:0;
}
dl#LOGIN-FORM dd.loginFormText input{
overflow:auto;
width:80%;
margin:0;
padding:0;
}
</style>
<title>サンプル</title>
</head>
<body>
<dl id="LOGIN-FORM">
<dt class="loginFormLabel" id="USER-NAME-LABEL">
<label for="USER-NAME">ユーザ名</label>
</dt>
<dd class="loginFormText">
<input type="text" name="username" size="24" value="" id="USER-NAME" class="inputText" />
</dd>
<dt class="loginFormLabel" id="USER-PASSWORD-LABEL">
<label for="USER-PASSWORD">パスワード</label>
</dt>
<dd class="loginFormText">
<input type="password" name="password" size="24" value="" onmousedown="" onkeydown="if (event.keyCode == 13) {enter.click();return false;}" id="USER-PASSWORD" class="inputText" />
</dd>
<dt class="loginFormLabel" id="USER-INFO-SUBMIT-LABEL">
<label for="USER-INFO-SUBMIT">アクション</label>
</dt>
<dd class="loginFormText" id="USER-INFO-SUBMIT-TEXT">
<input type="submit" value="ログイン" id="USER-INFO-SUBMIT" class="submit" />
</dd>
</dl>
</body>
</html>
わーん、ありがとうございます!!
色々やっていただいて感謝です!まだ試していませんが。
月曜からまた再開なので、それからさっそく・・
>『俗に言うテーブルレイアウト = 悪だと思われている。』
↑悪とまで発注者が思っているかは知りませんが「会社の方針」なんだそうです、できるだけcssなのは。なんかいろいろうちは最先端な感じよ!という意味で、なんでしょうか。。
>『スタイルシートを使うこと ≠ table要素を使わないこと。』
↑そうそう、そう思っていそう!!
>『table要素も適切に使えばStrictなコードである』
↑そうそう、ねー!!
で、参考にして欲しいサイトを見せてもらって、こんな感じでね、
といわれたんですが、そこはバリバリtable使ってるじゃんか!
というと、
「そうなんですよねー・・何か実現できる方法ありませんかね?
スタイルシートで」
「私にゃ無理っす」
トホホ
No.2
- 回答日時:
No.1
- 回答日時:
> これと同等のものを、スタイルシートだけで作成できますか?
> テーブルでやればいいのに・・・と思いますが、
> スタイルシートで頼むといわれて、困ってます。
少し観点がおかしいです。
スタイルシートはあくまで視覚表現に関する指定を行うものです。
「 table 関連要素よりも適切なマークアップはあるのか」「 dl 関連要素で実現したい 」
というのであれば回答が可能です。
より適切な回答を求められるのであれば、文書型定義や想定しているレイアウトをもう少し具体的に示してください。
この回答への補足
すばやいご回答ありがとうございます!
せっかくご回答いただいたのですが、
文章の意味がちょっとわかりませんでした(もちろん私が知ろうと過ぎるのです・・・・)
えっと。。
今のレイアウトは、
■IDというテキストのすぐ横にIDを入力するテキストボックスが並でいる
■同じくパスワードというテキストのすぐ横にIDを入力するテキストボックスが並でいる
■その下にログインボタンが配置されている
という状態です。
上記3つが、loginFormというclassでくくられています。
IDというテキストとパスワードというテキストは、文字数が違いますよね、パスワードのほうが長い。
そのため、IDのすぐ横のテキストボックスの始まりが
縦でみると、飛び出して見えます(わかります?)。
ログインボタンもなんかセンターではない。
テーブルでしたら、これをきれいに簡単に調節できると思うのですが、
これをcssだけでやれというのです。
divで囲った枠にfloat: left;などして見るのか?
と思ったのですが、すでに組んであるcssはあまり崩して欲しくないんだそうです。
もうお手上げです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- PHP php ログイン 1 2022/11/01 00:24
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- その他(プログラミング・Web制作) seleniumbasic chrome操作について 1 2023/03/29 15:40
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
html でのテキスト結合について
-
trとtrの間
-
テーブルの一部分のセルだけに...
-
XHTMLに関する質問 順序が逆に...
-
tableタグとformタグの組み合わせ
-
cssで、テーブルのtdの中の文字...
-
ブラウザによってテーブルのセ...
-
HTMLのテーブルでそれぞれの大...
-
IEでテーブル内のテキストが...
-
formのinputなどの幅100%指定
-
自身のHPにYouTube動画を貼り付...
-
<img>タグにCSSのclass設定可能?
-
インフォシークの無料スペース
-
同じクラス名はつけないほうが...
-
テーブルタグの中にdivを含めて...
-
テーブルとテーブルの間隔について
-
CSSで特定のテーブルだけに...
-
テーブルの任意の列を非表示に...
-
中に<table></table>が使えるア...
-
テーブルの行を折りたたみたい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tableタグとformタグの組み合わせ
-
html でのテキスト結合について
-
テーブルの一部分のセルだけに...
-
同じクラス名はつけないほうが...
-
td要素内のdiv要素をセンタリン...
-
Tableタグ内のspan styleが適応...
-
divで囲んだ文字が消える
-
XHTMLに関する質問 順序が逆に...
-
Tableタグで作成した表の縮小
-
<img>タグにCSSのclass設定可能?
-
Firefoxを使ってるのですがズー...
-
cssで、テーブルのtdの中の文字...
-
表とリスト(ulとtable)の違い...
-
trとtrの間
-
Dreamweaver デザインビューの...
-
formのinputなどの幅100%指定
-
同じwidth=200でもセル内の文字...
-
vbscriptで時計を作りたい
-
Visual Studio で CLR 開発でデ...
-
4カラムのテーブルに絶対幅と相...
おすすめ情報