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

HTML+CSS+JavaScript

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

 

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

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

тема: Картинка больше контейнера
 
 автор: Nytrogen   (29.09.2008 в 21:57)   письмо автору
 
 

Всем привет.

Всё никак не могу разобраться с "текучей" структурой. Мне надо сделать div с картинкой слева и подписью справа. Для этого к этой картинке прописываю стиль float: left;. Проблема в том, что сам div растягивается только на высоту подписи, но никак не картинки, которая гораздо его шире (по высоте).


div {
  margin: 10px;
  font-style: italic;
  background-color: #EEEEEE;
}

div img.main {
  float: left;
  margin-right: 10px;
}

<div>
  <img src=картинка.jpg class=main>
  Ух ты какая мазня!
</div>


Как растянуть div по высоте картинки?

  Ответить  
 
 автор: Lelik   (29.09.2008 в 22:05)   письмо автору
 
   для: Nytrogen   (29.09.2008 в 21:57)
 

можно двумя способами решить это:

1
div {
  margin: 10px;
  font-style: italic;
  background-color: #EEEEEE;
  overflow: auto; //или scroll, точно уже не помню
}

div img.main {
  float: left;
  margin-right: 10px;
}

<div>
  <img src=картинка.jpg class=main>
  Ух ты какая мазня!
</div>


2
div {
  margin: 10px;
  font-style: italic;
  background-color: #EEEEEE;
}

div img.main {
  float: left;
  margin-right: 10px;
}

div.clear {
  margin: 0px;
  padding: 0px;
  font-size: 0px;
  line-height: 0px;
  height: 0px;
  clear: both;
}

<div>
  <img src=картинка.jpg class=main>
  Ух ты какая мазня!
  <div class="clear"><!-- spacer --></div>
</div>


решать можно двумя способами, но у обоих решений есть свои недостатки :)

  Ответить  
 
 автор: Nytrogen   (29.09.2008 в 22:21)   письмо автору
 
   для: Lelik   (29.09.2008 в 22:05)
 

Спасибо, я забыл про overflow ;).
Overflow: auto растягивает div по нужной высоте, а overflow: scroll добавляет полосы прокрутки.

  Ответить  
 
 автор: Lelik   (29.09.2008 в 22:29)   письмо автору
 
   для: Nytrogen   (29.09.2008 в 22:21)
 

это я знаю, только вот, при вложенных блоках с флоатом полосы прокрутки не добавляются...

  Ответить  
 
 автор: Nytrogen   (29.09.2008 в 23:26)   письмо автору
 
   для: Lelik   (29.09.2008 в 22:29)
 

Чёрт! В IE7 не работает overflow: auto в данном случае! Пришлось использовать дополнительный div с clear... %)

  Ответить  
 
 автор: Lelik   (30.09.2008 в 01:18)   письмо автору
 
   для: Nytrogen   (29.09.2008 в 23:26)
 

надо просто доктайп поставить для XHTML 1.0

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  Ответить  
 
 автор: Nytrogen   (30.09.2008 в 21:24)   письмо автору
 
   для: Lelik   (30.09.2008 в 01:18)
 

Спасибо, это помогло! Никогда раньше DOCTYPE не использовал :)

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

  Ответить  
 
 автор: Lelik   (30.09.2008 в 21:38)   письмо автору
 
   для: Nytrogen   (30.09.2008 в 21:24)
 

задай margin для картинки :)

  Ответить  
 
 автор: Nytrogen   (30.09.2008 в 21:48)   письмо автору
 
   для: Lelik   (30.09.2008 в 21:38)
 

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

<div class=image>
  <img src=Pictures/pencil.jpg class=main>
  <h2>Заоголовок</h2>
  <ul>
    <li>Первое</li>
      <ul>
        <li>Первое А</li>
        <li>Первое Б</li>
        <li>Первое В</li>
      </ul>
    <li>Второе</li>
  </ul>
</div>


margin-right для картинки сдвигает список, но никак не его элементы, которые должны быть выравнены классическим способом, т.е. так, если бы картинки не было.

  Ответить  
 
 автор: Lelik   (30.09.2008 в 21:53)   письмо автору
 
   для: Nytrogen   (30.09.2008 в 21:48)
 

чет я не понял... можно скриншот?

  Ответить  
 
 автор: Nytrogen   (30.09.2008 в 22:06)   письмо автору
15.3 Кб
 
   для: Lelik   (30.09.2008 в 21:53)
 

Вуаля... Надо, чтобы список был визуально вложенным.

  Ответить  
 
 автор: Lelik   (30.09.2008 в 22:39)   письмо автору
 
   для: Nytrogen   (30.09.2008 в 22:06)
 

ну это уже надо стили для списков писать :) и кстати лучше их вот так выстраивать:

<div class="image">
  <img src="Pictures/pencil.jpg" class="main"/>
  <h2>Заоголовок</h2>
  <ul>
    <li>
      Первое
      <ul>
        <li>Первое А</li>
        <li>Первое Б</li>
        <li>Первое В</li>
      </ul>
    </li>
    <li>Второе</li>
  </ul>
</div>


кста, при использовании XHTML рекомендовано атрибуты писать в кавычках и все теги должны быть закрытыми, включая одиночные :)

  Ответить  
 
 автор: Nytrogen   (30.09.2008 в 22:48)   письмо автору
7.2 Кб
 
   для: Lelik   (30.09.2008 в 22:39)
 

>>ну это уже надо стили для списков писать

если убрать картинку, то получается вот такой видон (см. файл)... я же ничего не меняю в CSS (wasntme)

  Ответить  
 
 автор: Lelik   (30.09.2008 в 23:34)   письмо автору
 
   для: Nytrogen   (30.09.2008 в 22:48)
 

и всеже, если задать стили для списков?

  Ответить  
 
 автор: Nytrogen   (01.10.2008 в 00:07)   письмо автору
 
   для: Lelik   (30.09.2008 в 23:34)
 

Лениво))) но похоже другого выхода нет... всё прекрасно работает если для UL тупо поставить margin-left: 200px... тогда список отъезжает от картинки и нормально выравнивается... и всё же не верю, что нет другого способа...

  Ответить  
 
 автор: Lelik   (01.10.2008 в 00:37)   письмо автору
 
   для: Nytrogen   (01.10.2008 в 00:07)
 

ну можно попробовать для ul поставить float: left;

  Ответить  
 
 автор: Nytrogen   (01.10.2008 в 15:48)   письмо автору
 
   для: Lelik   (01.10.2008 в 00:37)
 

Точно! Это сработало, спасибо.

  Ответить  
Rambler's Top100
вверх

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