Jump to content
  • 0

Засунуть блок под блок (размеры резиновые)


iillyyaa2
 Share

Question

P2x3TWhZ.png

вся проблема заключается в том, что размеры все резиновые...

красный блок должен быть под остальными блоками (он содержит фон)

большой блок над ним будет иметь поле onclick

2 верхних поля должны быть отцентрированны и размер их больше чем красный блок

уже всю голосу сломал, как сделать... можно использовать и таблицы и блоки

если чему то даю позишн абсолют, то размеры по ширине или высоте становятся не известны и родительский блок не растягивается :)

Link to comment
Share on other sites

Recommended Posts

  • 0

подсунуть блок марджином тоже не получается, т.к. высота верхних блоков не известна

psywalker нижний это красный ? или тот что сверху на нём ?

ширина контейнера должна быть равна ширинам верхних 2х блоков

высота контейнера должна быть равна высоте нижнего красного блока

блок сверху над красным занимает всё место не занятое над красным блоком

Link to comment
Share on other sites

  • 0

подсунуть блок марджином тоже не получается, т.к. высота верхних блоков не известна

psywalker нижний это красный ? или тот что сверху на нём ?

ширина контейнера должна быть равна ширинам верхних 2х блоков

высота контейнера должна быть равна высоте нижнего красного блока

блок сверху над красным занимает всё место не занятое над красным блоком

А по сколько % ширины верхние блоки?

Link to comment
Share on other sites

  • 0

верхние блоки растягиваются текстом... размерами они больше красного получаются.. текст там динамический...

появилась мысль.. щас попробую, если что может подскажите...

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

Link to comment
Share on other sites

  • 0

верхние блоки растягиваются текстом... размерами они больше красного получаются.. текст там динамический...

появилась мысль.. щас попробую, если что может подскажите...

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

Я сверху уже написаал решение. Только забыл добавить, что например главный контейнер тоже пусть будет inline-block;

Link to comment
Share on other sites

  • 0

у меня вот так вроде бы все работает:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>пример</title>
<style>
.body{
margin:0;
padding:0;
}

.main{
height:100%;
width:80%;
background-color:#ccc;
margin:0 auto;
}

.header{
margin:0 auto;
width:100%;
}

.left{
width:50%;
border:1px solid #000;
float:left;
}

.right{
width:30%;
border:1px solid #000;
float:right;

}

.text{
width:100%;
min-height:100%;
height:1000px;
border:1px solid #000;
clear:both;
}
</style>
</head>
<body>

<div class="header">
<div class="left">
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста очень много текста очень много текста
очень много текста



</div>
<div class="right">
а здесь очень мало
</div>

</div>
<div class="main">
<div class="text">какой-то текст</div>
</div>
</body>
</html>

нижний блок в любом же случае будет не резиновым в ширину, если он явно меньше верхних

Link to comment
Share on other sites

  • 0

Softlink, верхние 2 блока должны слипаться между собой

и главное самое!!!! снизу нужно подсунуть красный блок!!!!

вся затея в красном блоке... это не контейнер, это ещё один блок, который нужно подсунуть вниз

Edited by iillyyaa2
Link to comment
Share on other sites

  • 0

Softlink, верхние 2 блока должны слипаться между собой

и главное самое!!!! снизу нужно подсунуть красный блок!!!!

вся затея в красном блоке... это не контейнер, это ещё один блок, который нужно подсунуть вниз

слипаться - это без проблем. ставьте ширину 70% и 30% к примеру.

А с красным блоком я так и не понял. Сейчас верстка такая же как на картинке. Как он должен тогда быть подсунутым?

Link to comment
Share on other sites

  • 0

psywalker как ты написал, верхние 2 блока расположатся друг под другом.. их ширина же больше чем ширина контейнера

они ведь не станут растягивать его

не так ?

Нет, не так.

Link to comment
Share on other sites

  • 0

сейчас в 6IE проверю по нормальному ещё

вроде у .boxForClick не растягивается поле, оно 1 пиксель...

и что то не пойму, почему у меня опускается ниже всё...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<style>
div {
border: 1px solid;
display: block;
}
.float_left {
float: left;
}
.clear_left {
clear: left;
float: none;
}
div.BoxFull {
float: right;
position: relative;
margin: 5px;
}
div.Box {
position: relative;
color: #ffffff;
font-weight: bold;
height:67px;
}
div.Box div.float_left {
margin: 0 3px 3px 3px;
float: left;
background: #6A4D24;
z-index: 25;
}
.img {
width:67px;
height:67px;
background: #FF0000;
cursor:pointer;
position: absolute;
margin: -100% 0 0 0;
z-index: 5;
}

.boxForClick {
background: #6A4D24;
height:30px;
z-index: 25;
}
</style>


<div class="BoxFull" align="center">
<div class="Box">
<div class="float_left">???-??</div>
<div class="float_left">123</div>
<div class="clear_left"></div>
</div>
<div class="boxForClick" onclick="alert(1);"></div>
<div class="img"></div>
</div>

Link to comment
Share on other sites

  • 0

вот вроде почти...

