Jump to content
  • 0

Выравнивание слоёв.


Flake
 Share

Question

Здравствуйте. Есть код:

// CSS
.div1{
float: left;
width: 20px;
}

<div class="div1">layer 1</div>

<div>layer 2</div>

В этом случае layer 1 будет иметь ширину в 20 пикселей, а layer 2 будет идти за ним в одну строку и растянут на всю страницу.

Собственно вопрос, а как сделать на оборот? Чтобы layer 1 был растянут на всё страницу, а layer 2 был в правом краю и имел ширину в 20 пикселей.

Link to comment
Share on other sites

12 answers to this question

Recommended Posts

  • 0

Есть вариант, но только с процентами, так как с пикселями будет фиксированной ширина, а с процентами - резиновая.

<html>
<head>
<style>
.div1{
float: left;
width: 90%;
background-color:#cccccc;
}
.div2 {
float: left;
width: 10%;
background-color:#cc310a;
}
</style>
</head>
<body>
<div class="div1">layer 1</div>
<div class="div2">layer 2</div>
</body>
</html>

Link to comment
Share on other sites

  • 0

Используя код rus можно сделать вот так:

<html>
<head>
<style>
body {
position: relative;
}
.div1 {
margin-right: 20px;
background: #ccc;
}

.div2 {
position: absolute;
top: 0;
right: 0;
width: 20px;
background: #cc310a;
}
</style>
</head>
<body>
<div class="div1">layer 1</div>
<div class="div2">layer 2</div>
</body>
</html>

Link to comment
Share on other sites

  • 0
Абсолютное позиционирование не всегда хорошо.

Приведите пример, когда не хорошо. :D

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

Link to comment
Share on other sites

  • 0
Приведите пример, когда не хорошо. :D

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

Link to comment
Share on other sites

  • 0

Вариант Great Rash без сомнения самый лучший в данном случае, да и не только, а если ещё за единицы измерения взять ЕМ, а не Пикселы, тогда этот способ подходит на все случаи жизни, ИМХО. Насчёт position: absolute; скажу так: Это мощное оружие надо использовать с умом и не использовать там, где вполне можно обойтись темже float: right; или ещё чем-то, что никак не разрушит вёрстку при любых раскладах, как раз наш случай сюда подходит!

Link to comment
Share on other sites

  • 0

Да, если использовать с умом, то никаких проблем не возникнет. Но для этого надо хорошо понимать как это работает. А с float напрягает неприятный трёхпиксельный баг ие. В данном же случае элемент позицируется без отступов и размеры в em на нём не скажутся. Никуда он не денется из относительно спозицированного родителя. :D

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

1) Всё таки считаю, что Позиционирование в данном случае неуместно 100%

2)

А с float напрягает неприятный трёхпиксельный баг ие.

Ерунда, если вдруг он возникнет, то вылечить его три секунды, а потом опять-же делать надо с умом, а не клепать где и как попало

Link to comment
Share on other sites

  • 0
yopopt, ну абсолютное позиционирование еще может доставить неудобство, если позиционированный блок содержит много контента и сильно растянут по вертикали. Так как он не находится в потоке, то он не сможет смещать последующие блоки вниз при растяжении.

Согласен, в таких случаях это не применимо.

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