【问题标题】:Scaling CSS background image relative to page width相对于页面宽度缩放 CSS 背景图像
【发布时间】:2014-11-05 19:51:37
【问题描述】:

我正在尝试制作一个响应式网页,我想在其中显示一些带有悬停图像的按钮图像。这些按钮是 100x100 像素,但是,一旦网页低于某个宽度(即在移动设备上),我希望它们缩小到较小的百分比。我目前有以下 CSS 来显示它们:

.tumblr {
    margin-bottom: 10px;
    width: 100px;
    height:100px;
    display:block;
    background:transparent url('http://i.imgur.com/BNYulhj.jpg?1') center top no-repeat;
}

.tumblr:hover {
   background-image: url('http://i.imgur.com/BNYulhj.jpg?1');
}

我对我正在尝试做的事情做了一个 jsfiddle here。每行将有 3 个按钮,因此在每个 100x100 像素时,我希望它们在可用区域宽度小于 300~px 时开始整体缩小(边距要多一点)。我已经尝试以多种方式定义 background-size,但它似乎并没有达到我想要的效果。

任何帮助将不胜感激!

【问题讨论】:

  • 我知道background-size: cover; 我不知道它的支持程度如何。看起来像 IE 9 at least
  • 我尝试在 url 行下方添加background-size: cover;,但它保持 100px 图像宽度,然后当屏幕变得太窄时将图像隐藏在彼此下方,就像添加行之前一样实际上。不确定我是否没有正确使用它?见jsfiddle.net/fszq5v46/1

标签: css background-image scaling


【解决方案1】:

部分答案:

您描述的行为可以使用widthmax-width 的组合来实现(另请参阅此问题:CSS width 100% OR max-width in pixels):

.connect li {
    width: 32%;
    max-width: 100px;
}

http://jsfiddle.net/pvcp7Lok/2/

部分答案是因为:当您使用带有背景的 <a> 而不是 <img> 时,让高度与宽度相对应有点棘手(请参阅 this article),所以在小提琴中我刚刚为图像设置了一个固定的100px 高度。在任何情况下,将background-size 设置为一个百分比,以确保背景按照<a>s 的大小进行缩放。

【讨论】:

  • 要抓住你的好答案,如果你想在 300px 的屏幕宽度以下执行此代码,请使用媒体查询。 @media(最大宽度:300px){ ... }。更多关于媒体查询here
  • 太棒了!!这工作得很好:) 是的,我使用媒体查询只在低于某个 px 宽度的情况下进行此操作。谢谢!!
猜你喜欢
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-22
  • 1970-01-01
  • 2011-10-14
相关资源
最近更新 更多