如何设置背景图像响应

How to set background-image responsive

晚上好, 我正在使用 "One page layout" 开发网站。而且我对移动响应有很大的问题。特别是在菜单和带有背景图像的部分。我会 post 我的代码如下,你能给我一些建议吗?要编辑什么? 非常感谢!

HTML:

<div id="menu">
<div id="content">
<div id="logo">
<a href="#uvod"><img src="style/img/logo.png" border="0"></a>
</div>   
<div id="nabidka">
<ul>
   <li href="about"><a href='#about'>O nás</a></li>
   <li href="cenik"><a href='#cenik'>Ceník</a></li>
   <li href="sluzby"><a href='#sluzby'>Služby</a></li>
   <li href="kontakt"><a href='#kontakt'>Kontakt</a></li>
</ul>
</div>   
<div id="socsite">
<table style="width: 210px; height: 80px;" border="0">
<tr><td width="70"><a class="fb" href=""></a> </td>
<td width="70"><a class="twitter" href=""></a>    </td>
<td width="70"><a class="youtube" href=""></a>        </td></tr>
</table> 

</div>   
</div>  
</div>

<div id="uvod" class="section">
<div id="content">
...text text text...
   </div>
</div> 

和CSS:

#uvod {
background:url('img/bg-uvod.png') top no-repeat fixed; 
float:left;
width: 100%;
min-height: 100%;
z-index: 1;
}

#menu {
background-color: #535353;
width: 100%;
height: 90px;
  padding: 0;
  margin: 0 auto;
  position: fixed;
top: 0;
z-index: 100; 
}

#logo {

width: 200px;
height: 90px;
margin-left: 1em;
  padding-top: 5px;
    float: left;
}
#nabidka {

width:550px;
height: 90px;

margin-left: 1.5em;
  padding-top: 5px;
float:left;

}
#socsite {

width:240px;
height: 90px;
  padding-top: 5px;
  margin-left: 7em;
  float: left;

}

#content {
width: 1200px;
margin: 0 auto;
}

您必须使用规则:

background-size: cover;

将此添加到您的 #uvod

这将覆盖整个屏幕宽度,当您的屏幕变小时,它会随之缩小。

#uvod
{
  background: url('img/bg-uvod.png') no-repeat center center fixed;
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

为什么不试试封面呢?如果这不起作用,请尝试在背景中放置一个绝对位置 div,然后设置它的背景。

查看 background-size 属性。具体来说,containcover 值。

查看 MDN 上的文档了解更多信息: https://developer.mozilla.org/en-US/docs/Web/CSS/background-size

这也是一本好书: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Scaling_background_images

此外,请务必查看第一个 link 底部的浏览器兼容性 table 并确保它涵盖了您要寻找的浏览器。

如果您只针对现代浏览器,我可能还建议您考虑为背景图片使用 SVG,因为它们在任何尺寸下看起来都不错。