2012-07-13 9 views
5

私のHTMLページでは、私は2つのdivをコンテナdivの中に持っています。 2つの内側のdivには「位置:aboslute」があります。彼らはコンテナのdivの左下隅に配置する必要があるので、絶対的なdivsは、お互いの隣に

これは、コンテナdivに内部divが1つだけある場合に効果的です。しかし、2番目のdivを追加すると、2番目のdivは最初の内側divのトップに置かれます。どちらが理にかなっています。しかし、今、私はお互いに重なり合っているのではなく、お互いに横たわる方法を見つけようとしています。

内部divが生成されます。だから私は手動でIDを追加することはできません。彼らが持っているのは一つのクラス名だけです。

Example

<div id="container"> 
    <div class="icon">ICON1</div> 
    <div class="icon">ICON2</div> 
</div> 
#container { 
    position: relative; 
    width: 200px; 
    height: 200px; 
    border: 1px solid red; 
} 

.icon { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
    border: 1px solid green; 
} 

誰もがこれを解決するためにどのように任意のアイデアを持っていますか?

+0

あなたはそれらを相対的な位置に置くことができるので、親(コンテナ)要素に対するレイアウトを維持します – jeschafe

+0

'div'要素ではなく、 'li'に各アイコンを配置するとどうなりますか?リストアイテムをスタイルすることは非常に柔軟でシンプルです! – Liggy

+0

ちょうどfirst-child/last-childを使用しています。私の答えは – Huangism

答えて

6

、あなたはあなたがそのコンテナ内の好きな方法のアイコンをフロートまたは配置することができ、代わりに、個々のアイコンのラッパー要素の絶対位置を使用します。

<div id="container"> 
    <div class="icon-wrapper"> 
     <div class="icon">ICON1</div> 
     <div class="icon">ICON2</div> 
    </div> 
</div> 
#container { 
    position: relative; 
    width: 200px; 
    height: 200px; 
    border: 1px solid red; 
} 
.icon { 
    border: 1px solid green; 
    float:left; 
} 
.icon-wrapper { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
} 

デモ:http://jsfiddle.net/sYGfq/3/

0

2つしかない場合は、CSSのfirst-childまたは:last-childを使用できます.HTMLを追加する必要はありません。 CSSの数行は、最後の子のためにここにhttp://jsfiddle.net/sYGfq/6/

CSS

.icon:last-child { 
    left: 200px; 
    border: 1px solid green; 
} 
+0

です。ありがとうございます。しかし、last-childがIE7でサポートされているとは思いません。 – w00

+0

最初の子を使用し、そのうちの1つがサポートされています。IE 7のhttp://jsfiddle.net/sYGfq/8/を参照してください。 – Huangism

+0

@Huangism IEでコンテナdivから1つ落ちたのでIEでチェックしましたか?さらに、3つ以上のアイコンを持っているとき、「ファースト・チャイルド」は何をするのですか? – Vivendi

0

からすべてのボーダーとパディングを削除し、テーブル内の別々のセルにdiv要素の両方を入れてそれを

例を世話をしますテーブルを作成し、親divの左下隅に絶対配置します。

<div id="container"> 
<table class="none" id="table1"> 
<tr class="none"> 
<td class="none"> 
<div class="icon">ICON1</div> 
</td> 
<td class="none"> 
<div class="icon">ICON2</div> 
</td> 
</tr> 
</table> 
</div> 

#container { 
    position: relative; 
    width: 200px; 
    height: 200px; 
    border: 1px solid red; 
} 

.icon { 
    border: 1px solid green; 
} 

.none { 
    border: 0; 
    padding: 0; 
} 

#table1 { 
    position: absolute; 
    bottom: 0; 
    left: 0; 
} 

プレスト!

関連する問題