質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2544閲覧

【HTML,CSS,jQuery】display:table系でのマージンやサイズの指定方法

nnahito

総合スコア2004

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

1クリップ

投稿2015/06/02 02:41

現在,研究でWebでの推薦システムを構築しております.
そのプロトタイプを作成しているのですが,HTML5を全く勉強したことがなかったため,少し真似しながら作ってみようと,表を

lang

1<div style="display: table"> 2 <div style="display: table-row"> 3 <div style="display: table-cell">cell 1</div> 4 <div style="display: table-cell">cell 2</div> 5 </div> 6</div>

のような「display」を用いてつくろうとしています.

しかし,いざ実行してみると,指定したCSSが反映されません.

具体的には以下のようになります.

![イメージ説明]WIDTH:600

コードを一部抜粋します.
表示部分は,HTMLのDIVに,jQueryでPHPファイルからデータを取得してきたものをappendしています.

lang

1/* センター寄せ */ 2.automargin{ 3 margin-left: auto; 4 margin-right: auto; 5} 6 7 8/* DIVをテーブル化 */ 9.table{ 10 border-collapse: separate; 11 border-spacing: 3px 3px; 12 display: table; 13} 14 15.tr{ 16 display: table-row; 17} 18 19.td{ 20 display: table-cell; 21 padding: 5px; 22}

lang

1<div id="result"></div>

lang

1function recommand(){ 2 //先に中身を空にする 3 $("#result").empty(); 4 5 //データの取得 6 var $body = document.getElementById("body").value; 7 var $taste = document.getElementById("taste").value; 8 var $time = document.getElementById("time").value; 9 var $money = document.getElementById("money").value; 10 var $arrange = document.getElementById("arrange").value; 11 12 var $map = {body : $body, taste : $taste, time : $time, money : $money, arrange : $arrange} 13 14 15 $.ajax({ 16 type: "POST", 17 url: "recommend.php", 18 data: $map, 19 }).done(function(xml){ 20 var $str = xml; 21 var $sp = xml.split("\n"); 22 23 24 //table骨組 25 $("#result").append('<div style="display: table; width: 800px;">'); 26 27 for (var $i=0; $i<$sp.length; $i++){ 28 if ($sp[$i] == ""){ 29 continue; 30 } 31 32 var $ele = $sp[$i].split(","); 33 var $result = ""; 34 35 $result = '<span class="recipe_name">'+ $ele[0] +'</span><br>'; 36 for (var $j=1; $j<$ele.length; $j++){ 37 $result = $result + $ele[$j] + "<br>"; 38 } 39 40 41 //推薦結果の表示 42 $result = $result + '<hr><input type="radio">妥当である<br><input type="radio">やや妥当である<br><input type="radio">どちらとも言えない<br><input type="radio">やや妥当でない<br><input type="radio">妥当でない<br>'; 43 $result = "hogehoge"; 44 $("#result").append('<div class="tr">'); 45 $("#result").append('<div class="result automargin td" style="text-align: left;">'+ $result +'</div>'); 46 //$("#result").append('<div class="td" style="width: 5px;"></div>'); 47 $("#result").append('<div class="result automargin td" style="text-align: left;">'+ $result +'</div>'); 48 $('#result').append('</div>'); 49 50 //$("#result").append('<div class="tr"><div class="td" style="width: 1px; height: 1px;"></div></div>'); 51 52 } 53 54 //table骨組み 55 $("#result").append('</div>'); 56 57 }); 58 59 60 }

JavaScript内の,
//$("#result").append('<div class="tr"><div class="td" style="width: 1px; height: 1px;"></div></div>');
などのコメントを外し,無理矢理div要素を挿入してやると空白は空きます.
が,なぜ
width: 800px;

border-collapse: separate;
border-spacing: 3px 3px;
が反映されていないのかがわかりませんので,この部分を解決したいと考えています.

よろしくお願いいたします.


質問まとめ.

  • なぜCSSが反映されないのか
  • また,どのように書けば反映されるのか

よろしくお願いいたします.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

1000

2015/06/02 03:59

phpで吐き出されたソースでもjsで動的にappendしたソースでもCSSが聞かないなんて事は無いですよ。 ということで、最終的な形のソースをchromeのデベロッパーツールとかで表示してそれを提示してもらえればcssのミス等がわかりますよ。
nnahito

2015/06/02 05:51

Firefoxの「インスペクタ」では,表示されませんでした…
1000

2015/06/02 06:04

ということはCSSの問題ではなさそうですね、JSかPHPのもんだいなので、現象が再現できるだけの正確なソースが全て揃っていれば回答が集まりやすいかとおもいます。
guest

回答1

0

ベストアンサー

css が下記の通りなのであれば、

lang

1.table{ 2 border-collapse: separate; 3 border-spacing: 3px 3px; 4 display: table; 5}

js の下記の箇所は

lang

1$("#result").append('<div style="display: table; width: 800px;">');

下記の間違いではないでしょうか。

lang

1$("#result").append('<div class="table" style="width: 800px;">');

css で .table と table クラスのスタイルを定義しているのに、js のコード(が吐き出すDOM)に class="table" がありません。

投稿2015/06/02 12:43

ngyuki

総合スコア4514

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nnahito

2015/06/05 16:55

ご回答有難うございます。 自己解決いたしました。 $("#result").append('<div class="table" style="width: 800px;">'); ですが、appendは勝手に</div>を補完しているようで、それが原因でした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問