Первая мысль была просто сделать большую картинку и позиционировать её по центру. Кнопки всё равно небольшие, и мало кто-бы заметил.
Вторая мысль — через canvas/vml но как-то было лень.
Третья мысль — яваскриптом добавлять картинку - тоже лень.
Четвертая бредовая — есть в MSIE фильтр AlphaImageLoader и у него есть свойство sizingMethod, и если присвоить ему "scale" будет растягивать картинку... стоп для MSIE у нас уже есть готовое решение... дело за малым, придумать что-то для остальных браузеров, есть надежда на CSS3. И не зря
Нам поможет background-size. background-size — масштабирует бекграунд согласно заданным размерам.
Можно указывать ширину и высоту в еденицах или процентах.
auto по умолчанию и ничего не делает, если указан и у ширины и у высоты,
если указан размер одной стороны а у второй auto то картинка маcштабируется пропорционально.
cover — масштабирует бекграунд с сохранением пропорций так, чтобы его ширина или высота равнялась ширине или высоте блока. (не работает в Webkit и в Opera )
contain — масштабирует бекграунд с сохранением пропорций таким образом, чтобы картинка целиком поместилась внутрь блока. (неработает в Webkit и в Opera )
Более подробно можно прочитать MDC, там же можно глянуть и примеры.
Мой рабочий пример где можно проверить работу в MSIE и других.
код примера:
<style type="text/css">
html, body { height:100%; width:100%; margin:0; padding:0; }
body {
background-image:url(images/bg.jpg);
-moz-background-size:100% 100%;
-webkit-background-size:100% 100%;
-o-background-size:100% 100%;
-khtml-background-size:100% 100%;
background-size:100% 100%;
}
.text {
width:50%;
padding:30px;
text-align:center;
font: 18px Lucida Sans Unicode, Lucida Grande, sans-serif;
color:383838;
}
img {
padding:10px;
background:#707070;
}
</style>
<!--[if lte IE 8]>
<style type="text/css">
body {
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( src='/examples/images/bg.jpg', sizingMethod='scale');
background-image:none;
}
</style>
<![endif]-->
html, body { height:100%; width:100%; margin:0; padding:0; }
body {
background-image:url(images/bg.jpg);
-moz-background-size:100% 100%;
-webkit-background-size:100% 100%;
-o-background-size:100% 100%;
-khtml-background-size:100% 100%;
background-size:100% 100%;
}
.text {
width:50%;
padding:30px;
text-align:center;
font: 18px Lucida Sans Unicode, Lucida Grande, sans-serif;
color:383838;
}
img {
padding:10px;
background:#707070;
}
</style>
<!--[if lte IE 8]>
<style type="text/css">
body {
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader( src='/examples/images/bg.jpg', sizingMethod='scale');
background-image:none;
}
</style>
<![endif]-->
5 комментариев:
Тоже использую этот способ. Но есть глюк, который пока не могу побороть. Обратите внимание на ссылку. В ie она неактивна.
А кликабельность ссылки в IE проверяли? ;) Лечится добавлением ссылкам position:relative.
Спасибо большое, вариант с css3 + хак для ie мне больше нравиться, чем вариант с масштабированием однопиксельной картинки
В IE браузере ссылка не нажимается...
Ох накинулись на ссылку - я думаю это очевидная вещь и все знаю как это фиксится
Отправить комментарий