|
20 / 19 / 5
Регистрация: 04.10.2012
Сообщений: 223
|
|||||||||||
Обтекание флоат17.02.2015, 21:31. Показов 2328. Ответов 13
Метки нет (Все метки)
Объясните мне тупому почему в этом коде не происходит обтекание по правому краю блока контент.
Добавлено через 2 часа 52 минуты да уж 20 просмотров не одного ответа... А ведь простой вопрос
0
|
|||||||||||
| 17.02.2015, 21:31 | |
|
Ответы с готовыми решениями:
13
Как прекратить обтекание одного тега, не прекращая обтекание других силами css? Флоат не работает Не срабатывает флоат |
|
293 / 169 / 29
Регистрация: 16.09.2012
Сообщений: 370
|
|
| 17.02.2015, 22:32 | |
|
Файрбаг в помощь.
Content вырван из потока флоатом, последующий элемент (right) начинается от начала строки (не от конца зафлоаченного блока, а от начала строки!!). Т.к. его ширина ограничена 300 пикселями, он не помещается в той же строке, на первой линии, потому content выталкивает right вниз.
0
|
|
|
27 / 41 / 13
Регистрация: 15.05.2013
Сообщений: 1,313
|
|
| 17.02.2015, 22:44 | |
|
установи для right {float: right}
или margin-left: 660px;
0
|
|
|
20 / 19 / 5
Регистрация: 04.10.2012
Сообщений: 223
|
|
| 18.02.2015, 05:38 [ТС] | |
|
Я просто хочу понять логику. Почему если я не задам размер блоку right то он обтекает блок контент. И еще если я блоку conten float:right, то обтекание будет слева, и все умещается.
И что значит "Т.к. его ширина ограничена 300 пикселями, он не помещается в той же строке, на первой линии, потому content выталкивает right вниз." 660+300 = 960, а контейнер 980 пикселей, пожалуйста объясните ,очень нужно
0
|
|
|
293 / 169 / 29
Регистрация: 16.09.2012
Сообщений: 370
|
|
| 18.02.2015, 09:08 | |
|
На первой схеме обычное расположение блоков, без флоатов.
На второй с float: left у блока content. Ширина второго блока отсчитывается от начала строки (!) (координаты 0 по оси х и 0 по y). Т.к ширина первого блока 690, второй блок с шириной 300, фактически должен бы лежать на первом, но т.к. второй блок не может перекрывать содержимое первого, он сползает вниз на высоту контента первого блока. Уберите ширину второго блока, подсветите его файрбагом, ширина этого блока 100% (от начала, поверх первого элемента). Затем уменьшайте ширину второго блока, когда его ширина станет приближаться к 690, ему некуда будет деваться кроме как спрыгнуть вниз. Первый элемент зафлоачен, он не абсолютно\фиксировано спозиционирован (!), он влияет на окружающие его блоки (!).
0
|
|
|
20 / 19 / 5
Регистрация: 04.10.2012
Сообщений: 223
|
|
| 18.02.2015, 12:07 [ТС] | |
|
Не понял , я пытаюсь но не понимаю, где логика здесь?
float - Определяет, по какой стороне будет выравниваться элемент, при этом остальные элементы будут обтекать его с других сторон. Все больше ничего не сказано... Смотрите ширина общего контейнера 980 px в нем вложены 2 контейнера 660px и 300px. У первого контейнера float:left следовательно первый контейнер выравнивается по левому краю блока родителя, а второй его обтекает справа, вот в этом функция float. В нашем случает ширина первого 660px, а второго, который должен обтекать 300px итого 660+300=960, еще 20px в запасе общий контейнер ведь 980px Теперь я прошу нормально объяснить что мешает обтеканию. И при чем здесь фраза, что начинается отсчет сначала строки, почему сначала? ведь float же стоит... Да все я вижу стоит firefox developer, но понимая от того что вижу не добавляется. Хорошо как реализован вот 2- колоночный макет в бутстрап там ведь тоже общий контейнер затем в нем блок контента ширина в % если помню то 66.66% с float:left и сайдбар с шириной 33.33%. и все и вся обтекает. Еще вот сказано такое "В случае, если ширина последующего контента зафиксирована, он не будет переноситься ниже выровненного float’ом div’а. Вместо этого он применит свою ширину." А ширина то в моем случае зафиксирована а блок все равно переносится ниже предыдущего.
0
|
|
|
153 / 126 / 39
Регистрация: 02.05.2012
Сообщений: 573
|
|
| 18.02.2015, 13:08 | |
Сообщение было отмечено dimon888951 как решение
Решение
dimon888951, все просто. При использовании float, элемент выпадает из потока. И вот следующий элемент (правый) не в курсе что до него кто-то был (левый), поэтому правый и начинается от начала строки.
Самый простые способы: добавить float обоим блокам, что бы они были в одинаковой ситуации, либо правому задавать отступ слева шириной с левый блок.
1
|
|
|
293 / 169 / 29
Регистрация: 16.09.2012
Сообщений: 370
|
||
| 18.02.2015, 13:21 | ||
|
В бутстрапе все колонки в строке row имеют float: left; потому они идут друг за другом.
x-горизонталь, y-вериткаль, высота блоков допустим 50px. Поток идет сверху вниз, вырываем блок из потока первый блок (660px) встает с координатами 0:0-690:50 (диагональ), второй блок (300px) идет в потоке, т.е. должен встать с координатами 0:0-300:50, данное пространство заполнено первым блоком, т.к. поток идет сверху вниз, содержимое блока сползает вниз на 50px. Более внятно не могу объяснить, может кто-то еще отпишется.
0
|
||
|
27 / 41 / 13
Регистрация: 15.05.2013
Сообщений: 1,313
|
||||||
| 18.02.2015, 13:33 | ||||||
|
dimon888951 вот код, там в блок right добавлено больше текста, чтобы было понятней, сейчас блок right обтекает и ему задана ширина 100%! И лучше выделять блоки цветом, чтобы было понятней. Блок content в данном случае влияет на окружающие блоки
0
|
||||||
|
20 / 19 / 5
Регистрация: 04.10.2012
Сообщений: 223
|
|
| 18.02.2015, 14:42 [ТС] | |
|
На практике я понимаю, как сделать, но вот такой человек, что пока суть не пойму не успокоюсь. Вот форумчанин говорит"При использовании float, элемент выпадает из потока. И вот следующий элемент (правый) не в курсе что до него кто-то был (левый), поэтому правый и начинается от начала строки. " Но это наверное же неверно. Да элемент выпадает из потока, но сделаете следующему элементу тоже float:left и он прилипнет справа к первому элементу, значит второй то элемент видит и знает о существование первого блока,хотя тот вынесен из потока. Но в таком случае если он знает , что элемент вынесен из потока почему он начинает отсчет с нуля?
Ну вообщем я не могу понять, вот не доходит почему второй элемент не хочет встать справа первого элемента ведь там свободное пространство 980- 660= 320 пк и он вполне умещается ведь его ширина 300x. Вот именно это не пойму. Мы дали команду последующим элементам после блока с флоат , вот берите и обтекайте этот блок, а тут и место вроде есть а он типа не видит этого блока и лепится в начало. То зачем тогда флоат я могу просто сдвинуть его марджином без какого то флоат на свободной место...
0
|
|
|
27 / 41 / 13
Регистрация: 15.05.2013
Сообщений: 1,313
|
||
| 18.02.2015, 14:54 | ||
|
Добавлено через 1 минуту Я сразу также не понимал, но с практикой начинаешь понимать
0
|
||
|
153 / 126 / 39
Регистрация: 02.05.2012
Сообщений: 573
|
||||||||
| 18.02.2015, 15:03 | ||||||||
Сообщение было отмечено dimon888951 как решение
Решение
dimon888951,
Ну и про флоат «Float» — одно из CSS свойств блочного элемента разметки, благодаря которому HTML элемент смещается в крайнее, доступное для размещения, левое или правое положение внутри содержащего этот элемент контейнера. В зависимости от установленного значения float, строчные элементы могут обтекать такой элемент по одной из его горизонтальных сторон. А второй правый div у вас блок, а не строчной элемент. Добавлено через 6 минут А вот пример прям обтекания
1
|
||||||||
|
20 / 19 / 5
Регистрация: 04.10.2012
Сообщений: 223
|
|||
| 18.02.2015, 15:11 [ТС] | |||
|
Добавлено через 2 минуты
0
|
|||
|
153 / 126 / 39
Регистрация: 02.05.2012
Сообщений: 573
|
||
| 18.02.2015, 15:13 | ||
|
dimon888951,
есть еще вариант: двум блокам задаем display: inline-block; и они идут друг за другом
0
|
||
| 18.02.2015, 15:13 | |
|
Помогаю со студенческими работами здесь
14
Обтекание
Обтекание снизу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|