Максим Покровский

— Привет, меня зовут Максим Покровский. Вы находитесь в моем рабочем кабинете. Поскольку я фрилансер, будем считать, что именно так он и выглядит. Здесь я пишу много интересных вещей, и если вы почувствовали, что я именно тот человек, который вам нужен, то я всегда открыт для контакта.

Сделал за последнее время:


  • Добавил в портфель около 48-и новых работ:

  • Сделал очень много всяких штук при работе над поддержкой сайтов.
    Как бы это теперь в портфель запихнуть?

Заказать мне работу
17.03

2 способа расположить картинку сбоку от текста

Комментарии (13) CSS, HTML

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

Я пользуюсь с равным успехом вот такими способами:

Первый:

<div>
   <img src="#" alt="" title="" />
   <p>Something text</p>
</div>
.wrapper{
   padding:0 0 0 150px; /*ширина картинки + отсуп от нее*/
   overflow:hidden; /*чтобы контейнер не схлоповался*/
   zoom:1; /*то же самое, что и выше, но для IE. В некоторых случаях можно обойтись и без zoom*/
   }
   
   .wrapper img{
      float:left;
      margin-left: -150px; /*сдвигаем на значение padding у .wrapper*/
      }

Второй:

<div class="wrapper">
   <img src="#" alt="" title="" />
   <p>Something text</p>
</div>
.wrapper{
   overflow:hidden; /*чтобы контейнер не схлоповался*/
   zoom:1; /*то же самое, что и выше, но для IE. В некоторых случаях можно обойтись и без zoom*/
   }
   
   .wrapper img{
      float:left;
      margin-right: 10px; /*отступ текста от картинки*/
      }

   .wrapper p{
      display:table; /*можно заменить на oveflow:hidden;*/
      zoom:1;
    }

Мне больше нравится первый способ. Кода меньше. Но второй способ позволяет использовать картинки любой ширины.

Метки:, ,

Комментарии

  1. 1
    Kotelnikov (17.03.2009) #

    Полезно. Утянул способ к себе (естественно, со ссылкой на первоисточник). :-)

  2. 2
    Dimox (17.03.2009) #

    Первый вариант не получится использовать, если ширина изображений предположительно будет не постоянной. А во втором понадобится дополнительный контейнер, если абзацев будет несколько. Так что, какой вариант лучше – зависит от конкретного случая.

    А zoom:1 лучше заменить на height: 1%, тогда стили будут валидными.

  3. 3
    Максим Покровский (17.03.2009) #

    Полезно. Утянул способ к себе (естественно, со ссылкой на первоисточник). :-)

    Да бога ради.

    Первый вариант не получится использовать, если ширина изображений предположительно будет не постоянной.

    Тут только табличкой.

    А во втором понадобится дополнительный контейнер, если абзацев будет несколько.

    Ага, но я вообще люблю так делать <div><p>something text</p></div>. Так более гибко. В посте просто привел минимальный код.

    А zoom:1 лучше заменить на height: 1%, тогда стили будут валидными.

    Не люблю я этот height:1%; c ним в IE порой проблем не оберешся. То overflow:hidden; начинает все резать, то отступы непонятные появляются.
    А для zoom у меня в ie.css класс .has-layout{zoom:1;} есть ;)

  4. 4
    Dimox (17.03.2009) #

    А я height:1%; постоянно использую, никаких проблем с ним не испытываю, очень помогает =)

  5. 5
    kim (18.03.2009) #

    Я использую всегда второй вариант, только вместо display:table; пишу overflow:hidden;.
    И второй вариант лучше тем, что нет привязки к ширине изображения, и не возникнет проблем с разными по ширине картинками.

  6. 6
    miripiruni (18.03.2009) #

    Я один здесь читаю заголовок поста?)
    “расположеть”?

    Иногда я избавляюсь от обтекания текстом этим замечательным способом.

    P.S. И может дивам классы все-таки проставить в примерах, чтобы всем было ясно кто .wrapper?

  7. 7
    Максим Покровский (18.03.2009) #

    Спасибо за комментарий.

  8. 8
    Владимир Котельников (18.03.2009) #

    > И второй вариант лучше тем, что нет привязки к ширине изображения, и не возникнет проблем с разными по ширине картинками.

    Ну это не всегда нужно. Я у себя, когда прикручивал Gravatar, задал размер аватарки 40х40 пикселей, а сам комментарий пустил справа, используя первый способ.

  9. 9
    Максим Покровский (18.03.2009) #

    Ну это не всегда нужно. Я у себя, когда прикручивал Gravatar, задал размер аватарки 40х40 пикселей, а сам комментарий пустил справа, используя первый способ.

    Ну да. Подобное нужно только для динамических картинок. Но использовать динамичные размеры в анонсах подобных сабжевему… вся линия рушится, но это уже из области дизайна.

  10. 10
    Kleopatra Kolpakov (19.03.2009) #

    отлично!

  11. 11
    Статьи об HTML, CSS, доступности и юзабилити » » Вебдайджест — 27.03.09 (27.03.2009) #

    [...] 2 способа расположить картинку сбоку от текста (PokrovBlog) [...]

  12. 12
    Перспективный блоггер (30.04.2009) #

    Dimox правильно отметил про необходимость дополнительного контейнера, если абзацев будет много. Сам я по сути так всегда и делал. height: 1% тоже никогда не использую, стараюсь использовать zoom:1 как можно меньше – только если уже никак не выходит, т.к. zoom, насколько мне известно, замедляет работу браузера и для массивных проектов это существенно.

  13. 13
    nva (21.01.2010) #

    А у меня что то способ от товарища miripiruni не работает.
    И еще вопросик к автору как сделать отступ под каждым дивом, в первом варианте.?
    padding и margin не работает.
    Вообще методы класс!

Они читают меня, я читаю их

    — XP была бы отличной ОС,если бы с ней не поставлялся браузер.
    Максим Покровский

    Rambler's Top100