Я думаю, вам это нужно для мобильных телефонов. Лучший способ - это сделать с%, а затем все будет автоматически, НО для этого вместо того, чтобы иметь изображение в качестве фона, вам нужно будет сделать это как HTML-тег. Вы не можете перемасштабировать элемент фона (хорошо, вы можете сделать это с помощью transform: scale, но в данном случае это вам не поможет).
Тогда вы будете иметь что-то вроде этого: http://jsfiddle.net/55m8j/1/
<nav>
<ul>
<li><a href="index.html" id="side1"><img src="image1.jpg"></a></li>
<li><a href="index.html" id="side2"><img src="image2.jpg"></a></li>
<li><a href="index.html" id="side3"><img src="image3.jpg"></a></li>
<li><a href="index.html" id="side4"><img src="image4.jpg"></a></li>
<li><a href="index.html" id="side5"><img src="image5.jpg"></a></li>
</ul>
</nav>
и CSS
nav ul {list-style-type: none;}
nav ul li {width: 20%; float: left;}
nav ul li a {display: block;}
nav ul li a img {width: 100%; }
Другой способ просто сделать меню не изображения. Вы можете визуализировать шрифт с помощью squirell, добавить текст-тень, некоторые градиенты, границу и результат будет похож :)
Не совсем корректно семантически иметь 'img' в этом меню. Решение CSS3 лучше (градиенты и т. Д.) Или решение 'background-size'. – mddw
У вас есть право. Это не здорово. Полностью забыл о размере фона, потому что, похоже, это лучшее решение. –
Проблема с 'background-size' по сравнению с вашим решением заключается в том, что его поддержка не идеальна (IE8-), поэтому должен быть предоставлен резерв JS. – mddw