html - 背景图像不会填满屏幕
问题描述
我正在尝试将背景添加到包含行容器的 HTML 页面。我从以下链接中获取了行的样式并对其进行了一些编辑(例如从 vscode 中的 scss 到 css) -链接
在他们的示例中,没有背景,但是当我添加背景时,由于某种原因,它似乎向右移动,并且没有将屏幕填充到底部(白色底部)。还可以在行上看到由于某种原因它在左侧显示更大的边距,而在原始代码中却没有。
我使用以下代码来做到这一点:
Python + 烧瓶:
from flask import Flask, url_for, render_template
from urllib.request import urlopen
from reading_data import read_hiscore
import json
app = Flask(__name__)
headings = ("name", "role", "salary")
data = (
("a", "aa", "55", 6),
("b", "bb", "60", 6),
("c", "cc", "65", 6),
("a", "aa", "55", 6),
("b", "bb", "60", 6),
("c", "cc", "65", 6),
)
@app.route("/")
def hello_world():
return render_template("layout.html", headings=headings, data=data)
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Flask app</title>
<link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
<div class="container">
<h2>Responsive Tables Using LI <small>Triggers on 767px</small></h2>
<ul class="responsive-table">
<li class="table-header">
<div class="col col-1">Job Id</div>
<div class="col col-2">Customer Name</div>
<div class="col col-3">Amount Due</div>
<div class="col col-4">Payment Status</div>
</li>
{% for row in data %}
<li class="table-row">
{% for cell in row %}
<div class="col col-1"> {{ cell }}</div>
{% endfor %}
</li>
{% endfor %}
</ul>
</div>
</body>
</html>
CSS:
body {
font-family: "lato", sans-serif;
background-image: url(background.jpg);
background-repeat: no-repeat;
background-size: cover;
min-height: 100%;
}
.container {
margin-left: auto;
margin-right: auto;
padding-left: 0px;
padding-right: 0px;
min-height: 100%;
min-width: 100%;
}
h2 {
font-size: 26px;
text-align: center;
color: white;
}
h2 small {
font-size: 0.5em;
color: white;
}
.responsive-table li {
border-radius: 16px;
padding: 30px 30px;
display: flex;
justify-content: space-between;
margin-bottom: 16px;
}
.responsive-table .table-header {
background-color: blue;
color: white;
font-size: 14px;
font-weight: bold;
flex-basis: 25%;
text-align: center;
text-transform: uppercase;
letter-spacing: 0.03em;
}
.responsive-table .table-row {
background: blue;
color: white;
box-shadow: 0px 0px 9px 0px rgba(0, 0, 0, 0.1);
}
.responsive-table .col-1 {
flex-basis: 25%;
text-align: center;
}
.responsive-table .col-2 {
flex-basis: 25%;
}
.responsive-table .col-3 {
flex-basis: 25%;
}
.responsive-table .col-4 {
flex-basis: 25%;
}
@media all and (max-width: 100%) {
.responsive-table .table-header {
display: none;
}
.responsive-table li {
display: block;
}
.responsive-table .col {
flex-basis: 100%;
}
.responsive-table .col {
display: flex;
padding: 10px 0;
}
.responsive-table .col:before {
color: #6C7A89;
padding-right: 10px;
content: attr(data-label);
flex-basis: 50%;
text-align: right;
}
}
解决方案
要将图像扩展至全高,您需要添加 css html、body标签和 set min-height: 100%
。然后给body添加属性
html,
body {
min-height: 100%;
}
body {
font-family: 'lato', sans-serif;
background-image: url('https://images.pexels.com/photos/1089438/pexels-photo-1089438.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940');
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
html,
body {
min-height: 100%;
}
body {
font-family: 'lato', sans-serif;
background-image: url('https://images.pexels.com/photos/1089438/pexels-photo-1089438.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940');
background-repeat: no-repeat;
background-size: cover;
background-position: center;
}
.container {
max-width: 1000px;
margin-left: auto;
margin-right: auto;
padding-left: 10px;
padding-right: 10px;
}
h2 {
font-size: 26px;
margin: 20px 0;
text-align: center;
}
h2 small {
font-size: 0.5em;
}
li {
border-radius: 3px;
padding: 25px 30px;
display: flex;
justify-content: space-between;
margin-bottom: 25px;
}
.table-header {
background-color: #95a5a6;
font-size: 14px;
text-transform: uppercase;
letter-spacing: 0.03em;
}
.table-row {
background-color: #ffffff;
box-shadow: 0px 0px 9px 0px rgba(0, 0, 0, 0.1);
}
.col-1 {
flex-basis: 10%;
}
.col-2 {
flex-basis: 40%;
}
.col-3 {
flex-basis: 25%;
}
.col-4 {
flex-basis: 25%;
}
@media all and (max-width: 767px) {
.table-header {
display: none;
}
li {
display: block;
}
.col {
flex-basis: 100%;
}
.col {
display: flex;
padding: 10px 0;
}
.col:before {
color: #6c7a89;
padding-right: 10px;
content: attr(data-label);
flex-basis: 50%;
text-align: right;
}
}
<div class="container">
<h2>Responsive Tables Using LI <small>Triggers on 767px</small></h2>
<ul class="responsive-table">
<li class="table-header">
<div class="col col-1">Job Id</div>
<div class="col col-2">Customer Name</div>
<div class="col col-3">Amount Due</div>
<div class="col col-4">Payment Status</div>
</li>
<li class="table-row">
<div class="col col-1" data-label="Job Id">42235</div>
<div class="col col-2" data-label="Customer Name">John Doe</div>
<div class="col col-3" data-label="Amount">$350</div>
<div class="col col-4" data-label="Payment Status">Pending</div>
</li>
<li class="table-row">
<div class="col col-1" data-label="Job Id">42442</div>
<div class="col col-2" data-label="Customer Name">Jennifer Smith</div>
<div class="col col-3" data-label="Amount">$220</div>
<div class="col col-4" data-label="Payment Status">Pending</div>
</li>
<li class="table-row">
<div class="col col-1" data-label="Job Id">42257</div>
<div class="col col-2" data-label="Customer Name">John Smith</div>
<div class="col col-3" data-label="Amount">$341</div>
<div class="col col-4" data-label="Payment Status">Pending</div>
</li>
<li class="table-row">
<div class="col col-1" data-label="Job Id">42311</div>
<div class="col col-2" data-label="Customer Name">John Carpenter</div>
<div class="col col-3" data-label="Amount">$115</div>
<div class="col col-4" data-label="Payment Status">Pending</div>
</li>
</ul>
</div>
推荐阅读
- xslt - XSLT 1.0 (xsltproc) - 如何使用 XSLT 解析 XML 值并将它们添加到已经形成的 XML 中?
- mongodb - MongoDB 聚合 $lookup 管道从对象数组转换为平面数组
- javascript - Javascript 数字猜测器以“0”值表现奇怪
- php - 如何反转字符串的两个字符?
- python - 如何将具有总人口列和总成功数列的一行转换为多行成功和失败?
- c# - 可能的 HttpClient 死锁
- virtual-machine - 无法通过 Secure Shell 客户端远程连接 ESXi 主机
- java - 如何在 Jetty 9.4 中使用 Spring WebApplicationInitializer?
- python - PyPI 包的可选依赖项
- docusignapi - 使用 eSign SDK 将用户签名上传到 DocuSign?