【发布时间】:2019-02-16 02:53:14
【问题描述】:
我正在尝试构建一个简单的响应式设计。在这一点上,我只是在与标题作斗争。我想在标题中有一个背景图像,随着屏幕尺寸变大,一个不同的图像会出现在它的位置。现在我只想让 iPhone 5/SE 屏幕尺寸工作。 HTML有一个简单的div:
<div class="header"></div>
我还包括了大家都在谈论的视口元标记:
<meta name="viewport" content="width=device-width, initial-scale=1.0">
CSS 有以下内容:
* {
margin: 0;
padding: 0;
}
@media screen and (max-width: 320px) {
.header {
padding: 5em;
background: url(images/header-320.png) no-repeat top left;
background-size: contain;
}
}
当我删除填充设置时,图像消失了。如果我将填充设置为小于 5em 的任何值,它会在图像右侧和屏幕右侧之间添加一个空间。
- 谁能解释这种行为,以及为什么(似乎)填充 是否需要设置才能使图像出现?
- 如果出于某种原因绝对有必要,我是否总是必须将其设置为任意值,例如 5em(我通过实验而不是任何逻辑发现)?
- 也许我应该改用一个聪明的解决方案?
P.S.:这是一个 eBay 模板,所以我需要能够在没有任何 JavaScript 的情况下执行此操作(他们不允许这样做)。
【问题讨论】:
-
简而言之:你的 .header 元素是空的,默认情况下,一个空的 div 以高度为零呈现。填充会增加元素的高度,因为这是 box-model 的工作原理。
-
@fcalderan 谢谢,有道理!那么解决方案是通过实验找到一个允许整个图像适合的填充吗?
-
退一步:为什么你需要一个带背景的空元素?图片a)是否传达了任何信息或b)仅用于装饰目的?如果 a) 使用常规 img,如果 b) 设置特定高度或最小高度
-
@fcalderan 好吧,两者兼而有之...这是公司徽标在漂亮的背景上。最终我想在那里添加电话号码和地址并使其可点击,但我想对于版本 1,我会保持简单。
-
你也可以给你的空 div 一个宽度和高度。
标签: html css background-image padding