我是朋友乾淨的GUI。不幸的是,我需要覆蓋「chrome:// global/skin」樣式表出於某種原因。在XUL中實現基於操作系統的樣式表
什麼是最好的方法,實現不同的基於os的樣式表到xul文件 - 例如。對於像Windows XP,Windows aero或macosx aqua(overlay-aero.css,overlay-aqua.css等)的GUI。
Mozilla是否爲基於os的樣式表實現提供任何標準?
我是朋友乾淨的GUI。不幸的是,我需要覆蓋「chrome:// global/skin」樣式表出於某種原因。在XUL中實現基於操作系統的樣式表
什麼是最好的方法,實現不同的基於os的樣式表到xul文件 - 例如。對於像Windows XP,Windows aero或macosx aqua(overlay-aero.css,overlay-aqua.css等)的GUI。
Mozilla是否爲基於os的樣式表實現提供任何標準?
不知道你打算如何疊加樣式:是的,通常的做法是使用manifest flags。例如,如果你在你的擴展的chrome.manifest
文件中定義一個style overlay,你會做這樣的:
style chrome://browser/content/browser.xul chrome://myExtension/skin/overlay-win.css os=WINNT
style chrome://browser/content/browser.xul chrome://myExtension/skin/overlay-osx.css os=Darwin
style chrome://browser/content/browser.xul chrome://myExtension/skin/overlay-linux.css os=Linux
您還可以使用Mozilla-specific media features樣式表中的一個操作系統的不同主題之間進行區分。例如:
@media all and (-moz-windows-classic)
{
...
}
@media all and (-moz-windows-theme: aero)
{
...
}
@media all and (-moz-windows-compositor)
{
...
}
聽起來像你想創建自己的Firefox主題(必不可少的CSS文件和圖像,取代瀏覽器的標準外觀組成的擴展)。在Mozilla開發中心有關於此的整個部分:https://addons.mozilla.org/en-US/developers/docs/how-to/theme-development
謝謝你,馬修。你錯了,我不想創造「另一個主題」。這是一個複雜的擴展。例如:我在一個簡單的行'(display:table-cell;)'中顯示兩個groupboxes - 但這個解決方案在macosx中看起來很愚蠢。我如何才能爲aero用戶實現aero.css文件? – mate64
好消息 - 再次感謝你,弗拉基米爾! – mate64