осталось понять как вылечить ie6 :)

у .boxForClick убрать height:30px; и заставить его растягиваться так, что бы он перекрыл красный квадрат ТОЛЬКО

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<style>
div {
display: block;
}
.float_left {
float: left;
}
.clear_left {
clear: left;
float: none;
}
div.BoxFull {
float: right;
position: relative;
margin: 5px;
height:67px;
}
div.Box {
position: relative;
color: #ffffff;
font-weight: bold;
margin: -67px 0 0 0;
}
div.Box div.float_left {
margin: 0 3px 3px 3px;
float: left;
background: #6A4D24;
}
.img {
width:67px;
height:67px;
background: #FF0000;
position: relative;
}

.boxForClick {
width:67px;
height:67px;
cursor:pointer;
margin: -67px 0 0 0;
}
</style>

<div>
<div class="BoxFull" align="center" style="border: 3px dashed #00ff00;">
<div class="img" style="border: 3px dashed #ffff00;"></div>
<div class="boxForClick" onclick="alert(1);" style="border: 3px dashed #000000;"></div>
<div class="Box" style="border: 3px dashed #0000ff;">
<div class="float_left">???-??</div>
<div class="float_left">123</div>
<div class="clear_left"></div>
</div>
</div>
<div style="clear: both;"></div>
ddddd
</div>

Edited by iillyyaa2
Link to comment
Share on other sites

  • 0

Блин, ну я же выше ДВА раза говорил, что нужно делать, что за непонятный игнор?

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
* { margin: 0; padding: 0;}
.wrap { display: inline-block; background: red; white-space: nowrap; padding: 10px;}
.wrap .top {vertical-align: top; display: inline-block; height: 100px; background: blue;}
.wrap .content { height: 300px; background: black;}
.wrap > div { white-space: normal;}
</style>
</head>

<body>
<div class="wrap">
<div class="top">dsfsdsd sd dsds ds ds sd f</div>
<div class="top">sfsdfssdfsdfsdfsfsdsdsd ds sddsdsds sdds dsds </div>
<div class="content"></div>
</div>
</body>
</html>

Link to comment
Share on other sites

  • 0

извиняюсь за оффтоп.

psywalker, уже во втором посте обращаю внимание на то, что ты советуешь делать инлайн блок вместо флотов. С чем это связано?

Вот допустим со списками понимаю, а тут почему такой маневр? Ведь всего два блока, один справа, другой слева.

Где-то в сети попадалась мне формулировка, что флоты - это не модно. Это все аргументы или есть что-то весомое?

p.s. я понимаю, что флоты схлопывают место под собой, но как правило они всегда помещаются в обертку. Так что не могу понять в чем тут фишка.

Edited by Softlink
Link to comment
Share on other sites

  • 0

.wrap > div

все браузеры жрут ? :)

А подумать мозгами слабо и убрать селектор? :)

нельзя в .wrap ставить красный фон, должен быть отдельный блок, т.к. его размеры в ширину меньше чем 2 блока которые сверху.

А почему нельзя просто верхние блоки немного отодвинуть в разные стороны? Не думал об этом?

в ie6 твой код не работает, синие блоки располагаются друг под дружкой

Да и хрен с ними, если бы ты не подмигивал всем так часто, а читал книги, то знал бы, как это лечится :)

Link to comment
Share on other sites

  • 0

извиняюсь за оффтоп.

psywalker, уже во втором посте обращаю внимание на то, что ты советуешь делать инлайн блок вместо флотов. С чем это связано?

Вот допустим со списками понимаю, а тут почему такой маневр? Ведь всего два блока, один справа, другой слева.

Где-то в сети попадалась мне формулировка, что флоты - это не модно. Это все аргументы или есть что-то весомое?

да да, крутяк, теперь флоты не модно, до этого было таблицы не модно :)

ещё не модно по валидатору делать target="_blank" ибо пользователь умнее програмиста, он сам может решить в каком окне ему открывать :)

Link to comment
Share on other sites

  • 0

извиняюсь за оффтоп.

psywalker, уже во втором посте обращаю внимание на то, что ты советуешь делать инлайн блок вместо флотов. С чем это связано?

С решением конкретной задачи.

Link to comment
Share on other sites

  • 0

извиняюсь за оффтоп.

psywalker, уже во втором посте обращаю внимание на то, что ты советуешь делать инлайн блок вместо флотов. С чем это связано?

Вот допустим со списками понимаю, а тут почему такой маневр? Ведь всего два блока, один справа, другой слева.

Где-то в сети попадалась мне формулировка, что флоты - это не модно. Это все аргументы или есть что-то весомое?

да да, крутяк, теперь флоты не модно, до этого было таблицы не модно :)

То, что я слышу, полный бред, я всегда отталкиваюсь от конкретной задачи, и если надо, то и таблицами сделаю, не задумываясь.

А почему нельзя просто верхние блоки немного отодвинуть в разные стороны? Не думал об этом?

а как я их отодвину ? я не знаю их размера. размер задаётся по содержимому текста...

А релатив придумали для кого? А отрицательные margin?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy