【问题标题】:Percentage width and height hides background image百分比宽度和高度隐藏背景图像
【发布时间】:2015-04-12 17:58:00
【问题描述】:

Demo

  .moving_background
  {
    background-image: url("../image/quote3.jpg");
    background-position: 50% center; /*Centering property*/
    background-repeat: no-repeat;
    height: 100px;
    margin: 20px;
    width: 100px;
    border:1px solid;
   }

如果我将宽度和高度更改为 100%,它不会向我显示边框。我不明白原因。 请告诉我

我正在尝试将此 div 置于正文中。除了负的 top、left、margin 值之外,也欢迎任何其他方式。

有什么想法吗?

【问题讨论】:

  • 您可以使用width; auto,将背景水平居中。 codepen.io/Magador/pen/ZYdVpz
  • 去掉高度或者设置百分比,你只能看到一行。只需尝试在线上的一些有用图像。它不会向您显示图像
  • 这是因为元素的高度是由其内容的高度定义的。但是没有内容
  • 如W3C Specification: Visual formatting model details中定义的:“百分比是相对于生成框的包含块的高度计算的”
  • 是的,我明白了。我将高度设置为 100%。所以它应该取身体的高度。不是吗?如果我错了,请纠正我?

标签: html css


【解决方案1】:

问题是background-image 不计入您的div 中的内容,所以您拥有的是一个空的div,因此它没有高度。解决此问题的一种方法是将图像添加到 div 中,然后将其隐藏。

HTML

<div class="moving_background">
    <image src="http://placehold.it/100x100" class="background"/>
</div>

CSS

.moving_background {
    background-image: url("http://placehold.it/100x100");
    background-position: 50% center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 100%;
    margin: 20px;
    width: 100%;
    border:1px solid;
}

.background {
    visibility: hidden
}

JSFiddle:http://jsfiddle.net/nhg33xek/4/

【讨论】:

  • 非诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺诺。只需考虑身体是容器。如果您将 100% 宽度设置为容器 [在我的情况下为 body{width:100%}] 并 将moving_background 中的 100px 高度替换为 100% 和类似的宽度,它将不会向您显示图像。我知道我的 div 中没有内容。但我的形象在那里。我如何显示它?
  • 是的,谢谢。我可以在移动背景中移动&lt;img&gt; 标签吗?在意义上移动Moving multiple background images with keyframes
  • 这取决于你使用什么来制作动画,但我怀疑只要你选择了正确的元素,你就可以做到。
猜你喜欢
  • 2019-08-03
  • 1970-01-01
  • 2013-08-23
  • 2012-02-20
  • 2017-05-07
  • 2018-01-06
  • 2012-04-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多