2017-08-24 68 views
0

PHP - 嘗試爲要應用於單個CSS選擇器的漸變背景定義兩種顏色停止。我需要它們由用戶單獨選擇(通過顏色選擇器)。我一直在用PHP定義背景顏色(命名爲:$ color_gradient &返回:'#f7f7f7';作爲用戶的默認開始),所以用戶可以選擇漸變的基本顏色(通過PHP ),然後我在css中設置了顏色到alpha的漸變疊加層(所以用戶選擇的背景顏色漸變爲黑色或白色的結束顏色)以獲得最接近我嘗試完成的效果,但它仍然相當侷限於我在疊加層的CSS中設置的任何顏色,並且我不希望用戶必須編輯css文件中的顏色代碼 - 我寧願讓PHP處理它以便用戶可以定義漸變的顏色而不僅僅是一種顏色。PHP - 嘗試爲漸變背景區域定義兩種顏色的中止區域,用戶可以使用顏色選擇器同時選擇兩種顏色

function theme_customizer_get_default_gradient_color() { 
    return '#f7f7f7'; 
} 

$color_gradient = get_theme_mod('theme_gradient_color', 
theme_customizer_get_default_gradient_color()); 

    $css .= (theme_customizer_get_default_gradient_color() !== $color_gradient) ? 
sprintf('  
    .nav-primary, 
    .site-footer { 
     background-color: %1$s; 
    } 
    ', $color_gradient) : ''; 

if (theme_customizer_get_default_gradient_color() !== $color_gradient 

有沒有辦法來定義類似「左」 &「右」,在十六進制或RGB顏色,說,一個區域的背景顏色,這樣在PHP中定義的兩種顏色被視爲各佔一半的漸變和用戶可以分別選擇每種顏色,他們仍然融合在一起?

或者有沒有辦法讓PHP處理覆蓋(而不是在CSS中處理),這將保持一個alpha-to-color項目,而不是在用戶選擇一種新顏色後更改爲純色? (我擔心一旦用戶更改爲默認設置以外的其他顏色時,透明度會被覆蓋。)

我不想找任何人爲我編碼;我只需要在某個方向上輕輕一點。

回答

0

在CSS中,漸變使用背景圖像。嘗試在函數中爲每種顏色和方向定義變量;例如:

background-image: linear-gradient(to right, $color1, $color2); 

更多信息:https://developer.mozilla.org/en-US/docs/Web/CSS/linear-gradient

+0

可能的工作。我今晚會玩一下這個代碼,看看它是否可以發揮一些魔力。謝謝。 –

+0

祝你好運;讓我知道它是如何運作的,如果我能有更多的幫助。 – pixleight

+0

好吧,我不得不把它擱置幾個星期,但最後我試圖讓這個功能完整。在這一點上,我有customize.php文件設置用戶選擇的兩種顏色,但是,因爲他們的目標是相同的CSS第二種顏色只是覆蓋第一種,這是預期的,因爲我沒有任何進一步的方向應用於我希望代碼混合兩種顏色的方式。所以我的下一步就是放置你建議的代碼片段。無論我把它放在哪裏,大多數時候它都會被忽略(除非我把它白屏)。 –