デザイナーは、背景に画像を含むページレイアウトを描きました。 最初は、これがモニターの解像度に応じて幅が広がる背景であると判断しました。
しかし、そこにはありませんでした。 デザイナーは、これはアプリケーションウィンドウの幅と高さの両方を変更すると縮小/拡大するスケーラブルな画像であると主張しました。
事前に顧客に警告しました-写真が読み込まれ1、最大解像度である-それは1600と識別され、動作し始めました。
理論:
この機能を実装するには、絶対位置mをいじる必要があります。 背景を拡大縮小できないので、比例して拡大縮小する画像を下のレイヤーに配置する必要があり、その上に既にサイトグリッドに依存します。
概略図を図に示します。
練習する
HTML:
< div id ="page" > <br> < div id ="left" > <br> <br> <br> </ div > <br> < div id ="right" > <br> <br> </ div > <br> </ div > <br><br> < div id ="main" > <br> < div class ="foot" > <br> < ul > <br> < li >< a href ="#" title =" " > </ a ></ li > <br> < li >< a href ="#" title ="" > </ a ></ li > <br> </ ul > <br> < div class ="contacts" > <br> < span class ="copy" > Copyright; © 2009 </ span > <br> </ div > <br> </ div > <br> <!-- --> <br> < div class ="img" >< img src ="img/back_001.jpg" width ="100%" alt ="" title ="" /></ div > <br> </ div > <br> <br> * This source code was highlighted with Source Code Highlighter .
CSS:
- html {
- 高さ : 100 % ;
- }
- body {
- マージン : 0; パディング : 0;
- 高さ : 100 % ;
- }
- {
- アウトライン : なし ;
- }
- / *ラッパー画像* /
- #main {
- 位置 : 相対 ;
- z-index : 1 ;
- 高さ : 100 % ;
- }
- / *画像のあるレイヤー自体* /
- #main div .img {
- 表示 : ブロック ;
- 位置 : 絶対 ;
- 下 : 0; / *画像は常にページの下部にあります* /
- z-index : 10 ;
- 最小幅 : 1000px ;
- 幅 : 100 % ;
- _width : expression ( ( documentElement.clientWidth || document .body .clientWidth ) < 1004 ? '1004px' : '100%' ) ;
- }
- / *著作権と下のメニューのあるレイヤー* /
- #main div .foot {
- 位置 : 絶対 ;
- 下 : 80px ;
- z-index : 20 ;
- 幅 : 100 % ;
- 高さ : 30px 。
- 最小幅 : 1000px ;
- _width : expression ( ( documentElement.clientWidth || document .body .clientWidth ) < 1004 ? '1004px' : '100%' ) ;
- }
- #main div .foot ul {
- リストスタイル : なし 。
- フォント : 通常の 12px Verdana;
- マージン : 14px 0 0 75px ;
- パディング : 0;
- }
- #main div .foot ul li {
- 表示 : インライン ;
- マージン : 0 120px 0 0;
- }
- #main div .foot ul li a 、 #main div .foot ul li a : ビジット { color : #faffcd ; }
- #main div .foot ul li a : hover { color : #163133 ; }
- #main div .contacts {
- 位置 : 絶対 ;
- 右 : 44px 。 top : 14px ;
- 幅 : 360px ;
- フォント : 通常の 11px Verdana;
- 色 : #faffcf ;
- }
- / * CAMサイト* /
- #page {
- 位置 : 絶対 ;
- top : 0; 左 : 0;
- z-index : 30 ;
- 幅 : 100 % ;
- オーバーフロー : 非表示 ;
- マージン : 0 0 300px 0;
- 最小幅 : 1000px ;
- _width : expression ( ( documentElement.clientWidth || document .body .clientWidth ) < 1004 ? '1004px' : '100%' ) ;
- }
- #left {
- 幅 : 290px ;
- フロート : 左 ;
- }
- #right {
- マージン : 0 48px 0 370px ;
- 位置 : 相対 ;
- 色 : #4c4f51 ;
- フォント : 通常の 12px / 18px Verdana;
- }
ie6 "_"にxackを使用するか、条件付きコメントを使用するかは好みの問題です。<br />ホリバーを配置しないでください:)
すべて問題ないようですが、画像ラッパーブロックの高さ(div id = "main")をデータdiv id = "page" + 400pxのレイヤーの高さに設定する必要があります-それ以外の場合は、サイトコンテンツと画像別の人生を生きる。 この目的のために、オンロード時にハングするJSを使用します
Js
- <スクリプト言語= "javascript" >
- 機能テスト( ) {
- var h = 400 +ドキュメント。 getElementById ( 'page' ) 。 offsetHeight ;
- if ( h > 600 ) {
- ドキュメント。 getElementById ( 'main' ) 。 スタイル 。 高さ = h + 'px' ;
- }
- }
- </スクリプト>
例
FFのホスティングバナーのため、IEの白いバー:)
バグ修正
私はこれのために大きなモニターを忘れていました、我々は窓の高さを計算します
function test(){<br> var client = document .compatMode== 'CSS1Compat' && !window.opera? document .documentElement.clientHeight: document .body.clientHeight; ;<br> var h = 270 + document .getElementById( 'page' ).offsetHeight;<br> if (h > client) { <br> document .getElementById( 'main' ).style.height = h + 'px' ;<br> }<br> } <br><br> * This source code was highlighted with Source Code Highlighter .
CSSの変更
<br>#main {<br> position: absolute;<br> top:0; left:0; right:0; bottom:0;<br> z-index: 1;<br> height:100%;<br>} <br><br> * This source code was highlighted with Source Code Highlighter .
誰かが私にふさわしいなら嬉しいです。