【发布时间】:2017-06-22 21:27:22
【问题描述】:
我有我的 style.css,我在其中将我的 Bootstrap 容器的背景图像定义为
.container-fluid.bg-img {
background:
linear-gradient(
rgba(0, 0, 0, 0.5),
rgba(0, 0, 0, 0.5)
),
url('/my/image');
background-size: cover;
color: #ffffff; /* White */;
}
截至目前,该 url 在 css 中是硬编码的。我将如何根据需要从我的 html 中更改它?类似的东西(当然是伪代码):
<div class="container-fluid bg-img {new_url}">
...
</div>
我对PHP有基本的了解,希望能用它来实现我所需要的。
编辑 1
正如 @Lukas Meine 所建议的,我正在尝试 jQuery 方式。我实际上尝试的是在 js 文件 (scripts.js) 中插入一个函数,其中我想要的图像 url 的变量是参数化的。然后,我会在我的 HTML 中定义它,例如:
scripts.js
function def_background(img_url) {
$('.container-fluid').css('background-image','url(img_url)');
}
$(document).ready(function() {
def_background(img_url);
});
然后我会从我的 HTML 中调用:
<script src="./js/scripts.js">
def_background(img_url);
</script>
当然,我收到一条错误消息,指出 img_url 未定义。但是我将如何从我的 HTML 中定义它?我应该在 scripts.js 中声明一个临时值,然后从 HTML 中覆盖它吗?
目前,我从我的 css 中删除了 url 属性,因为我需要对其进行参数化定义(我的实际目标)。
.container-fluid.bg-img {
background:
linear-gradient(
rgba(0, 0, 0, 0.5),
rgba(0, 0, 0, 0.5)
),
/* url('/my/image') */
;
background-size: cover;
color: #ffffff; /* White */;
}
编辑 2
继续测试... 我只是创建了一个(工作)bootply,它正好显示了我需要的东西。但是,我无法在我的实际代码中重现该行为。唯一的区别是我需要从我的 HTML 中调用 jQuery 函数,而不是在 bootply 中的同一个 jQuery 中。另外,HTML中的js之前还有其他调用,如果感兴趣的话我也会添加它们。
啊,最后一件事:我的 HTML 实际上有一个 .php 扩展名(所以实际上它们基本上是 PHP 文件),不知道这在这里是否有真正的不同......
无论如何,这是我现在的文件:
style.css
.container-fluid.bg-img {
background:
linear-gradient(
rgba(0, 0, 0, 0.5),
rgba(0, 0, 0, 0.5)
);
background-size: cover;
color: #ffffff; /* White */;
}
umbe.js
function def_background(url) {
$(".container-fluid.bg-img").css("background","url('"+ url +"')");
}
animazione.php(仅限)
<head>
<title>Sito di Mario Smedile</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- my CSS -->
<link rel="stylesheet" href="./css/style.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!-- my JS -->
<script src="./js/umbe.js">
</script>
<script>
img_url = 'http://via.placeholder.com/350x150/1E90FF';
def_background(img_url);
</script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<!-- Include some php -->
<?php include './php/functions.php';?>
</head>
【问题讨论】:
标签: php jquery html css twitter-bootstrap