不,不是那样的,悬停是在PHP生成页面并关闭很久之后,在浏览器中发生的事情。
从根本上讲,您需要采取一种更基于CSS的不同方法。与其在PHP中提供手动控制颜色的静态样式,不如只跟踪颜色是暗还是亮,并基于该值指定HTML类。然后,所有样式都可以用CSS编写,并且可以使用悬停伪类。
E、 g:
$style = get_field( \'learn_more_button_style\' );
$url = get_field( \'coe_external_link\' );
?>
<div class="layout center <?php echo esc_attr( \'style-\'.$style ); ?>">
<a class="button coe-button" href="<?php echo esc_url( $url ); ?>" target="_blank">Learn More</a>
</div>
注意,我做了几件事:
我在一个地方提取了所有字段,不要混合显示和检索数据,这会使内容更难阅读,代码更难看,并导致后续问题。例如,如果我们需要检查URL字段的值,该怎么办?我们需要在HTML中处理内联条件和三元运算符,但不是这样,我们有一个很好的地方,我们可以干净地处理它,我们的HTML看起来一样esc_url
, 出于安全原因,总是在输出时转义我将字段重命名为learn_more_button_style
. 通过使用_style
我消除了关于什么风格的任何假设,所以你可以选择浅色、深色、爵士色、霓虹色、柔和、高对比度等style-
同学们,现在你们将看到style-light
, 您可以将其与CSS一起使用,所有内联样式属性都消失了,它们不是必需的。通过这种方式,您可以将按钮设置为如下样式:
.style-light .button {
background: white;
border: 1px solid black;
color: black;
}
.style-dark .button {
background: black;
border: 1px solid white;
color: white;
}
.style-light .button:hover {
background: black;
border: 1px solid white;
color: white;
}
.style-dark .button:hover {
background: white;
border: 1px solid black;
color: black;
}
此时,它变成了一个纯粹的CSS前端问题,您不需要任何PHP或WordPress知识来进一步设计按钮的样式