none
如何更改Web上的系統顏色 RRS feed

  • 問題

  • 請問,在一般的應用程式裏,

    可以透過 SetSysColors 等 APIs 去更改系統顏色,比如 Disabled 時的顏色。

    但如果我的應用程式是掛在一個 WebBrowser 上,畫面是一個 HTML 時。

    這些 APIs 似乎沒有功效。

    不知道是否有人知道或方向給於指導。

    2006年12月14日 上午 07:34

解答

  • CSS 沒有辦法修改 DISABLE 的顏色,SetSysColor 好像也不能修改這個顏色
    不過,如果只是強化效果,可能透過動態變更文字的效果

    <div id = 'lbl' style = 'background:yellow; color:blue'  disabled>Hello, World</div>
    <button onclick = 'TurnTo(false);'>Disable</button>
    <button onclick = 'TurnTo(true);'>Enabled</button>
    <script type = 'text/javascript'>
    <!--//
        var lbl = document.getElementById('lbl');
        function TurnTo(b){
           
            lbl.disabled = b;
            if (b){
                lbl.style.fontWeight = 'bold';
            }else{
                lbl.style.fontWeight = '';
            }
        }
    //-->
    </script>


    在不然你就是透過 DIV 實作一個 tip 覆蓋在那個欄位上層,使欄位突顯出來...

    by Chui-Wen Chiu
    Blog: http://chuiwenchiu.spaces.live.com
    2006年12月15日 下午 02:52

所有回覆

  • 如果 html 內有指定顏色或樣式,系統顏色變更不會影響到 html 顏色。
    2006年12月14日 下午 12:28
  • 我想你透過 CSS + Javascript 就可以達到你的需要了


    by Chui-Wen Chiu
    Blog http://chuiwenchiu.spaces.live.com
    2006年12月14日 下午 01:58
  • 我後來的確也是用 CSS + JavaScript 的方式去修改了

    但目前測試的結果,只能用 BackGroundColor 的方式去讓背景色『深』一點,

    這樣前景色的字就會比較明顯一點,但這樣一來,跟其它『正常』的欄位比較起來就突兀了一點。

    所以,不知道是我試的方式有錯呢?  還是有其它的方法可解。

     

    2006年12月14日 下午 03:17
  • 不是很清楚你要調整的是那一部份,如果只是很單純的前景和背景色,可以使用下面的 CSS

    <div style = 'background:yellow; color:blue'>Hello, World</div>

    如果 CSS 不熟,可以使用 TopStyle 輔助工具

    Chui-Wen Chiu
    Blog http://chuiwenchiu.spaces.live.com

    2006年12月15日 上午 08:23
  • 啊~~~原來是我提的問題沒有很清楚~~

    非常抱歉,其實我主要要問的是,當欄位被 Disabled 時,它的顏色不是會變淡灰色嗎?

    這一點對有些操作人員來說,在視覺上並不明顯,會有點吃力。

    所以以你所提的例子來說

    <div style = 'background:yellow; color:blue' >Hello, World</div>

    在正常情況下,是滿清楚的。

    但如果是 <div style = 'background:yellow; color:blue'  disabled>Hello, World</div> 時

    顏色就會比較淡了。

    所以我才會一開始去試用 SetSysColors 這個 API。但發現沒用。

    無論如何,還是謝謝你的回覆。 ^_^

    2006年12月15日 上午 09:02
  • CSS 沒有辦法修改 DISABLE 的顏色,SetSysColor 好像也不能修改這個顏色
    不過,如果只是強化效果,可能透過動態變更文字的效果

    <div id = 'lbl' style = 'background:yellow; color:blue'  disabled>Hello, World</div>
    <button onclick = 'TurnTo(false);'>Disable</button>
    <button onclick = 'TurnTo(true);'>Enabled</button>
    <script type = 'text/javascript'>
    <!--//
        var lbl = document.getElementById('lbl');
        function TurnTo(b){
           
            lbl.disabled = b;
            if (b){
                lbl.style.fontWeight = 'bold';
            }else{
                lbl.style.fontWeight = '';
            }
        }
    //-->
    </script>


    在不然你就是透過 DIV 實作一個 tip 覆蓋在那個欄位上層,使欄位突顯出來...

    by Chui-Wen Chiu
    Blog: http://chuiwenchiu.spaces.live.com
    2006年12月15日 下午 02:52
  • 非常感謝你,我試了一下,不小心以為 fontWeight='bold' 是有效的

    後來發現 TurnTo(false) 應該對應是到  Enabled 才是 :p  (筆誤了) 嘻~~

    不過,看來,IE 上的系統值可能暫時無法解了,只能透過一些其它方法來讓它突顯了

    再次感謝你的回覆~~ ^_^

     

    2006年12月15日 下午 03:14