Модераторы: Illuminaty
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CSS, резиновая верстка 
:(
    Опции темы
evita
Дата 5.8.2006, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.8.2006
Где: Москва

Репутация: нет
Всего: нет



Возникла проблема при создании макета страницы с резиновым центром и фиксированными боковыми полями. В центральном блоке- фотографии с подписями, т.е. 
вложенные div'ы. 
Верстать надо с помощью CSS. Использовать таблицы нельзя. Резиновость обязательна. Оптимизация под ИЕ 6.0 и firefox. 
Так вот: у меня есть 2 варианта решения этой задачи. И в каждом - пока нерешенная проблема. 

Вариант 1. 
Использование отрицательных margin'ов. В принципе мой код почти повторяет описанный тут: http://www.webmascon.com/topics/coding/43a.asp. 
Кроме того, внесено ограничение на минимальную ширину, чтобы в ИЕ правое поле не убегало вниз при сильном уменьшении ширины окна. 
CSS: 
Код

body { 
        background-color:#FFFFFF; 
        margin:0px; 
        padding:0px; 
} 

div.header { 
   background-image:url(head.jpg); 
   height:100px; 
   min-width: 800px; 
        width: expression((body.clientWidth <= 600) ? "600px" : "100%"); 
} 
div.outer_wrapper { 
        height:100%; 
        min-width: 800px; 
        width: expression((body.clientWidth <= 600) ? "600px" : "100%");    
} 
div.wrapper { 
        width:100%; 
} 

div.container { 
        width:100%; 
   float: left; 
   margin-right: -200px; 
} 
div.content { 
   margin-right: 200px; 

} 
div.main { 
        position:relative; 
   margin-left: 200px; 
   background-color:#F4C14D; 
   padding-right: 30px; 
   height:100%; 
} 


div.left { 
   width: 200px; 
   float: left; 
   background-image:url(left.jpg); 
   background-repeat:no-repeat; 
   height:703px; 
} 
div.sidebar { 
   width: 200px; 
   float: right; 
} 
div.footer { 
   background: #d7dabd; 
} 

div.clearing { 

   clear: both; 
} 

div.fotos { 
        float:left; 
        width:140px; 
        height:160px; 
        clear:inherit; 
        text-align:center; 
} 


HTML:
Код

<body> 

<div class="header">header</div> 

<div class="outer_wrapper"> 

   <div class="wrapper"> 
      <div class="container"> 
         <div class="content"> 
          
            <div class="left"> 
               <h1>МЕНЮ</h1> 
               <ul> 
                  <li>ссылка</li> 

                  <li>ссылка</li> 

               </ul> 
            </div> 
             
            <div class="main"> 
                         <div class="fotos"><img src="images/1.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/2.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/3.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/4.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/5.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/6.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/7.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/8.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/9.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/11.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/12.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/31.jpg" align="bottom"  /><br />Текст</div> 

<div class="clearing">&nbsp;</div> 

            </div> 

             
         </div> 
      </div> 
       
      <div class="sidebar"> 
         <h1>НОВОСТИ</h1> 
         <p>новости новости нововсти новости новости</p> 
      </div> 

       
      <div class="clearing">&nbsp;</div> 
   </div> 

</div> 
<div class="footer">footer</div> 
</body> 


Итак, проблема. В ИЕ между левым блоком (меню) и блоком контента возникает отступ в 3 пикселя. В firefox все в порядке. 
Пробуем убрать стиль main {height:100%;}. 
Если вместо div'ов в main поместить текст - все в порядке. И в ИЕ и в firefox. Но если в main - div'ы - то в ИЕ main 
расползается на правый блок, который, в свою очередь, смещается вниз. 

Вариант 2.Плавающие блоки. 
Код: 
Код

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> 
<title>title</title> 
<style> 
body { background:#CCCCCC;} 
div.top { width:100%; height:100px; background:#0000ff;} 
div.main { width:100%; height:100%; background: #FFFFFF;} 
div.left { width:200px; height:100%; background:#FF0000; float:left;} 
div.content { width:auto; height:100%; background:#F4C14D; clear:none; } 
div.content {margin-left:200px; margin-right:200px;} 
*div.content { float:left;} 
div.inner { width:100%; font-size:1px;} 
div.right { width:200px; height:100%; background:#990000; float:right;} 
div.bottom { width:100%; height:100px; background:#0000CC; clear:both;} 

div.fotos {float:left; width:140px; height:160px; clear:inherit; text-align:center; margin-right:15px; margin-left:15px; 
        
} 
.clearing { 
   clear: both; 
} 
</style> 
</head> 

<body> 
    
   <div class="top"> top </div> 
    
       
       
      <div class="left"> левая часть 
 </div> 
       
       
       
      <div class="right">правая часть 
</div> 
    
      <div class="content"> 
         <div class="inner">&nbsp;</div> 
         <div class="fotos"><img src="images/pila.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/1.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/2.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/3.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/4.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/5.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/6.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/7.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/8.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/9.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/11.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/12.jpg" align="bottom"  /><br />Текст</div> 
<div class="fotos"><img src="images/13.jpg" align="bottom" /><br />Текст</div> 
<div class="fotos"><img src="images/14.jpg" align="bottom"  /><br />Текст</div> 
       
<div class="clearing">&nbsp;</div> 

      </div> 
    
   </div> 
    
   <div class="bottom"> bottom </div> 

</body> 
 

Когда заканчиваются боковые столбцы в firefox содержимое центрального обтекает их снизу. Что крайне нежелательно. 
В ИЕ все выглядит так, как надо. Т.е. содержимое content в столбик продолжается до низа. 
Введение margin-left и margin-right для content решает проблему в firefox. Однако в ИЕ отступы отсчитываются от боковых полей. 

Не важно какой из способов в конечном итоге использовать. Главное, вылечить хоть какой... 
Заранее большое спасибо.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0390 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.