category
サイト構築 -CSS

[CSS]高さの異なるカラムを揃えるスタイルシート

  • この記事をdel.cio.usに登録する
  • この記事をはてなブックマークに登録する
  • この記事をGoogleブックマークに登録する
  • この記事をYahoo!ブックマークに登録する
  • この記事をdiggに登録する
  • この記事をlivedoor clipに登録する
  • この記事を@nifty クリップに登録する

metal.izeにエントリーされていたスタイルシートを紹介します。

Columnas 100% altasのキャプチャ

Columnas 100% altas

Columnas 100% altasのエントリーでは、下記のデモのように高さの異なるdivで組んだカラムの高さを揃えるスタイルシートを紹介しています。
sample:高さがばらばらのdiv
sample:高さが揃ったdiv

スタイルシートは、各divに対して「padding-bottom」と「margin-bottom」に同じ数値をプラス値とマイナス値で指定を行い高さを揃え、それらのdiv要素を包んだdivで「overflow:hidden;」を指定します。
詳しくは、最小限にしたサンプルを作成したので参照ください。
高さの異なるカラムを揃えるスタイルシートのサンプル

下記の「32768px」って、何か特別な意味があるのでしょうか。

padding-bottom: 32768px;
margin-bottom: -32768px;

Columnas 100% altas:P-4

Post on:2007年10月25日

  • この記事をdel.cio.usに登録する
  • この記事をはてなブックマークに登録する
  • この記事をGoogleブックマークに登録する
  • この記事をYahoo!ブックマークに登録する
  • この記事をdiggに登録する
  • この記事をlivedoor clipに登録する
  • この記事を@nifty クリップに登録する

トラックバック

トラックバック(URL)

コメント

comment:

※承認制のため、即時には反映されません。

bosin
on 2007年10月25日

32768×2=65536
256×256=65536
描画限界的な何か…ですかね。

CSS HappyLife
on 2007年10月25日

ブロックレベル要素の高さを揃える…

1日に2エントリーもするなんて、、、 [CSS]高さの異なるカラムを揃えるスタイルシート | コリスを読んでてなんだか気になったので、ちょっと自分でも試してみました。 (more…)

コリス
on 2007年10月25日

情報、ありがとうございます。
ブラウザの限界値に関係しているようですね。

32768px情報、ここら辺にもありました。
OpenLayers
OpenLayers

また、32768pxは2の15乗という情報もありました。

コリス
on 2007年10月26日

これかなぁ。

Microsoft サポート

Windows 95、Windows 98、Windows Meで、16 ビット符号付き整数(32767 人両端を含む32,767を介して -32768 から範囲へある)によって表されることができるより、大きく返すことができません。

こ○つメモ
on 2007年10月26日

高さの異なるカラムを揃えるスタイルシート…

http://coliss.com/articles/build-websites/operation/css/558.html 各divに対して「padding-b (more…)

ノンジャンルの電網旅行記
on 2007年10月26日

float属性を持つ子の親が正しくheightを得られるよう…

高さの異なるカラムを揃えるスタイルシートの、(もしかしたらとてもスタンダードかもしれない)特殊な用例です。 (more…)

tail -f /var/log/こうちかずお.log
on 2007年10月26日

[HTML][Design] divレイアウトカラムの高さを…

http://coliss.com/articles/build-websites/operation/css/558.html の記事から。揃えたいそれぞれのカラム (more…)

こうちかずお
on 2007年10月26日

それらを囲んでいるdiv要素に、
overflow: hidden;
も指定しておく必要ないですか?

コリス
on 2007年10月26日

> こうちかずお さん

「overflow: hidden;」は、必要ですよ。
誤解がでてしまったので、その辺りを修正しました。

Hato-Style
on 2007年10月27日

バラバラのブロック要素の高さを揃えるネタ…

div要素などのブロック要素を並べたとき(コンテンツとサブナビの2カラムレイアウトなど)、デザイン的にそれぞれの要素の高さを揃えたいという場合がある。 (more…)

Diary of photosynthesis
on 2007年10月28日

高さの違うカラムのお尻を揃えるCSS…

テーブルコーディングだと問題ないわけですが、 CSSコーディングだと、これが意外と厄介なわけです。 方法はいくらかあるんでしょうけど、 こないだこれのすごく簡単なやり (more…)

wu
on 2007年12月27日

コリスさん、こんにちは。

