在前端開發(fā)當(dāng)中,我們經(jīng)常需要給頁面添加一些動態(tài)效果,使用 CSS 可以輕松地實現(xiàn)這一目的,但是由于瀏覽器對 CSS 支持的不完全相同,所以為了讓網(wǎng)站在不同的瀏覽器下都能正常運行,我們需要在樣式屬性前加上相應(yīng)的前綴,如-webkit-、-moz-、-o-等等。這些前綴的添加是一件繁瑣的工作,為了提高工作效率,我們可以使用 JavaScript 來自動控制 CSS 的前綴。
下面是一個簡單的例子,我們先定義一個函數(shù)名為getVendorPropertyName,用于獲取樣式屬性的前綴:
function getVendorPropertyName(propertyName) { var prefixes = ['', '-ms-', '-moz-', '-webkit-', '-o-']; var style = document.createElement('testStyle'); for (var i = 0; i< prefixes.length; i++) { var property = prefixes[i] + propertyName; if (style.style[property] !== undefined) { return property; } } return null; }
接下來,我們可以使用上面的函數(shù)來設(shè)置樣式,例如下面的代碼用于設(shè)置邊框半徑:
var radius = getVendorPropertyName('borderRadius'); $('div').css(radius, '10px');
上述代碼調(diào)用了 $() 查詢符來選中 div 元素,并使用 getVendorPropertyName 函數(shù)獲取瀏覽器適配的邊框半徑屬性名稱,將設(shè)置的值作為第二個參數(shù)傳遞給 .css 函數(shù)。
通過 JavaScript 控制 CSS 使用前綴,可以大大提高我們的工作效率,減少工作量。不過需要注意的是,在使用這種方法時,我們需要確保樣式屬性前綴的存在性,避免代碼出現(xiàn)異常。