Фрейм в середине страницы подстраивающийся под размер ?
Всем привет , в общем есть одна задача а моихзнаний в JS просто не хватает, решил спросить Вас.
и так унас есть верстка страницы в применом виде : <div> титул</div> <div> меню</div> <div> НАШ ФРЕЙМ</div> <div> футер</div> ничем кроме НАШЕГО ФРЕЙМА я управлять не могу, там доступны стили, скрипты все что хочешь, а вот с остальными вопрос, там и ID и Class элементов полное рандомное явление в общем задача в том чтобы подстроить высоту НАШЕГО ФРЕЙМА так чтобы с учетом всего имевшегося так чтобы страница влазила с окно браузера, в нутрях окна сделан AJAX итерфейс и надо чтобы его разщмер был максимален но вся страница должна влазить в окно .... на CSS такое не решить как никрути и придется прибегнуть к JS Нужна кросплатформенность но с учетом лиш последних версий браузеров, всякий старый отстой не интересен, в основном предпологается ХРОМ, ЛИСА , и Яйцо отмикрософта заранее спасибо |
Так попробуйте
<style>
#dt{
position:relative;
height: 25px;
background-color: cyan;
}
#dm{
position:relative;
height: 20%;
background-color: blue;
}
#df{
position:relative;
background-color: green;
}
</style>
<style>
body {
position: relative;
height: 100vh;
margin-top: 0;
margin-bottom: 0;
display: flex;
flex-direction:column;
}
#ourframe {
background-color: red;
position:relative;
flex-grow: 1;
}
</style>
<body>
<div id=dt> титул</div>
<div id=dm> меню</div>
<div id=ourframe> НАШ ФРЕЙМ</div>
<div id=df> футер</div>
</body>
|
voraa, А-А-А ...мы не можем тронуть стили имеющихся других кусков, классы , и вообщ еничего не можем ...
мы в своём куске можем только работать ито он обернут в <main> Но без атрибутов.... былобы возможно оперировать и идентификаторами или стилями я бы сюда не пришел :) Пока мне пришла мысль в голову :
var ch=$(document).height()-$('.plg_ATWAS').height();
таким образом мы получаем размер нашего документа без нашего фрема (plg_ATWAS) это DIV c классом (кстати JQuery на борту есть ) вроде все хорошо и дальше можно сунуть $('.plg_ATWAS').height(число нужное) полученное вычитанием из $(window).height() передыдущего значения , но косяк в том что мой фрейм увеличивается , но при этом footer остается на месте :) счас попробую выдрать кусок и разместить гденибудь для экспе рементов |
Так я их и не трогаю.
Специально оформил двумя разными style Первый - тот который был задан не вами. Какие то там произвольные стили. Это я их просто для примера так задал. А второй style - это уже ваш. Там только body - к нему то всегда доступ можно иметь, и ваш див. Цитата:
Не зная точной структуры никто вам точно не ответит. |
Цитата:
в общем выдрал я страницу от тудова , убрал все что касалось визуализации меню и прочей не моей ереси и залил сюда http://fastereus.ru/test.html и тут я увидел странную вещь что footer повисает и без работы скрипта, три кнопки сунул .... вотсижу теперь и думаю какого черта ... |
Так чего вы хотите то?
Что бы <main> занимал все оставшееся пространство? Тогда
main {
position:relative;
flex-grow: 1;
}
К main то так доступ получить можно. Ну и у вас встречается такое
plg_ATWAS_Left {
float: left;
width: 300px;
height: 99%;
background: #eee;
margin-right: -300px;
border: 1px solid #000;
overflow: auto;
padding: 0px;
}
height: 99% - от чего 99%? Если от родительского блока, то у этого блока должно стоять position: relative; (или absolute) Да и всякие float не нужны. Лучше flex использовать. |
voraa, да height это остаток от эксперемента ...
Сможите попраивть стили так чтобы панели имели максимальный размер (по высоте), а область div'а вложенного main занимала весь доступный размер окна ? main не имеет вообще стиля , да именять я его по идее не могу... не знаю как к этому панель отнесется. нет честно WEB вообще не моё... но иногда надо http://fastereus.ru/test.html Буду безумно вам благодарен ... хотя в рамках данного форум аответить нечем , я пром програмимист и микроэлектронщик :help: |
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<style>
html, body {/* Стандартизация оформления*/
height: 100%;
margin: 0;
padding: 0;
overflow: hidden;
}
body {/* Тело сайта */
overflow: auto; /* добавить полосу прокрутки */
font: 11pt Arial, Helvetica, sans-serif; /* Рубленый шрифт текста */
margin: 0; /* Отступы на странице */
}
header { /* Верхний блок заголовка */
background: #0080c0; /* Цвет фона */
padding: 10px; /* Поля вокруг текста */
}
header:empty{ /* Если блок заголовка пустой то скрываем его */
display:none;
}
nav { /* Навигация (хлебные крошки))*/
background: gray; /* Цвет фона */
padding: 10px; /* Поля вокруг текста */
}
nav:empty{ /* Если блок навигации пустой то скрываем его */
display:none;
}
main { /* Основной контент */
}
main:empty{ /* Если блок основного контента пустой то скрываем его */
display:none;
}
footer { /* Нижний блок */
background: #333; /* Цвет фона */
padding: 5px; /* Поля вокруг текста */
color: #fff; /* Цвет текста */
}
footer:empty{ /* Если нижний блок пустой то скрываем его */
display:none;
}
/* Правил отсюда */
body {
display: flex;
flex-direction: column;
heigth: 100vh;
}
main {
flex-grow: 1;
display: flex;
flex-direction: column;
}
hr {
width: 98%;
}
/*Основной контейнер*/
.plg_ATWAS {
position: relative;
min-width: 600px;
min-height: 300px;
overflow:visible;
background:#009933;
flex-grow: 1;
display: flex;
flex-direction: column;
}
/*Верхняя общая панель*/
.plg_ATWAS_Up{
background: #EFEFFB;
height: 50px;
overflow:hidden;
padding: 3px;
}
/*Добавил Средний контейнер*/
.plg_Cont {
flex-grow: 1;
display: flex;
}
/*Левая часть*/
.plg_ATWAS_Left {
width:300px;
background:#eee;
border: 1px solid #000;
overflow: auto;
padding:0px;
}
/*Правая часть*/
.plg_ATWAS_Right {
background:MintCream ;
border: 1px solid #000;
overflow: auto;
flex-grow: 1;
}
/*Панель для поиска и функционала*/
.plg_ATWAS_Down{
clear: left;
background: #EFEFFB;
height: 50px;
overflow:hidden;
padding: 3px;
}
/*Верхняя панель левого фрейма*/
.plg_ATWAS_LeftUp {
position: relative; /* Фиксированное положение */
padding: 10px; /* Поля вокруг текста */
background: #6E6E6E; /* Цвет фона */
color: #fff; /* Цвет текста */
}
/*Верхняя панель левого фрейма*/
.plg_ATWAS_RightUp {
position: relative; /* Фиксированное положение */
padding: 10px; /* Поля вокруг текста */
background: #6E6E6E; /* Цвет фона */
color: #fff; /* Цвет текста */
}
</style>
<script>
function Rz(p) {
var ch = $(document).height() - $('.plg_ATWAS').height();
$('.plg_ATWAS').height(p);
}
</script>
</head>
<body>
<header><h1>ЗАГОЛОВОК САЙТА</h1></header>
<nav>Менюха</nav>
<main>
TEST MODULE
<hr>
<br>
<h1>ATWAS Plugin testing...</h1>
<div class="plg_ATWAS">
<div class="plg_ATWAS_Up">
Верхнеяя панель
</div>
<div class="plg_Cont"> <!-- Добавил контейнер -->
<div class="plg_ATWAS_Left">
<div class="plg_ATWAS_LeftUp">
Верхняя панель левого фрейма
</div>
Левый фрейм
</div>
<div class="plg_ATWAS_Right">
<div class="plg_ATWAS_RightUp">
Верхняя панель правого фрейма
</div>
Правый фрейм
</div>
</div>
<div class="plg_ATWAS_Down">
Down Panel
<input type="button" value="Submit" onclick="Rz(300);">
<input type="button" value="Submit" onclick="Rz(400);">
<input type="button" value="Submit" onclick="Rz(800);">
</div>
</div>
</main>
<footer>Низ сайта</footer>
</body>
</html>
|
voraa, Вот в том тои проблема ... как страничка в хроме все запахало, а панель обругалась на попытку изменения body , main :(((
Не дает она менять эти стили , хоть и вшит хром но увы много чего залочено ... но хотя бы элементы из нутримэйна ведут себя прилично и приизменении размера футер не лезет по центру :) счас попробую решить это скриптом :) Спасибо ... |
voraa, Доброе время суток ... в общем заработать заработало ...
но с выводом контента внутря вышел жвак полный ... кинул http://fastereus.ru/test.html Почитал про предложденный метод раззметки вроде догнал , так же добавил еще понижней панельке а по середине как бы фремй для контента ,
.plg_ATWAS_Content{
overflow: auto;
}
предпологал что если не будет влазить то пусть прокручивается с появлением скрол баров по auto , но даже принудительный overflow: scroll; не далникакого эффекта ... спаси бесталкового "верстальщика" ... |
| Часовой пояс GMT +3, время: 18:28. |