Меню, которое подходит для любого экрана (автоматическое изменение ширины) - PullRequest
0 голосов
/ 04 февраля 2012

Я создаю меню, которое идеально подходит для любого экрана, но его высота не меняется (только его ширина).

Проблема в том, что мое меню разделено на 3 изображения (левое, среднее и правое). Среднее изображение изменяется по размеру экрана (я указал 70%), но когда экран имеет меньшую ширину, стороны линий разрыва меню выглядят так:

On my screen

On smaller screens

Мне нужны решения для этого или другие способы сделать это меню!

Он должен занимать всю ширину и иметь градиент по бокам.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script>
var onre = function(){
    var w = document.getElementById('make2fit').offsetWidth;
    var h = document.getElementById('make2fit').offsetHeight;
    var ww = window.innerWidth;
    var wh = window.innerHeight;
    var p = (Math.floor((ww/wh)*100)/100<1)?(ww/w):(wh/h);
    var nw = Math.round(w * p);
    var nh =  Math.round(h * p);
    document.getElementById("make2fit").width = nw;
    document.getElementById("make2fit").height = nh;    
}

window.onresize = onre;
window.onload = onre;
</script>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Silvania Miranda</title>
<style type="text/css">
body {
    background-color: #030708;
}
div.menu {
    /* current css */
    min-width:960px; /* which is the current minimum width for designing website for desktops */
    height:auto;
    width:auto;
    margin-right:auto;
    margin-left:auto;
    position:relative;
    top:510px;
    overflow:hidden;
    
}
ul li {
    /* current css */
    display:block; /* default display for list elements, could be omitted */
    float:left;
    width:30%;
    max-width:125px;
    min-width:50px;
    color:white;
}
ul {
    /* current css */
    overflow:hidden
}
div.mulher{
width:auto;
height:auto;
z-index:-1;
bottom:0px;
right:0px;
position:absolute;
}

div.fundo{
    position:absolute;
    width:100%;
    height:auto;
    bottom:15%;
    }

div.fundomenu{
    background:url(menufundo.png);
    width:80%;
    height:60px;
    position:relative;
    margin-right:auto;
    margin-left:auto;
    z-index:0;
    float:left}
    
div.cantomenu
{position:relative;
height:60px;
width:156px;
overflow:hidden;
z-index:100;
float:left}
div.esq{background:url(menupontae.png)}
div.dir{background:url(menupontad.png)}

</style>
</head>

<body>
<div class="mulher"><img src="mulher.png" id="make2fit" style="margin:0px;"/></div>
<div class="fundo">

<div class="esq cantomenu"></div>
<div class="fundomenu"></div>
<div class="dir cantomenu"></div>

</div>
</body>
</html>

1 Ответ

0 голосов
/ 04 февраля 2012

Действительно безопасным вариантом здесь будет использование таблицы с 1 строкой и 3 столбцами.Это даст вам нужные вам столбцы (слева, справа, посередине), и ширина будет сохранена.Что касается фоновых изображений для столбцов, вы можете подумать о том, как их проектировать и обрезать, чтобы он выглядел хорошо.

другой вариант здесь - это сочетание html css и javascript - единственная проблема заключается в том, что если браузерне поддерживает JS, ваш сайт будет выглядеть неправильно.

Помогает ли это?

...