流動的で柔軟な湾曲したコーナー ボックスを作成したいと考えています。理想的には、コンテンツがボックスの上部/下部に表示されるように、汎用性が高い必要があります。
当然、4 つの要素 (div) と 1 つの画像を使用できるはずです。IE6 を除いて、ほぼすべてのブラウザーでこれを機能させることができます。
http://www.schillmania.com/projects/dialog2/basic.htmlのコードを変更 して、次のマークアップと css を作成しました。
<div class="boxtl boxcontent">
<div class="boxtr boxcontentside">tr</div>
<p>This is the top half of the box</p>
<p> content! </p>
<p> content! </p>
</div>
<div class="boxbl boxcontent2">
<div class="boxbr boxcontentside">br</div>
<p>This is the bottom half of the box</p>
<p> content! </p>
<p> content! </p>
</div>
.boxtl, .boxtr, .boxbl, .boxbr {position:relative; zoom:1; background: url(../revised-images/testbox2.png) no-repeat 0 0; _background: url(../revised-images/testbox2ie.png) no-repeat 0 0; height:auto;}
.boxtl {margin-right:20px; }
.boxtr {margin-right:-20px; width:20px; height:20px; position:absolute; left:100%; top:0; background-position: 100% 0; }
.boxbl {margin-right:20px; background-position: 0 100%;}
.boxbr {margin-right:-20px; width:20px; position:absolute; left:100%; top:0; background-position: 100% 100%;}
.boxcontent {padding:20px 0 1px 20px; position:relative; zoom:1; _overflow-y:hidden; width:auto;}
.boxcontentside {height:100%; _height:2000px;}
大きな単一のボックス画像 (2000px H/W) を使用しました。この方法のアイデアは、アルファ透明度 (コーナー、シャドウなど) をオーバーラップなどなしで使用できるということです。
.
問題は IE6 です。背景画像の垂直方向の配置に似た処理を拒否します。上位 2 つの div (.tl と .tr) の背景位置を上から 50% に変更しようとしましたが、IE6 では 0 のままです。
フル/ロングハンドの背景プロパティ (background-image/background repeat/background-position) を使用してみました。また、x/y バージョン (background-position-x/background-position-y) などを試しました。
_height: または _overflow-y: プロパティを使用して IE が必要な高さを伸ばすようにすると、画像を垂直方向に配置する機能が損なわれるようです。
これどうやってするの?