[Seasar-user:7835] Re: [Teeda]Gridの列幅に、スタイルシートのpadding値が加算されてしまう

Tetsuya Midorikawa [E-MAIL ADDRESS DELETED]
2007年 5月 25日 (金) 18:32:57 JST


緑川です。

大谷さん、ご確認ありがとうございます。

>を取り入れても、長さが徐々にのびていくようなGridでは
>ダメでした。
>  
>
ああ・・・なるほど、そういう場合は確かにダメですね。。

>よってこの部分は取り込まずに別途方法を考えたいと思います。
>  
>
はい、了解いたしました。m(_ _)m

>そのほかの部分でももう少し意図をお聞きしたいところがあります。
>パッチの下記部分です。
>
>        if (headerDiv.offsetWidth > longer) {
>          headerDiv.style.width = (longer * 2 -headerDiv.offsetWidth) + 'px';
>        }
>
>headerDivのoffSetWidthの方がlonger(ここではoriginalWidthの想定)より
>長い場合に、処理をするというのはなんとなく合点がいくのですが、
>headerDiv.style.widthに設定する部分について、もう少し説明してもらえますか。
>
ややこしいコードだったかも知れません。すみません。
たとえば、設計時に決めた固定幅が100pxだとして、CSSでpaddingに5px取ったと
すると、originalWidth (=longer) は 100px なのですが、Firefoxでは
offsetWidthは
100+5+5 で 10px分多い 110pxとなります。でも本当は offsetWidth を固定幅の
100pxに合わせたい訳ですから、originalWidthに設定する値を 10px分減らして
90pxにしてあげれば、それに伴って offsetWidth が上手いこと 100pxになって
くれる、という寸法です。

(longer * 2 - headerDiv.offsetWidth)

というのは、上の数値をあてはめれば、

(100 * 2 - 110)

ですので 90 が出ます。これを元々の originalWidth に設定してやれば良い、と。
ちなみに IEの場合は offsetWidth == longer ですので、(100 * 2 - 100)でそ
のまま
100pxを設定するだけです。

要するに、

longer - (headerDiv.offsetWidth - longer)

という式と同値なのですが。。この形の方がイメージ伝わり難いかなぁ〜と思って
あの式を使ったのですが、逆でしたかね・・・申し訳ありません。







Seasar-user メーリングリストの案内