Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Неразрывные блоки
 
 автор: DJOV   (10.02.2007 в 01:50)   письмо автору
 
 

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

Описание проблемы:

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

Что нужно:

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

Код страницы html:


<!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>
<link href="css/style.css" rel="stylesheet" type="text/css" />

</head>
<body>

<div id="globalnav">
<img src="images/logo.gif" tppabs="http://www.dcafe.ru/images/master/logo.gif" alt="Dance Cafe - &#216;&#238;&#243; &#193;&#224;&#235;&#229;&#242; | Show Balet" /><a name="top_of_the_page" id="top_of_the_page"></a>
</div>
<div id="globalnav_submenu">
<img src="images/about.gif" alt="DANCE &#202;&#192;&#212;&#197;" width="240" height="60" class="padding" tppabs="http://www.dcafe.ru/images/menu_portfolio.gif" /><img src="images/shows.gif" alt="&#208;&#197;&#207;&#197;&#208;&#210;&#211;&#192;&#208;" width="240" height="60" class="padding" tppabs="http://www.dcafe.ru/images/menu_profile_on.gif" /><img src="images/vacancies.gif" alt="&#194;&#192;&#202;&#192;&#205;&#209;&#200;&#200;" width="240" height="60" class="padding" tppabs="http://www.dcafe.ru/images/menu_contact.gif" />
<img src="images/foto.gif" alt="&#212;&#206;&#210;&#206;" width="240" height="60" class="padding" tppabs="http://www.dcafe.ru/images/menu_portfolio.gif" /><img src="images/video.gif" alt="&#194;&#200;&#196;&#197;&#206;" width="240" height="60" class="padding" tppabs="http://www.dcafe.ru/images/menu_profile_on.gif" /><img src="images/contacts.gif" alt="&#202;&#206;&#205;&#210;&#192;&#202;&#210;&#219;" width="240" height="60" class="padding" tppabs="http://www.dcafe.ru/images/menu_contact.gif" /></li>
</div>

</body>
</html>


Код таблицы css:


body {
    margin: 0;
    padding: 0;
    height: 100%;
    font: normal 11px Tahoma, Arial, Helvetica, sans-serif;
    background: #201011 url(../images/bg.jpg) no-repeat;
}
h1, h2, h3, h4 {
    margin: 0;
    padding: 0;
    font-size: 11px;
}
img {
    border: 0;
}
a,
a:hover {
    color: #ffffb8;
    text-decoration: underline;
}


/* main box with tables */

#box {
    width: 880px;
    margin-top: 5px;
    margin-left: 50px;
    padding: 10px;
    background: #312226;
    clear: left;
    
}

/* navigation and logo */
#globalnav {
display: inline-table;
   float: left;
    margin-top: 35px;
    padding-top: 10px;
    width: 200px;
    height: 140px;
}
#globalnav_submenu{
   display: inline-table;
    float: left;
    width: 750px;
    height: 140px;
    margin-left: 0px;
    margin-top: 30px;
    padding-top: 10px;
    padding-left: 5px;
   padding-right: 10px;
    padding-bottom: 0px;
}
.padding {
    padding-left: 5px;
    padding-right: 5px;
    padding-top: 5px;
    padding-bottom: 3px;
}


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

   
 
 автор: CNT   (10.02.2007 в 02:55)   письмо автору
 
   для: DJOV   (10.02.2007 в 01:50)
 

По поводу существования значения inline-table у свойства display - это Вас кто-то круто обманул.
Такое значение не поддерживает ни один из известных браузеров.

Теперь о сути.
Абсолютный размер окна браузера (в пикселах) у клиента вам неизвестен.
Поэтому с помощью CSS можно сверстать только относительные конструкции.
Сиречь оперирующие процентами.
Как только эту мелочь Вы для себя уясните, к Вам моментально придёт понимание:
как именно надо записать то, что Вам нужно получить.

   
 
 автор: DJOV   (10.02.2007 в 03:40)   письмо автору
 
   для: DJOV   (10.02.2007 в 01:50)
 

Итак, что касается
display: inline-table; - то Вам сюда http://css-info.narod.ru/visual-css.html#display - тут все про него подробно описано.

Теперь что касается Вашего упоминания там про размеры окна в % и px - как я понимаю.

1 - я не могу угадать точно размер окна браузера у пользователя, поэтому я могу либо выставлять все значения в %, либо намеренно выставить значения в px, тем самым сузив границы того, что он будет видеть.

2 - я так и не получил ответа на свой вопрос от Вас. Если Вы хотите выставить значения width в % везде, то это ни к чему не приведет, блоки просто разнесутся один под другим.

Еще раз. Мне нужно просто сделать так, чтобы один блок (который второй - он же правый на странице) при изменении размеров окна браузера не съезжал вниз на новую строку, а оставался на одном уровне с первым блоком (он же левый блок).

Вопрос еще раз - как это реализовать?

Ответы желательно давать четкие, а не так, мол подумайте над %, подумайте о глобальном. Я понимаю, что легче всего решить мою проблему - просто вставить таблицу с 2 столбцами и 1 рядом.

   
 
 автор: куч1963   (10.02.2007 в 08:12)   письмо автору
 
   для: DJOV   (10.02.2007 в 03:40)
 

После <body>
вставь - <div style="position: absolute; top:0px; left:0px; height:1px; width:1115px;">
<div id="globalnav">
float:left
<div id="globalnav_submenu">
float:right

Размер width - можно определить скриптом, и подставить. Остальные размеры, относительно блока.

   
 
 автор: AlexSol   (10.02.2007 в 08:54)   письмо автору
 
   для: куч1963   (10.02.2007 в 08:12)
 

дело в том, что на Народе идет описание всех свойств css2, но реально браузеры поддерживают не все. display: inline-table; - не поддерживается.

в вашем варианте надо использовать значение minwidth - при достижение этого значения появится горизонтальный скрол. опять-таки ie6 это свойство не поддерживат, так что придется делать конструкцию из нескольких вложенных дивов.
http://softtime.ru/forum/read.php?id_forum=4&id_theme=30816&page=1
http://softtime.ru/forum/read.php?id_forum=4&id_theme=29474&page=1

   
 
 автор: CNT   (10.02.2007 в 13:48)   письмо автору
 
   для: DJOV   (10.02.2007 в 03:40)
 

Чёткие ответы желательны, говорите?
Например, заключите ВСЁ вами написанное в <div style="width: 1234567890px"></div>.
А в стилях для body пропишите overflow-x: hidden.
Все ваши нынешние проблемы решатся кардинально.

   
 
 автор: DJOV   (10.02.2007 в 17:54)   письмо автору
 
   для: CNT   (10.02.2007 в 13:48)
 

Спасибо огромное, метод, предложенный CNT действительно помог.
Если не затруднит, то, уважаемый, CNT опишите пожалуйста, что вы сделали?
Я так понимаю, что создали стиль с шириной блока 1234567890px и overflow для того, чтобы отображалась область только внутри этого блока - так?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования