Меню (position: fixed в position: fixed)
Как спозиционировать элементы, чтобы верстка не разваливалась при масштабировании страницы (сейчас проблема спозиционировать <div class="content">) и какие более простые варианты получения подобного эффекта?
Получаемый эффект: фиксированный блок, в нём фиксирована шапка, высота шапки определяется содержанием, сразу под шапкой блок (со ссылками) с автоматически появляющейся прокруткой. <style> body { background: lightgrey; } .menu { position: fixed; left: 20%; top: 20%; width: 60%; height: 60%; background-color: grey; } .head { position: fixed; left: 20%; top: 20%; width: 60%; background: maroon; color: whitesmoke; } .content { position: fixed; left: 20%; top: 25%; height: 50%; width: 60%; overflow: auto; } .x { position: absolute; right: 2%; cursor: pointer; } </style> <div class="menu" id="menu"> <div class="head"> <span>Меню</span> <span class="x" onclick="this.parentNode.parentNode.style.display = 'none'">x</span> </div> <div class="content"> <a href="#">link1</a><br> <a href="#">link2</a><br> <a href="#">link3</a><br> <a href="#">link4</a><br> <a href="#">link5</a><br> <a href="#">link6</a><br> <a href="#">link7</a><br> <a href="#">link8</a><br> <a href="#">link9</a><br> <a href="#">link10</a><br> <a href="#">link11</a><br> <a href="#">link12</a><br> <a href="#">link13</a><br> <a href="#">link14</a><br> <a href="#">link15</a><br> <a href="#">link16</a><br> </div> </div> |
Цитата:
внутрь нижнего td засунь .content { 28 height: 100%; 29 width: 100%; 30 overflow: auto; 31 } |
а зачем все делать fixed-достаточно только menu-а остальные либо static или absolute
|
Deff, спасибо за способ, сейчас попробую
Цитата:
|
не вижу проблем если так сделать
<style> body { background: lightgrey; height:1200px; } .menu { position: fixed; left: 20%; top: 20%; width: 60%; height: 60%; background-color: grey; } .head { left: 20%; top: 20%; width: 100%; background: maroon; color: whitesmoke; } .content { left: 20%; top: 25%; height: 80%; width: 100%; overflow: auto; } .x { position: absolute; right: 2%; cursor: pointer; } </style> <div class="menu" id="menu"> <div class="head"> <span>Меню</span> <span class="x" onclick="this.parentNode.parentNode.st yle.display = 'none'">x</span> </div> <div class="content"> <a href="#">link1</a><br> <a href="#">link2</a><br> <a href="#">link3</a><br> <a href="#">link4</a><br> <a href="#">link5</a><br> <a href="#">link6</a><br> <a href="#">link7</a><br> <a href="#">link8</a><br> <a href="#">link9</a><br> <a href="#">link10</a><br> <a href="#">link11</a><br> <a href="#">link12</a><br> <a href="#">link13</a><br> <a href="#">link14</a><br> <a href="#">link15</a><br> <a href="#">link16</a><br> </div> </div> |
vadim5june,
<span>Меню</span> (высота) зависит от разрешения и масштаба -весь сыр бор в этом |
Как-то так, Deff + (уже второй поставить не могу)
<style> body { background: lightgrey; } .menu { position: fixed; left: 20%; top: 20%; width: 60%; height: 60%; background-color: grey; z-index: 100 } .head { background: maroon; color: whitesmoke; height: 10%; } .content { height: 100%; width: 100%; overflow: auto; } .x { position: absolute; right: 3%; cursor: pointer; color: whitesmoke; } </style> <table class="menu"> <tr> <td class="head">Меню <span class="x">x</span> </tr> <tr> <td><div class="content"> <a href="#">link1</a><br> <a href="#">link2</a><br> <a href="#">link3</a><br> <a href="#">link4</a><br> <a href="#">link5</a><br> <a href="#">link6</a><br> <a href="#">link7</a><br> <a href="#">link8</a><br> <a href="#">link9</a><br> <a href="#">link10</a><br> <a href="#">link11</a><br> <a href="#">link12</a><br> <a href="#">link13</a><br> <a href="#">link14</a><br> <a href="#">link15</a><br> <a href="#">link16</a><br> </div> </tr> </table> vadim5june, сейчас поразбираю ваш вариант. |
Цитата:
зато из-за задания top в процентах для head-20% а для content-25% при масштабировании одна на другую наезжает |
Цитата:
|
vadim5june,
fixed для внутренних элементов не нужен -это Вы все верно казали - Но таблица из двух строк засунутая в меню со 100% шириной -высотой решает проблемы и span и скролл блока |
Цитата:
|
Цитата:
Цитата:
И я не понял эту фишку насчёт top, разве top учитывается для статично позиционированных элементов? Убрал, что показалось лишним. <style> body { background: lightgrey; } .menu { position: fixed; left: 20%; top: 20%; width: 60%; height: 60%; background-color: grey; } .head { background: maroon; color: whitesmoke; } .content { height: 80%; overflow: auto; } .x { position: absolute; right: 2%; cursor: pointer; } </style> <div class="menu" id="menu"> <div class="head"> <span>Меню</span> <span class="x" onclick="this.parentNode.parentNode.style.display = 'none'">x</span> </div> <div class="content"> <a href="#">link1</a><br> <a href="#">link2</a><br> <a href="#">link3</a><br> <a href="#">link4</a><br> <a href="#">link5</a><br> <a href="#">link6</a><br> <a href="#">link7</a><br> <a href="#">link8</a><br> <a href="#">link9</a><br> <a href="#">link10</a><br> <a href="#">link11</a><br> <a href="#">link12</a><br> <a href="#">link13</a><br> <a href="#">link14</a><br> <a href="#">link15</a><br> <a href="#">link16</a><br> </div> </div> |
Цитата:
|
Всё же, реально ли спозиционировать при помощи css два div-a внутри третьего так, чтобы первому div не была задана высота (иначе возникнет развал верстки из-за его внутреннего содержимого), а высота второго div была равна расстоянию от низа первого до низа третьего (основного)?
Пока видится, что нет, поэтому таблица даёт лучшее решение. |
Цитата:
по событию onresize вычислять высоту второго блока как разницу |
Цитата:
|
Цитата:
а у первого- width:100%; но имхо таблицы - позволяют выигрывать скорость вместо спотыканий на таких вещах Пока для divов не будет нормального вертикального центрирования - всё это изъё |
Часовой пояс GMT +3, время: 19:35. |