Jump to content
  • 0

Ломаем мозг :)


Игорь Ермаков
 Share

Question

Вобщем сижу маленечко верстаю, и при вёрстке у меня возникла такая задача: расположить рядом 2 блока, один фиксированной ширины, а второй резиновой.

Я сумел решить эту проблему только используя таблицы.

Интересно найдёт ли кто-нибудь решение с блоками.

Обязательные условия:

Никаких иллюзий и тп, есть масса способов привести результат к такому виду, но задача именно в том, чтобы всё было по честному, никаких z-index'ов и тп. (Кстати на примере, который свёрстан блоками результат достигнут именно через z-index, но этот результат только для примера он не правильный.)

На моём хостиге снова глючит FTP так что залить пример не могу, выкладываю код сюда. Делимся мыслями.

<!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"/>
<style>
html, body {
margin:0;
padding:0;
width:100%;
height:100%;
}

/*блоки*/

.left {background:#666;
float:left;
position:absolute;
min-height:100px;
width:379px;
z-index:2;}

.right {background:green;
position:relative;
min-height:100px;
width:100%;
z-index:1;
}

/*Таблицы*/

.table{
width:100%;}

.t1 {background:#666;
width:379px;}

.t2 {background:green;}
</style>
<title>блоки</title>
</head>

<body>

<div id="contaner">
<div class="left"></div>
<div class="right"></div>
<h1>Таблицы</h1>
<table border="1" class="table">
<tr>
<td class="t1">1</td>
<td class="t2">2</td>
</tr>
</table>


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

Link to comment
Share on other sites

Recommended Posts

  • 0

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

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

Можно обоим блокам задать ширину в процентах, но тогда растягиваться будут оба, можно задать одному ширину в пикселях, а второму задать ширину в процентах, но придётся задавать где-то 70%, а при уменьшении он не заполнит всего экрана, а если задашь в 100%, то экран растянется, что тоже нафиг не нужно.

Вот такие пироги с котятами.

Link to comment
Share on other sites

  • 0

Я тоже внесу свою лепту ;)

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Div height: 100%;</title>
<style type="text/css">
*{ margin: 0; padding: 0;}

div#left { float: left; width: 200px; background: #f00;}
div#right { overflow: hidden; background: #0F0; zoom: 1;}

</style>
</head>

<body>
<div id="left">LEFT</div>
<div id="right">RIGHT</div>
</body>
</html>

Link to comment
Share on other sites

  • 0

s0rr0w, ну и я так могу, но экран раздвинется по ширине, а нужно без этого, так что решение не верно.

psywalker, ядрёна кочержка, твоё решение оказалось верным, но что ещё за свойство zoom? В мануале htmlbook оно не описано ;)

Я о таком даже не слышал. Надо будет разобраться.

psywalker, торжество отменяется, твоё решение тоже неверно, в IE уменьши. Блок просто обрезается.

Link to comment
Share on other sites

  • 0

где не работает?

Добавлено:

#left { float: left; width: 200px; background: #f00; position: relative; height: 15px; _margin-right: -3px; font-size: 0;}
#right {margin: 0 0 0 200px; background: #000000; height: 15px; _margin-left: -3px; font-size: 0;}

П.С. Ие6 не понимал просто цвет. + пофиксил 3хпиксельный баг.

Edited by Nekromancer
Link to comment
Share on other sites

  • 0

я ничего не хочу добиться ;) (в этой ситуации)

влоат для левого блока заставляет бравый быть по всей свободной длине без указания размеров.. релатив вытаскивает левый блок из потока, чтоб правый мог нормально гулять в потоке. Соответственно левый 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