我很确定这必须在 php 中......但让我解释一下我在寻找什么。
我的网站上有一个输入框,用户在其中输入的内容都设置为 css
例如
body{
Background-color: [text from the input goes here];
}
我很确定这必须在 php 中......但让我解释一下我在寻找什么。
我的网站上有一个输入框,用户在其中输入的内容都设置为 css
例如
body{
Background-color: [text from the input goes here];
}
With javascript/jquery you could do this:
see (try putting in #000, or green, or some other color) : http://jsfiddle.net/mH6MK/
$( document ).ready(function() {
$('input[name=getColor]').change(function() {
var $color = $("#getColor").val();
$('body').css('backgroundColor', $color);
});
});
or php would be like this:
<?
$color = $_GET['color'];
echo '<style type="text/css">body{background:'.$color.';}</style>';
?>
您可以使用 jquery,但如果您不使用 jquery,我建议您使用纯 javascript。它更快、更强大。
链接到演示 => http://jsfiddle.net/77Bjx/
<input placeholder="enter hex color w/o #" id="bg" type="text"/>
<input type="button" value="submit" onClick="setBG()"/>
function setBG() {
var elem = document.getElementById('bg')
document.body.style.backgroundColor = '#' + elem.value;
}
你可以改进这个功能。也许设置检查以确保它是有效的十六进制值?检查它是否以 # 开头,如果不是则输入一个。等等
你是绝对正确的!您可以使用 PHP,但您可以考虑使用 jquery 并通过 $('input') 获取输入元素并获取值并添加 css。
假设您有一个带有#css id 的输入,我将使用on() 方法并使用事件委托来定位特定的id,在这种情况下是#css。
你会做这样的事情:
$('form").on('submit', '#css', function()) {
var value = $this.val();
$('body').css('background-color', value);
});
您可能需要检查从用户那里收到的值,并确保它是正确的 css 十六进制颜色值或其他东西。某种形式的验证。这只是您可以使用的几种方法之一,PHP 也是一种选择。
通过一些测试,我发现可以使用以下方法设置正文背景颜色:
document.body.style.backgroundColor = "purple";
如果你有元素的name
/ id
,input
那么它的值是:
document.getElementsByName(elementName).value
因此,将这些部分放在一起应该不会太难。只需侦听输入焦点何时发生变化,也许通过onBlur
侦听器。
为什么不使用jquery?
$('body').css('backgroundColor', [input from box]);