【问题标题】:PHP - trying to define two color stops for a gradient background area where users can select both colors with a color pickerPHP - 尝试为渐变背景区域定义两个颜色停止,用户可以使用颜色选择器选择两种颜色
【发布时间】:2017-08-24 21:19:57
【问题描述】:

PHP - 尝试为渐变背景定义两个色标以应用于单个 CSS 选择器。我需要用户单独选择它们(通过颜色选择器)。

我一直在用 PHP 定义背景颜色(命名:$color_gradient & 返回:'#f7f7f7'; 作为用户开始的默认值),因此用户可以选择渐变的基色(通过 PHP) ,然后我在css中设置了颜色到alpha的渐变叠加(因此用户选择的背景颜色会淡化为黑色或白色结束颜色)以获得最接近我想要完成的效果,但它是仍然限制我在 CSS 中为叠加层设置的任何颜色,并且我不希望用户必须编辑 css 文件中的颜色代码 - 我宁愿让 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

有没有办法在 HEX 或 RGB 颜色中定义诸如“从左”和“从右”之类的东西,例如一个区域的背景颜色,以便 PHP 中定义的两种颜色被视为渐变的每一半,并且用户可以分别选择每种颜色并且它们仍然混合在一起?

或者有没有办法让 PHP 处理叠加层(而不是在 CSS 中处理),一旦用户选择了一种新颜色,该叠加层将保持为 alpha-to-color 项目,而不是更改为纯色? (我担心一旦用户更改为默认颜色以外的颜色,透明度会被覆盖。)

我不是在寻找任何人来为我编写代码;我只需要朝某个方向轻推。

【问题讨论】:

    标签: php wordpress gradient


    【解决方案1】:

    在 CSS 中,渐变使用背景图像。尝试在函数中为每种颜色和方向定义变量;例如:

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

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

    【讨论】:

    • 这可能行得通。今晚我会玩一下代码,看看它是否可以发挥一些作用。谢谢。
    • 祝你好运;让我知道它是如何工作的,如果我能提供更多帮助。
    • 好吧,我不得不把它搁置几个星期,但最终我试图让它完全发挥作用。在这一点上,我有 custom.php 文件设置用户选择的两种颜色,但是,因为它们的目标是相同的 css,所以第二种颜色只是覆盖第一种颜色,这是预期的,因为我没有任何进一步的方向应用于我希望代码如何混合两种颜色。所以我的下一步是放置您建议的 sn-p。无论我把它放在哪里,它大部分时间都会被忽略(除非我白屏)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-13
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    • 2018-03-04
    • 2012-07-10
    • 2012-06-20
    相关资源
    最近更新 更多