デフォルトのヘッダーの写真の上にロゴを配置したいWordPressテーマ( http://twentyelevendemo.wordpress.com/ )
私の解決策:写真の前にロゴを追加し、その上にposition: absolute
を設定し、top/left/bottom/right
プロパティを設定せずに:
HTML:
<a id="header">
<img id="logo">
<img id="photo">
</a>
Css:
#logo {
position: absolute;
margin: 10px;
/* or padding: 10px; */
/* or border: 10px solid transparent;
only this works with my elderly iPhone Simulator.app */
}
別の例は、幅100%でdisplay: table-*
でレイアウトされた水平マルチレベルメニューですが、table-cell
sはposition: relative
をサポートしていないため、私の唯一の解決策は次のとおりです。 http://jsfiddle.net/pCe49/
IE6-7、Firefox1.5で動作し、Firefox0.8などでは動作しません。
それは良い解決策だと思いますか、それともすぐに崩壊する可能性のある非標準的なハックですか?
標準では、通常、上/下、左/右が自動である場合、デフォルトでposition: static
値:
http://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-width
http://www.w3.org/TR/CSS2/visudet.html#abs-non-replaced-height
AFAIK、階層的なcssルールに注意する必要があります。これは、top、left、およびその他の属性を指定しない場合、それらは親要素から継承されるか、ブラウザのcssでデフォルトで設定されるためです。私見ですが、要素を自分の値で初期化することをお勧めします。