JavaScript盒子模型及其屬性

JavaScript盒子模型,指的是通過JavaScript中提供的一系列的屬性和方法着饥,獲取頁面中元素的樣式信息值。

**內(nèi)容的寬度和高度: **設(shè)置的width/height這兩個(gè)樣式就是內(nèi)容的寬和高花椭,如果沒有設(shè)置height值莹痢,容器的高度會(huì)根據(jù)里面的內(nèi)容進(jìn)行自適應(yīng),這樣獲取的值就是真實(shí)的內(nèi)容的高; 如果設(shè)置了固定的高度了鞠值,不管內(nèi)容是多了還是少了媚创,其實(shí)我們內(nèi)容的高度指的都是設(shè)定的那個(gè)值。
真實(shí)內(nèi)容的寬度和高度: 這個(gè)代指的是實(shí)際內(nèi)容的寬高彤恶,和自己設(shè)置的width/height沒有必然的聯(lián)系钞钙。例如: 設(shè)置高度為200px,如果內(nèi)容有溢出粤剧,那么真實(shí)內(nèi)容的高度是要把溢出的內(nèi)容寬高也要加進(jìn)去歇竟。

client系列 (當(dāng)前元素的幾個(gè)私有屬性)
clientWidth/ clientHeight: 內(nèi)容的寬/高+左右/上下padding,和內(nèi)容溢出是沒有關(guān)系的抵恋。
clientLeft: 左邊框的寬度;
clientTop: 上邊框的高度 (borderLeftWidth/ borderTopWidth)焕议。

offset系列
offsetWidth/ offsetHeight: clientWidth/clientHeight + 左右/上下邊框,和內(nèi)容溢出無關(guān)弧关。
offsetParent: 當(dāng)前元素的父級參照物盅安。
offsetTop/ offsetLeft: 當(dāng)前元素的外邊框距離父級參照物內(nèi)邊框的偏移量。

scroll系列
scrollWidth/ scrollHeight: 和clientWidth/ clientHeight一模一樣世囊,其前提: 容器的內(nèi)容沒有溢出别瞭。
如果容器中的內(nèi)容有溢出,獲取的結(jié)果是如下規(guī)則:
1). scrollWidth: 真實(shí)內(nèi)容的寬度(包含溢出) + 左padding株憾。
2). scrollHeight: 真實(shí)內(nèi)容的高度(包含溢出) + 上padding蝙寨。
獲取到的結(jié)果都是約等于的值, 因?yàn)? 同一個(gè)瀏覽器, 是否設(shè)置overflow='hidden'對于最終的結(jié)果是有影響的; 在不同的瀏覽器中,獲取到的結(jié)果也是不相同的嗤瞎。
scrollLeft/ scrollTop: 滾動(dòng)條卷去的寬度/高度墙歪。


關(guān)于JavaScript盒子模型屬性取值的問題
通過這13個(gè)屬性值獲取的結(jié)果永遠(yuǎn)不可能出現(xiàn)小數(shù),都是整數(shù); 瀏覽器在獲取結(jié)果的時(shí)候, 會(huì)在原來真實(shí)的結(jié)果上進(jìn)行四舍五入贝奇。


關(guān)于操作瀏覽器本身的盒子模型信息
clientWidth/ clientHeight: 是當(dāng)前瀏覽器可視窗口(一屏幕的)的寬度和高度虹菲。
scrollWidth/ scrollHeight: 是當(dāng)前頁面的實(shí)際寬度和高度(所有屏加起來的寬度和高度), 這些是約等于的值。
不管哪些屬性掉瞳,也不管是什么瀏覽器毕源,也不管是獲取還是設(shè)置浪漠,想要都兼容,需要寫兩套:
document.documentElement[attr]||document.body[attr]; 必須document.documentElement在前霎褐。
設(shè)置址愿,獲取都要寫兩套。

    document.documentElement.clientWidth || document.body.clientWidth;
    document.documentElement.scrollTop || document.body.scrollTop;
    document.documentElement.scrollTop = 0;
    document.body.scrollTop = 0;

編寫一個(gè)有關(guān)于操作瀏覽器盒子模型的方法

    // win: 編寫一個(gè)有關(guān)于操作瀏覽器盒子模型的方法
    // 如果值傳遞了attr, 沒有傳遞value, 默認(rèn)的意識(shí)是獲取樣式值瘩欺。
    // 如果兩個(gè)參數(shù)都傳遞了, 意思是設(shè)置某一個(gè)樣式屬性的值必盖。
    function win(attr, value) {
        if (typeof value === 'undefined') { // 說明沒有傳遞value
            return document.documentElement[attr] || document.body[attr];
        }

        document.documentElement[attr] = value;
        document.body[attr] = value;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市俱饿,隨后出現(xiàn)的幾起案子歌粥,更是在濱河造成了極大的恐慌,老刑警劉巖拍埠,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件失驶,死亡現(xiàn)場離奇詭異,居然都是意外死亡枣购,警方通過查閱死者的電腦和手機(jī)嬉探,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來棉圈,“玉大人涩堤,你說我怎么就攤上這事》竹” “怎么了胎围?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長德召。 經(jīng)常有香客問我白魂,道長,這世上最難降的妖魔是什么上岗? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任福荸,我火速辦了婚禮,結(jié)果婚禮上肴掷,老公的妹妹穿的比我還像新娘敬锐。我一直安慰自己,他們只是感情好呆瞻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布滞造。 她就那樣靜靜地躺著,像睡著了一般栋烤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挺狰,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天明郭,我揣著相機(jī)與錄音买窟,去河邊找鬼。 笑死薯定,一個(gè)胖子當(dāng)著我的面吹牛始绍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播话侄,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼亏推,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了年堆?” 一聲冷哼從身側(cè)響起吞杭,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎变丧,沒想到半個(gè)月后芽狗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡痒蓬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年童擎,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片攻晒。...
    茶點(diǎn)故事閱讀 39,902評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡顾复,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鲁捏,到底是詐尸還是另有隱情芯砸,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布碴萧,位于F島的核電站乙嘀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏破喻。R本人自食惡果不足惜虎谢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望曹质。 院中可真熱鬧婴噩,春花似錦、人聲如沸羽德。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宅静。三九已至章蚣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間姨夹,已是汗流浹背纤垂。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工矾策, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人峭沦。 一個(gè)月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓贾虽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親吼鱼。 傳聞我的和親對象是個(gè)殘疾皇子蓬豁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容