javascript学習ノート(2)jsは外部css様式表のstyle値を呼び出して、予測できない高さのDIVの高さを獲得します.

2860 ワード

前の日記の中でデモの二つの不足を改善します. 
 
  • jsはhtml内部のcssスタイルコードしか修正できません.
  • divの高さが固定されていません.非表示領域の文字が変動するとレイアウトが悪くなります.
  •  
    1.js外部cssスタイルシートのスタイル値を呼び出します.
    cssスタイルシートには3つの書き方があります.
     
  • インライン・スタイル:Tagに書いてあります.インライン・スタイルはすべてのTagにのみ有効です.
  • 内部様式(internal Style Sheet):HTMLの中に書いてあります.内部様式はあるページにのみ有効です. 
  • 外部様式表(External Style Sheet):多くのページで同じスタイルを使う必要がある場合、スタイルをcssを後ろ綴りのCSSファイルに書いて、これらのスタイル(Steylas)を使う必要があるページでこのCSSファイルを参照してください. 
  •         JavaScriptでは、document.getElement ById(id).style.XXXを通じてXXXの値を取得することができますが、意外にも、埋め込みによって設定されたスタイル値、すなわちstyle属性に設定された値しか取れません. 
            解決策:currentStyle、runtimeStyle、get ComputatidStyle標準のスタイルを導入する:
     
     
    /*Get css property value from extenal style sheet for IE browser */
    if(hid.currentStyle) {
          display = hid.currentStyle['display'];
    }
    /*Get css property value from extenal style sheet for FireFox, Chrome browser */
    else if(window.getComputedStyle) {  
          display = window.getComputedStyle(hid, null)['display'];
    }
    参照リンク:http://apps.hi.baidu.com/share/detail/22727000
     
     
    予知できない高さのDIVを得る.
    以下は完全に以下から抜粋します.  予知できない高さのDIVを得る。
     
    元素のclientHeight属性によって元素の高さが得られます.   var height = element.client Height;      このやり方の限界:   1. 要素のdisplay属性がnoneに設定されている場合、 それでは得られた結果は0です.   2. safariブラウザでは、element.offset Heightを実際の高度にする必要があります.これはsafariブラウザのbugです.      以下はProttotypeが提供する方法です.各種ブラウザに対応できます.要素が隠れている場合も、元素サイズを正確に入手できます.   get Dimensions: function(element) {       element = $(element)       var ディsplay = $(element).get Steyle('display')       if (display != 'none && ディsplay != null // Safari bug         return {width: element.offset Width、 height: element.offset Height;          // All *Width and *ヘight properties give 0 オン elements with ディsplay none       // そ enable the element temporarly       var els = element.style       var オリジナリティVisibility = els.visibility       var origginal Position = els.position       var オリジンディスク = els.display       els.visibility = 'hidden;       els.position = 'absolute;       els.display = 'block;       var オリジンWidth = element.client Width       var originalHeight = element.client Height;       els.display = originalDisplay;       els.position = origginal Position       els.visibility = oricginal Visibility;       return {width: オリジンWidth、 height: originalHeight;     }    
     
    Prottypeが提供する方法はとても賢いです.
     els.visibility = 'hidden;    els.position = 'absolute;    els.display = 'block;  手に入れました
     display:none のwidth、height.
    自分は裸でjsコードを書くのがバカです.