遅ればせながらこちらで紹介して下さっている方法を試してみたのですが、どうやら、ページ内アンカーリンクがある場合に、アンカーに飛ぶと、そこまでの領域がoverflow: hiddenの中に入ってしまうという、致命的な不具合を見つけました。 なので、多少使うシーンを選ぶ必要があるようです。
CSSレイアウトの弱点を埋める革新的なテクニックだと思っただけに、とても悲しいです。

コリス
on 2007年12月27日

> wu さん

情報、ありがとうございます。

ちょっと、wuさんの説明いただいた状況がよく分からないので、よければ、詳細やサンプルなど教えていただけますか?

とりあえず、ページ内アンカーを設置したサンプルページを用意してみました。

サンプルページ(h2-01)

wu
on 2007年12月27日

コリスさん
返信ありがとうございます。

僕は自分の配付テンプレートでこのテクニックを利用させて頂いたのですが、例えば以下のページ
不具合の再現ページ1
このページのコメント部分のフラグメント識別し(#comments)を利用してリンクを設定した場合、次のようになってしまいます。
不具合の再現ページ

コリスさんのサンプルページですと、
サンプル (不具合を再現)

となります。

何か解決方法は無いかと試行錯誤しているのですが、今のところどうにもできていません。涙

コリス
on 2007年12月27日

> wu さん

やっと、意味が分かりました。
ページ内アンカーへのリンクをクリックすると、消えてしまいました。
これは、けっこう致命的ですね。

何かよい対処法が無いか僕の方でも調べてみます。

コリス
on 2007年12月27日

> wu さん

IE6, Fx2, Op9で問題無い版のサンプルをアップしてみました(IE7, Safariではダメです)。

サンプル

divを余分に2つと、ダミーのアンカー(position:absolute;)を追加しています(実際に使用する場合はみえないようにする)。

IE7は、いろいろ試してみましたが、無理そうでした。
ページ内アンカーを設置している場合は、このCSSを使わない方がいいかもしれませんね。

wu
on 2007年12月28日

コリスさん
わざわざありがとうございます。
なかなか難しいのですね。

先ほど、私のブログにて、このテクニックに関するコメントを頂きました。

他にも細々とした問題を孕んでいるようです。
無念…。

コリス
on 2007年12月28日

> wu さん

配布用だと、条件限定ではなく汎用性を高くしないといけないため、これを採用するのは難しいかもしれませんね。

net-mercurius blog
on 2008年2月19日

08.02.18 HDDVD撤退。…

CSS Spriteを活用しよう (designwalker)
CSSでのロールオーバーでは、使った事ありますけど、なるほど。

高さの異なるカラムを揃えるス (more…)

Cyber Support
on 2008年5月30日

高さの異なるカラムを揃えるスタイルシート、に絡む諸々の問題

またリニューアル中のページについてですが、テーブルデザインだ、ということは既に書きました。それをMODxに取り込んだのですが、やはりそのままでは我慢できず、テーブルを取り外…

とんでもブログ ~ プログラマのWeb開発メモ
on 2008年8月26日

CSS / スタイルシートで高さを合わせる、高さ100%を実現する

スタイルシートのfloatによる段組で、メニューと本文を2段に分けるっていうシチュエーションはよくあると思います。
そのとき、メニューを本文の長さにあわせようとして、スタイルシ…

masaakibの日記
on 2008年9月28日

[css]idでページ内リンクと2段組みの高さ合わせ裏技について

併用すると、ページ内リンクを使ったページのコンテンツ表示が、id属性の及ぶ範囲しか表示されなくなる。 position:absolute の指定があるタグは助かる? 例えば、 <div class="wrapper clear…

Abdiel
on 2008年10月8日

はじめまして。

こちらの方法を試してみたのですが、IEで表示したページを印刷しようとしたところ、「overflow: hidden;」を指定した部分が印刷できなくなるようです。

「overflow: hidden;」はどうしても指定が必要なんですよね?
レイアウトを保持したまま印刷できるとありがたいので、代用できる方法などがあれば良いのですが…

カラムの高さを合わせるのって、なかなかうまい方法が見つからないですね。

コリス
on 2008年10月8日

> Abdiel さん

IEだと、ダメですね。
情報、ありがとうございます。

このトリックを使用して、IEでプリント対応するとなると、プリント用のスタイルシートを用意するしかなさそうです。
でも、そうなると、そもそも普通に制作した方がよさそうですね。

ぴー
on 2009年3月18日

こんな方法があるんですね☆
ドリームウェーバーで開くと32768pxが表示されてきになりますが、プレビューした時に高さがそろってるのは見た目的に美しいので使わせていただきます!

ページの先頭へ




© coliss

RSS