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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> IMG в DIV'е 
:(
    Опции темы
artsb
Дата 11.9.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Всем привет!

Столкнулся с такой проблемой: внутри div'а находится картинка (img), далее текст или другой div. Так вот, если высота картинки больше, чем высота всего текста, эта картинка торчит из div'а и перестаёт работать свойство text-indent у div'а. Вопрос в том, как сделать, чтобы граница div'а обтекала картинку? Если задать этому div'у фиксированную высоту (а это не очень удобно, т.к. их много и у всех у них разная высота) или поместить каждый div в отдельный столбец таблици (но не хочется городить огород), то всё нормально.
Вот пример кода:
Код

<div style="text-indent: 20px; padding: 0px;">
    <img src="/images/myimg.jpg" align="left">
    Много много раз "бла-бла-бла".
</div>

Выглядит это так:

______________________________________________
|                                                                                         | <-- граница div'а 
|    ________________                                                     |
|    |                              | Много много раз "бла-бла-бла".|
|    |                              |                                                     |
|    |                              |                                                     |
|__|                              |__________________________|
     |                              |
     |_______________|

        ^
        |
       граница img'


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
webster
Дата 11.9.2008, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

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



Код

img {
float: left;
}
.brclr {
clear: both; height: 0px;
}

Код

...
<br class="brclr" />
</div>

PM MAIL   Вверх
artsb
Дата 12.9.2008, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Ещё не пробовал, но догадываюсь, что будет. Спасибо.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
webster
Дата 13.9.2008, 01:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

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



Был не совсем точен:
Код

<div style="float: left; width: 100%;">
<img style="float: left;" src="mypict.jpg" height="150" width="150" />
бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла 
</div>

PM MAIL   Вверх
artsb
Дата 13.9.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Спасибо. Попробую.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 13.9.2008, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



К сожалению, вот это:

<div style="float: left; width: 100%;">

приводит к "катастрофе" в FF: div уходит за страницу вправо и следовательно части текста не видно.
Плюс, этот текст тоже нужно взять в div.

И такой вопрос: как сделать так, чтобы div, который обходит картинку справа (и в котором текст) всё время оставался одной ширины. А то, когда картинка заканчивается текст переходит под неё. А хотелось бы, чтобы это выглядело как один столбец.
Т.е.:
__________________________________________________
|    ________________   ____________________________  |
|    |                              |  |  Много много раз "бла-бла-бла".|   |
|    |                              |  |  Много много раз "бла-бла-бла".|   |
|    |                              |  |  Много много раз "бла-бла-бла".|   |
|    |_______________|  |  Много много раз "бла-бла-бла".|   |
|                                       | Много много раз "бла-бла-бла". |  |
|                                       | Много много раз "бла-бла-бла". |  |
|                                       |___________________________|  |
|_________________________________________________|

ЗЫ. Кстати, чтобы я ни делал, если включить рамку у div'ов, можно заметить, что они всё равно как-то странно расположены, особенно если один div находится в другом. Этого можно избежать, только задав фиксированные размеры, что не всегда удобно.

Это сообщение отредактировал(а) artsb - 13.9.2008, 16:59


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
webster
Дата 13.9.2008, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

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



Цитата

И такой вопрос: как сделать так, чтобы div, который обходит картинку справа (и в котором текст) всё время оставался одной ширины. А то, когда картинка заканчивается текст переходит под неё. А хотелось бы, чтобы это выглядело как один столбец.

Для этого картинка должна быть блоком (изначально это строковый элемент и как только она заканчивается, текст перестает ее обтекать)
Один из вариантов решения:
Код

<div class="main">
<img src="mypict.jpg" alt="mypict" />
<div class="wrapper">
<div class="rightcolumn">бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-блабла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-блабла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-блабла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла бла-бла-бла
</div>
</div>
<span class="cleaner"></span>
</div>

Код

* {
    margin: 0px; padding: 0px;
}
img {
    float: left; width: 150px; height: 50px;
}
.main {
    width: 100%;
}
.wrapper {
    width: 100%; margin-left: -100%; float: right;
}
.rightcolumn {
    margin-left: 150px; padding: 0px 10px;
}
.cleaner {
    clear: both; display: block; font-size: 1px; line-height: 0px; overflow: hidden;
}
Если же для картинки тоже требуется отступы, то ее надо взять еще в один блоковый элемент.
PM MAIL   Вверх
artsb
Дата 14.9.2008, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Спасибо. Нужно попробовать.

Насколько я понял, * означает в css любой элемент.

При задании div'у  "width: 100%" в IE всё ОК, а вот в FF правый край "уходит".  Div у меня находится в ячейке таблицы.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 14.9.2008, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Сделал так:

Код

<img style="float: left; display: block;" src="/images/myimg.jpg">

<div style="overflow: auto;">

    <div style="float: left;">
        бла-бла-бла.
    </div>

</div>

<div class="fix"></div>



Код

.fix
{
     display: block;
    font-size: 0pt;
    line-height: 0px;
    margin: 0px;
    padding: 0px;
    height: 0px;
    clear: both;
    visibility: hidden;
}


Всё ОК. Только почему-то FF не растягивает текст по ширине. У меня для всех div'ов установлен стиль:

Код

div
{
    padding: 5px;
    text-indent: 20px;
    text-align: justify;
}


Это можно как-то исправить?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
webster
Дата 14.9.2008, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

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



У меня горизонтальная прокрутка не появляется даже в таком случае:
Код

<table>
<tr>
    <td>
        <div class="main">
            <img src="mypict.jpg" alt="mypict" />
                <div class="wrapper">
                    <div class="rightcolumn">бла-бла-бла.....                    </div>
                </div>
                <span class="cleaner"></span>
            </div>
    </td>
    <td>
    бла-бла-бла.....
    </td>
</tr>
</table>

Код

* {
    margin: 0px; padding: 0px;
}
img {
    float: left; width: 150px; height: 50px;
}
.main {
    width: 100%;
}
.wrapper {
    width: 100%; margin-left: -100%; float: right;
}
.rightcolumn {
    margin-left: 150px; padding: 0px 10px;
}
.cleaner {
    clear: both; display: block; font-size: 1px; line-height: 0px; overflow: hidden;
}
table {
    border-collapse: collapse;
}
td {
    padding: 10px; width: 300px;
}
и с DOCTYPE и без.
Да, * - означает любой элемент страницы.

FF растягивает по ширине <div> :
Код

<div style="overflow: auto;">

    <div style="float: left;">
        бла-бла-бла.
    </div>

</div>
на 100%, т.к. у них не задан "ограничивающий размер", поэтому я и предложил мультиброузерный вариант, когда используется вспомогательный <div class="wrapper"> которому принудительно задается 100% (для мультиброузерности) и потом он помещается под (над - это легко изменить) картинкой <img style="display: block;" /> отрицательным mnargin-left: -100%; а уже находящийся в нем <div class="rightcolumn"> делает отступ от своего родителя <div class="wrapper"> на величину размера <img style="display: block;">

Это сообщение отредактировал(а) webster - 14.9.2008, 14:34
PM MAIL   Вверх
artsb
Дата 14.9.2008, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Вы наверное меня не совсем поняли.

У меня FF 2.0.0.8. 
Если установить для div'а "width: 100%" - правая часть div'а уходит за границы (причём, в IE всё ОК):
_______________________
|                                           |  <- td
|   ____________________|____
|  |                                        |       |  <- div
|  |                                        |       |
|  |                                        |       |
|  |                                        |       |
| +--------------------------------+----+
|                                           |
|______________________|

Если установить для div'а "margin-left: -100%" - видно только кончики строк, торчащих слева:
_______________________
|                                           |  <- td
|________                           |
|               |  <- div                |
|               |                           |
|               |                           |
|               |                           |
|_______|                            |
|                                           |
|______________________|

И прокрутка у меня не появляется.
Дело в том, что не срабатывает свойство "text-align: justify" у div'а с текстом. Это только в FF. Не могу понять почему.
Остальное всё в порядке.

ЗЫ. объясните в чём смысл использования DOCTYPE. Спс.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
webster
Дата 14.9.2008, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

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



DOCTYPE задает режим отображения броузером страницы, он может быть стандартным (Standart Mode), нестандартным (Quirks Mode - "изворачивающийся, подстраивающийся" режим для совместимости со старыми версиями броузеров) и для некоторых броузеров существует еще переходный.
Лучше его использовать - это дает некоторую гарантию одинакового отображения страниц практически во всех наиболее используемых броузерах.
 Нужен полный блок вашего исходного кода, желательно вместе с ячейкой таблицы. И потом, FF должен самостоятельно загружать обновления, что он регулярно и делает, в моем примере все выглядит в нем корректно.

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


Это сообщение отредактировал(а) webster - 14.9.2008, 19:04
PM MAIL   Вверх
artsb
Дата 15.9.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Цитата(webster @  14.9.2008,  19:02 Найти цитируемый пост)
Правая часть может уходить за пределы ячейки из-за горизонтального паддинга ячейки таблицы, или других горизонтальных отступов, надо пробовать их убирать.

У меня есть поля и отступы. Я, кстати, так и предпологал, что это из-за них.

А doctype лучше использовать в standart mode как я понимаю?


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
artsb
Дата 15.9.2008, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2280
Регистрация: 17.7.2007
Где: центр Вселенной

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



Я уже здесь написал о том как исправил проблему. Меня всё устраивает. Единственное, что FF почему-то не растягивает текст по ширине. Хотя это и не важно, но просто хочется чтобы всё выглядело ОК. У вас есть какие-нибудь предложения по этому поводу?

Не могли бы вы описать, что в doctype для чего и где, что нужно писать. Спс.


--------------------
Чем отличается умный человек от мудрого?
Умный - выпутается из любой ситуации.
Мудрый - просто в неё не попадёт.
PM MAIL   Вверх
webster
Дата 15.9.2008, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 361
Регистрация: 1.1.2007

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



Список полных и правильных записей DOCTYPE вы можете посмотреть здесь. Основой его является прямая ссылка на файл DTD (определение типа документа или описание типов, используемых в документе) xhtml1-transitional.dtd (например), который определяет теги разметки, взаимоотношения тегов "родитель-потомок" и т.д.
Цитата

А doctype лучше использовать в standart mode как я понимаю?
Да, DOCTYPE как-раз и переключает в режим Standart Mode тот, или иной броузер.

Например:
Код

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

так же поддерживает теги, которые являются не рекомендуемыми (Deprecated) к использованию.

Цитата

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


 




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


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

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