Tag » CSS

jQueryで水平方向にスライドする開閉式メニュー

入れ子構造のリストでjQueryを使ったシンプルな開閉式メニューを自作してみたところ、CSSやjQueryで色々と不具合に遭遇しました。

CSSだとIEだけ表示が違ったりすることはよくありますが、jQueryでもブラウザー毎に挙動が違うことがあるようで久しぶりにハマりました…

tableの外枠線だけを消してみる

tableの外枠にborderがないデザインってのがたまにあります。そんな時、以下のような力技でデザインを再現しているのを見かけたりしませんか?

  1. セル(th、td)のborder-topやborder-leftだけにborderの指定
  2. table内のタグ(tr、th、tdなど)にclassをつけて不要なborderを削除

でもこれだとHTMLもCSSも煩雑化していてあまりイケてないですよね。
そこで今回はCSSのみで解決する方法を考えてみました。

Firefox 3.0.xでも背景画像が1pxズレる

下記のようなHTML構造で、bodyタグに背景画像をbackground-position: center top;みたいに中央配置したい場合があったりします。

<body>
  <div id="header"></div>
  <div id="content"></div>
  <div id="footer"></div>
</body>

でもこれbodyタグに指定すると1pxズレちゃうんですね。
IEだと1pxズレる問題は各所で「bodyタグにpadding-left: 1px;を指定したら回避できるよ」って感じで紹介されてるけど、実はFirefox 3.0.xやSafariなどにも同じような問題があって久しぶりにハマってしまった。

まずはググって調べてみたところSoh Tanakaさんのブログから参考になる記事を発見。
垂直スクロールバーの幅のサイズが奇数になってるのが原因みたいだ。
随分と解決に近づいた気もしたけど、記事内のView Final Demoでは解決できてないみたいなのでさらに調査してみた。

update
Firefox 3.5で解決されたようです。WebKit系のブラウザーでの解決が待たれますね。

update
Soh Tanakaさんのサイトがドメインを乗っ取られているようなので、リンクをはずしています。