LINUX.ORG.RU

[HTML+CSS]Чайницкий вопрос по расположению боксов


0

1

Только начал изучать HTML и CSS, поэтому позволю задать такой тупой вопрос. Как сделать, чтобы слева было меню, а правее, сразу после него — основной текст, но основной текст не пытался обтекать меню? У меня получается только так: http://tim474.dhis.org/html_studying/index.html А я хочу, чтобы, было как у нас, на ЛОРе: опросы, реклама от IBM — слева, а текст новостей — правее, но ниже, когда эти «левые» боксы кончаются, новости не съезжаются влево. Пока я могу это сделать, только задав позиционирование бокса с основным текстом в пикселях. А как сделать, чтобы автоматически подгонялось — не понял.

PS: Ещё вопрос по той странице (http://tim474.dhis.org/html_studying/index.html): почему валидатор W3C ругается на ссылку на Википедию на ней (http://ru.wikipedia.org/w/index.php?title=Каскадные_таблицы_стилей&oldid=3102...?

☆☆☆☆☆

>Как сделать, чтобы слева было меню, а правее, сразу после него — основной текст, но основной текст не пытался обтекать меню?

Загнать всё в таблицы. Самый безотказный вариант. Хотя адептам xhtml вёрстки это не понравится :)

adepto
()

А я хочу, чтобы, было как у нас, на ЛОРе

Ну так возьми и пользуйся, опенсорц же, ну!!!

thesis ★★★★★
()
Ответ на: комментарий от Eddy_Em

http://lurkmore.ru/Умение_разбираться_в_чужом_коде

Вот у меня его в плане HTML пока мало. Тем более на самом ЛОРе он в сжатом, нечитаемом виде. Поэтому придётся качать исходники движка.А вдруг они и там нечитаемы? Или вдруг там сделано при помощи задания ширины в пикселях?

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Ttt

>Или вдруг там сделано при помощи задания ширины в пикселях?

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

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Ttt

Или вдруг там сделано при помощи задания ширины в пикселях?

да:

DIV.newsblog{margin-left:-245px;float:right;width:100%;}
DIV.column{text-align:center;float:left;width:240px;}
и т.д. А вы как хотели, чтобы ширина была свободно варьируемой?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

>А вы как хотели, чтобы ширина была свободно варьируемой?

Не знаю, свободно это или не свободно, но я хочу так, как в моём примере, но без обтекания основным текстом. Если сделано свойство float:left, то размер бокса подгоняется под содержимое.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от Ttt

Так у вас практически то, что и надо. Остается лишь поместить текст справа в отдельный div, а их оба - в общий контейнер...

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Ttt

> Если сделано свойство float:left, то размер бокса подгоняется под содержимое.

Если задано свойство float, то блоку требуется указывать width и height по стандарту. Хотя на деле это не обязательно, т.к. браузеры интерпретируют это подстраиванием под контент.

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

Амперсант надо экранировать даже в ссылках — вместо & пиши &

avol
()
Ответ на: комментарий от avol

> вместо & пиши &

Что-то движок у ЛОРа какой-то ущербный. Я имел в виду:
вместо & пиши «& amp ;», только без пробелов

avol
()
Ответ на: комментарий от avol

>Если задано свойство float, то блоку требуется указывать width и height по стандарту.

Валидатор почему-то не ругается, если нету.

Ttt ☆☆☆☆☆
() автор топика
Ответ на: комментарий от adepto

>Загнать всё в таблицы. Самый безотказный вариант. Хотя адептам xhtml вёрстки это не понравится :)

можно загнать все в дивы со свойством display: table-cell; и проч :)

Ingwar ★★★★★
()
Ответ на: комментарий от Ttt

> Валидатор почему-то не ругается, если нету.

Да, действительно. Мне казалось, что ругался, но возможно я что-то путаю. По-любому — сам я часто использую float не указывая размеров или применяя значение auto.

avol
()
Ответ на: комментарий от avol

но возможно я что-то путаю

Да нет, надо бы экранировать. По ссылке, например:

Line 34, Column 77: cannot generate system identifier for general entity «oldid»
Line 34, Column 77: general entity «oldid» not defined and no default entity
Line 34, Column 82: reference not terminated by REFC delimiter

Deleted
()

А вообще, можно сделать в духе

#leftmeny {
    float: left;
    width: 20ex;
}
#content {
    margin-left: 21ex;
}

правда ширина меню будет фиксирована.

* meny :)

** div'у остального текста задать id=«content».

Deleted
()

>Как сделать, чтобы слева было меню, а правее, сразу после него — основной текст, но основной текст не пытался обтекать меню?

Сделай overflow: hidden для div с основным текстом.

Tigger ★★★★★
()
Ответ на: комментарий от Deleted

>> но возможно я что-то путаю

Да нет, надо бы экранировать. По ссылке, например:


Не понял. Я, если что, по поводу размеров float'ов.

avol
()
Ответ на: комментарий от avol

Это была неправильная интерпретация текста %)

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.