自學html/css剛一個月,目前學到c3及移動端頁面開發,在看類似京東攜程淘寶之類的網站代碼的時候看到給一些css3常用屬性添加了私有前綴,心生疑惑,還煩請大神解答:
1. 添加了私有前綴,任何版本的瀏覽器就一定能讀懂并執行該屬性嗎?
在我的理解,添加私有屬性是為了讓瀏覽器執行那些還未發布在w3c標準中,但已經比較成熟的屬性。例如border-radius,在新版本瀏覽器中已全面支持,那我現在還是否要給border-radius添加瀏覽器私有前綴?(以防低版本瀏覽器不支持?)
其次,是不是只要我給瀏覽器添加了私有前綴,例如-ms-border-radius,低版本的ie瀏覽器就也能支持?(添加-webkit-,低版本的chrome也能支持?)
在這個問題上,我嘗試呼叫ie的控制臺,使用ie歷史版本進行測驗,發現在樣式中如果只給-ms-border-radius: 50%;,ie6\7\8\9\11都沒辦法顯示圓形,這是為什么?
但只寫border-radius:50%的話,ie9/11可以顯示圓形(這是正常的)。
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
div {
width: 500px;
height: 500px;
background-color: green;
-ms-border-radius: 50%;
/* border-radius:50% */ /*如果只寫這句話就正常*/
}
</style>
</head>
<body>
<div></div>
</body>
2. 到底為什么要加私有前綴?什么時候加?
在m.ctrip.com中關于頂部搜索欄水平居中有這么一句陳述句:
top: 0;
left: 50%;
-webkit-transform: translateX(-50%);
transform: translateX(-50%);
在學習css3的2D轉換的時候,我并沒有添加-webkit-私有前綴,在chrome瀏覽器中也能很好的執行,但是我在W3Cschool看到2D轉換的兼容性問題時,它說chrome和safari要加-webkit-,這我就沒有搞懂了?我不加也能在chrome中執行,為什么還需要加呢?
我的chrome版本 79.0.3945.88(正式版本) (64 位)
以上兩個問題是我最近比較疑慮的,查了好久還是沒有得到解答,于是在CSDN上注冊賬號發帖提問,還請大神幫助!感謝!
uj5u.com熱心網友回復:
不同瀏覽器的樣式寫法是有差異的,不加前綴使用插件打包的時候會默認加上其他瀏覽器前綴的css。去看看相關文章就懂了,主要是處理瀏覽器兼容問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/65644.html
標籤:HTML(CSS)
