アウトライン
プロパティ |
効果 |
clientTop、clientLeft |
左境界線のサイズ |
clientWidth、clientHeight |
国境を含むだけでなく、パディングを含む、幅と高さ、 |
ファンクションすぐ
- 作成後すぐに実行され、それが名前の競合を避けるために、独立したスコープを作成します。
- (関数(){})()と(関数(){}())は、2つの形態があります
- 最初のパラメータは、ブラケット、機能がすぐ内側または外側の外側括弧内に書き込むことができる第2のブラケットの入力引数を設定するために使用され
(function() {
console.log('hello')
}())
(function() {
console.log('world')
})()
淘宝網は、元のコード分析をflexible.js
(function flexible(window, document) {
var docEl = document.documentElement
var dpr = window.devicePixelRatio || 1
function setBodyFontSize() {
if (document.body) {
document.body.style.fontSize = (12 * dpr) + 'px'
} else {
document.addEventListener('DOMContentLoaded', setBodyFontSize)
}
}
setBodyFontSize()
function setRemUnit() {
var rem = docEl.clientWidth / 10
docEl.style.fontSize = rem + 'px'
}
setRemUnit()
window.addEventListener('resize', setRemUnit)
window.addEventListener('pageshow', function(e) {
if (e.persisted) {
setRemUnit()
}
})
if (dpr >= 2) {
var fakeBody = document.createElement('body')
var testElement = document.createElement('div')
testElement.style.border = '.5px solid transparent'
fakeBody.appendChild(testElement)
docEl.appendChild(fakeBody)
if (testElement.offsetHeight === 1) {
docEl.classList.add('hairlines')
}
docEl.removeChild(fakeBody)
}
}(window, document))