python - 在网站的不同页面上放置不同的背景图像
问题描述
您好,所以我正在使用 django 模板制作网站。到目前为止,只有主页有背景图片,我想在单独的页面上放置不同的图片。Django 模板让我使用“扩展基本 html”。我一直在尝试插入不同的背景页面来替换 search_results.html 上的通用白色背景页面,但代码不起作用。我希望我的 search_results.html 具有与 home.html 不同的背景。感谢帮助!
代码:我只会在每个 html 的头部包含那些代码,以确保不会放置太多关于正文的代码
Base.html
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<title>
{% block title %}
My Site
{% endblock title %}
</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<meta name="author" content="">
<!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
<!--[if lt IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<![endif]-->
<link href="{% static 'css/bootstrap/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'css/signinform.css' %}" rel="stylesheet">
<!-- Add your custom CSS to this file -->
<link href="{% static 'css/custom.css' %}" rel="stylesheet">
{% block additional_styles %}
<style>
body {background-image: url(./static/images/golden_gate_bridge.jpg);
}
</style>
{% endblock %}
</head>
Home.html (这个使用了来自 base.html 的图像,这是正确的)
{% extends "base.html" %}
{% block additional_styles %}
<style>
body {
background-image: url(./static/images/golden_gate_bridge.jpg);
background-size: cover;
background-repeat: no-repeat;
}
</style>
{% endblock %}
search_results.html(需要背景更改!)
{% extends "base.html" %}
{% block title %}
Search Results
{% endblock title %}
{% block additional_styles %}
<style>
body {
background-color: white;
}
</style>
{% endblock %}
解决方案
选项1
此选项使用CSS
自定义属性,可让您保持结构不变。您将覆盖块内每个单独页面的自定义属性(在您的根共享CSS
文件中设置) 。<style>
根.css
:root {
/* Define this in your global CSS */
--bg-url: './static/images/golden_gate_bridge.jpg';
}
body {
background-image: url(var(--bg-url);
}
现在,每当您更新时--bg-url
,您都会动态更新背景。
search_results.html
<style>
/* Override default background image */
body {
--bg-url: './static/images/search_results_img.jpg';
}
</style>
再次为other_page.html:
<style>
/* Override default background image */
body {
--bg-url: './static/images/other_page_img.jpg';
}
</style>
选项 2
在您的布局中的某处,您包含了一个body
标签。我会在其中包含页面名称并设置全局文件中的背景样式。
<body class="home">…</body>
和:
<body class="search-results">…</body>
然后,相应地调整您的CSS
:
/* base */
body {
background-size: cover;
background-repeat: no-repeat;
}
.home {
background-image: url(./static/images/golden_gate_bridge.jpg);
}
.search-results {
background-image: url(./static/images/search-image.jpg);
}
推荐阅读
- regex - 如何从字符串中删除特定模式?
- java - 错误 java 方法组合Sum(int[], int, List
) 类型中的解决方案不适用于参数 (int[], int, boolean) - regex - Regex Negative Lookbehind 否定完整捕获
- c++ - bash:g++:在 mac 上的 sublime 文本编辑器中找不到命令
- winbugs - WinBUGS 中的分位数功能
- python - 从 Python 子进程获取最新的流标准输出行
- svg - Blazor - 向 SVG 对象添加元素
- eclipse - 如何使用 Eclipse 调试 Kubernetes 部署的服务
- python - django.db.utils.IntegrityError:NOT NULL 约束失败:new__score_comment.post_id
- angular - 需要传递另一个值来更改事件