在 Web 開發中,CSS(層疊樣式表)使開發人員能夠確定網站的視覺外觀和佈局。然而,由於不同的瀏覽器對CSS的支援機制不同,因此編譯器渲染網頁時可能會出現不一致的情況。
為了克服這個相容性問題,開發人員通常選擇使用 CSS hacks 來確保他們的網頁在不同的瀏覽器和裝置上顯示一致。其中一種駭客行為是星號屬性(也稱為星號屬性駭客),它用於針對對 CSS 的支援有限的特定版本的 Internet Explorer (IE)。
在本文中,我們將探討 CSS 中的星號屬性 hack,並討論其用途和限制。我們還將提供如何有效使用此技巧的範例以及在 CSS 程式碼中實現它的最佳實踐。
明星先行財產
這是一個 CSS hack,用來宣告 HTML 元素的不同屬性。前面帶有星號 (*) 或底線 (_) 的屬性,在 IE 7 及以下版本的 IE 中僅呈現,而對於 IE 8 及更高版本,它會被編譯器視為垃圾。
文法
element{ background-color: red; // for other browsers _background-color: red; // for IE 6 and below *background-color: red; // for IE 7 and below }
現在,讓我們透過範例來更好地理解這一點。我們將使用此 hack 在 IE 6、IE 7 和其他瀏覽器中渲染屬性。
注意 - 此 hack 用於不同的瀏覽器,因此在指定的瀏覽器中執行程式以觀察正確的輸出。
範例
以下說明如何讓編譯器將 CSS 屬性渲染到 Internet Explorer 7 及更低版本中的元素。
<!DOCTYPE html> <html> <head> <title>Internet Explorer 7 and Below Versions</title> <style> .my-div { background-color: red; width: 30%; height: 80%; padding: 3px; letter-spacing: 1px; margin-top: 40px; /* default margin applied in all other browsers */ *margin-top: 0; /* IE6 margin */ } </style> </head> <body> <h1 id="Star-Preceded-Property">Star Preceded Property</h1> <h3 id="Given-below-is-a-div-element-whose-margin-top-will-be-in-IE-while-it-will-be-px-in-all-other-browsers">Given below is a div element whose margin-top will be 0 in IE 6 while it will be 20px in all other browsers.</h3> <div class="my-div"> This is my div element. </div> </body> </html>
對於 IE7 及以下版本,div 元素的 margin-top 為零。
如果您在任何其他瀏覽器中執行程式碼,則 div 元素的 margin-top 為 40px。
在上面的範例中,CSS 選擇器 .my-div 套用 40 像素的上邊距。但是,*margin-top: 0; 規則僅適用於 Internet Explorer 6,將邊距設為 0 像素。屬性名稱 (margin-top) 之前的星號 (*) 是「星號屬性 hack」中的「星號」。這是其他瀏覽器中的語法錯誤,因此它們會忽略這一行。
範例
在下面說明了另一種使編譯器將 CSS 屬性呈現給 Internet Explorer 6 及更低版本中的元素的另一種方法。它不適用於 IE 7。
<!DOCTYPE html> <html> <head> <style> .my-div { background-color: blue; /* default background color */ width: 30%; height: 80%; padding: 3px; letter-spacing: 1px; _background-color: red; /* background color in IE 6 and below versions */ } </style> </head> <body> <h1 id="Star-Preceded-Property">Star Preceded Property </h1> <h3 id="Given-below-is-a-div-element-whose-background-color-will-be-red-in-IE-and-below-while-it-will-be-blue-in-all-other-browsers">Given below is a div element whose background color will be red in IE 6 and below while it will be blue in all other browsers.</h3> <div class="my-div"> This is my div element. </div> </body> </html>
對於IE6及以下版本,div元素的背景顏色將為藍色。
如果您在任何其他瀏覽器中執行程式碼,背景顏色將為紅色。
在上面的範例中,CSS 選擇器 .my-div 會套用紅色背景顏色。但是,_background-color: blue; 規則僅適用於 Internet Explorer 6,將背景顏色設為藍色。
Star Property Hack 的用途與限制
「星號屬性」是過去使用的技術,用於使用 CSS 樣式來定位特定版本的 Internet Explorer。雖然它有效地實現了這一目標,但它也有一些優點和缺點。
用途
它可讓 Web 開發人員將各種特定的 CSS 樣式套用到舊版的 Internet Explorer,而不會影響所有其他瀏覽器中的結果。這有助於為跨多個瀏覽器的用戶創建一致且統一的體驗。
它易於使用並減少了程式碼數量,使其成為對 Web 開發人員有吸引力的替代方案。它阻止他們為特定瀏覽器編寫條件註釋或特定樣式表。
它在 Web 開發社群中被廣泛使用和流行,這使得找到範例和支援變得很容易。而且,它也很用戶友好。
限制
「星號先於財產」是一種駭客行為。這不是編寫 CSS 程式碼的標準且相容的方式。它依賴 Internet Explorer 中的一個錯誤來運作。此外,不保證它可以在瀏覽器的未來修改版本或其他瀏覽器中運作。
這使得程式碼更難以閱讀和維護。由於它涉及編寫非標準程式碼,因此如果沒有額外的註解或文檔,很難理解程式碼的用途。
這可能會導致意想不到的後果,例如影響頁面上的其他元素或導致瀏覽器出現意外行為。
結論
此技術是一種針對具有不同樣式的特定瀏覽器的方法,為 Internet Explorer 6 等舊版瀏覽器提供後備。總體而言,雖然「星屬性駭客」在當時很有用,但不再建議將其作為最佳選擇網頁開發實踐。現代 Web 開發技術專注於使用可在多個瀏覽器上運行的標準且相容的程式碼,而不是依賴特定於瀏覽器的駭客攻擊。
以上是CSS 中星號前面的屬性有什麼用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

了解如何通過Chris Coyier實施WordPress的Gutenberg編輯器來創建一個自定義Codepen塊,並為Sanity Studio提供預覽。

格子呢是一塊圖案布,通常與蘇格蘭有關,尤其是他們時尚的蘇格蘭語。在Tartanify.com上,我們收集了5,000多個格子呢


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

Dreamweaver CS6
視覺化網頁開發工具