2013-01-05 53 views
2

我正在開發一個WordPress主題,使用管理面板中的顏色選擇器,用戶可以在其中選擇自定義鏈接顏色。我希望鏈接懸停顏色與普通鏈接顏色相同,但變暗了10%。在更少的情況下,我可以使用鏈接顏色作爲變量,並使用@link-hover: darken(@link-color, 10%);,但那樣不會與PHP顏色選擇器連接。有沒有辦法讓PHP引用LESS或SASS mixin變量?或者,也許有其他解決方案可以獲得我期待的結果?我可以在PHP中使用LESS/SASS mixin顏色嗎?

使用:PHP 5.4.4/3.5的WordPress/LESS 2.7.1

我對WordPress的 「主題定製」(從hal gatewood)功能:

function stillcalm_customize_register($wp_customize) 
{ 
$colors = array(); 
    $colors[] = array('slug'=>'content_bg_color', 'default' => '#ffffff', 'label' => __('Background Color', 'stillcalm')); 
    $colors[] = array('slug'=>'content_text_color', 'default' => '#000000', 'label' => __('Text Color', 'stillcalm')); 

    foreach($colors as $color) 
    { 
    // SETTINGS 
    $wp_customize->add_setting($color['slug'], array('default' => $color['default'], 'type' => 'option', 'capability' => 'edit_theme_options')); 

    // CONTROLS 
    $wp_customize->add_control(new WP_Customize_Color_Control($wp_customize, $color['slug'], array('label' => $color['label'], 'section' => 'colors', 'settings' => $color['slug']))); 
    } 

}

,然後這在標題中:

<?php 
     $text_color = get_option('text_color'); 
     $background_color = get_option('background_color'); 
    ?> 
    <style> 
     body { 
      color: <?php echo $text_color; ?>; 
      background-color: <?php echo $background_color; ?>; 
     } 
    </style> 
+0

只是爲了確保。 LESS和SASS是兩碼事。他們通常做同樣的事情,但他們是不同語法和不同解析器的不同項目。 – markus

+0

我使用LESS,但如果它能更好地工作,則可以切換到SASS。但我真正想要的只是使用變量,因此Calle建議的僅PHP解決方案工作得很好。 – kanga

回答

1

如果使用Javascript解析LESS或SASS你可以這樣做。這裏有一個線程描述如何工作:Parse LESS client side。您將編寫生成LESS的PHP代碼,然後使用JavaScript在客戶端解析它。

下面是關於如何使用PHP做一個線程:How to generate lighter/darker color with PHP?

+0

使用PHP聽起來更簡單,所以我想我會去那。我不知道如何將顏色選擇器的編號納入其中,以及如何讓它創建一個新變量,而不僅僅是改變當前的變量。我已經粘貼了更多的代碼以供參考。 – kanga

+0

例如,$ background_color是一個十六進制值,所以如果您想將它變暗十個「步驟」,您只需寫下adjustBrightness($ background_color,-10)而不是$ background_color。當然包括adjustBrightness後! (閱讀我給你的鏈接中的第二個答案) –

+0

(在該頁面上還有一個使用百分比的解決方案,但我認爲使用步驟的解決方案更加優雅,正如他所說,它也有其他優點。) –

相關問題