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

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

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

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

CSS

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

Q&A

解決済

3回答

8391閲覧

chromeでのテーブルのwidthについて

H--Mn

総合スコア11

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

CSS

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

0グッド

0クリップ

投稿2016/01/12 09:14

お世話になっております。

今回、2つのテーブルを組み合わせて表を作成しているのですが、1つ目のheaderのwidthを2つ目のbodyと同じwidthにすることができずに困っています。
値を代入しても値が変更され、1pxずつずれるような形になっています。

テーブルの構成

html

1<div id="table_body"> 2 <table id="table"> 3 <thead> 4 <tr> 5 <th>aaa</th> 6 <th>bbb</th> 7 <th>ccc</th> 8 </tr> 9 </thead> 10 <tbody> 11 <tr> 12 <td>AAA</td> 13 <td>BBB</td> 14 <td>CCC</td> 15 </tr> 16 </tbody> 17 </table> 18</div> 19<div id="table_header"> 20 <table id="table"> 21 <thead> 22 <tr> 23 <th>aaa</th> 24 <th>bbb</th> 25 <th>ccc</th> 26 </tr> 27 </thead> 28 <tbody> 29 </tbody> 30 </table> 31</div>

javascript

1var $source = $('#table_body tr th'), 2 $dest = $('#table_header tr th'); 3$dest.width($source.width());

簡単ですがこのような感じで表記しています。
javascript内での代入ができていない状況です。

よろしくお願いします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

こんにちは。

jQueryのwidth()は、ブラウザによってスクロールバーの幅も加味した値を返してしまうことが
あるようです。
参考:jQuery window の幅と高さを正確に出す方法

自分も試してみたところ、Chromeではフレーム分けしていると、
width:90pxと指定していても、
alert()で出力してみると違う値になっており、
フレーム内で再算出されているように見受けられました。

上記のようなスクロールバーがあったり、フレーム内のものだったり
しないでしょうか??

投稿2016/01/13 05:03

kaputaros

総合スコア1844

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

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

H--Mn

2016/01/13 07:14

スクロールバーを含めていたのでその部分の可能性があります。。。 参考になるサイトの紹介ありがとうございます。
guest

0

tableのcssはリセットされてますでしょうか?

border-collapse: collapse; border-spacing: 0;

投稿2016/01/13 02:49

shchr

総合スコア14

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

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

H--Mn

2016/01/13 07:14

marginとpaddingはリセットしていましたがborderはしていませんでした。 リセットしてみます、ありがとうございます。
H--Mn

2016/01/13 07:14

marginとpaddingはリセットしていましたがborderはしていませんでした。 書き直して試してみます、ありがとうございます。
guest

0

$("#table_body tr th")

のwidthは割り切れる値で、かつ均等なのでしょうか?
%指定の場合、全てのthのwidthが同値となっていないとかはないでしょうか?

投稿2016/01/12 09:58

shchr

総合スコア14

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

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

H--Mn

2016/01/13 00:25

返答ありがとうございます。 割り切れる数で、%指定などはしていません。 IE、FFではきちんと表示されるのですが、chromeでのみ値がずれてしまいます。 var sourceWidth = $source.width()  ←sourceWidth = 90 $dest.width($source.width()); このように代入しても$dest.width()の値が91などになってしまうのです。 なのでheaderとbodyの列がすこしずつずれてしまっています。 すみません、よろしくお願いします
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問