0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|
1 | |
Как сделать чтобы блоки не видели друг друга?17.12.2015, 17:52. Показов 7695. Ответов 23
Метки нет (Все метки)
Написал скрипт, который вставляет блоки разных размеров, цветов и с различными выравниваниями и отступами.
Убил 2 дня 400 строк кода на пхп. Только что понял, что я не учел маленькую деталь, потому все работает некорректно. Суть проблемы. Есть родительский блок, квадрат 450 на 450. В него вставляются блоки поменьше. В самом начале я подумал "так, элементы с position:relative" выпадают из потока и другие элементы их не видят. Основываясь на этом написал кучу кода. Только что закончил, протестировал и оказалось, что два блока с относительным позиционированием друг друга то видят. Потому отступы, которые я задавал, работают неправильно. Т.е. второй блок отступает не от верхнего левого края родительского блока, а от блока перед ним. Подскажите решение, чтобы минимально курочить код. Заранее спасибо
0
|
17.12.2015, 17:52 | |
Ответы с готовыми решениями:
23
Как наложить блоки друг на друга? Как сделать так, чтобы 2 сервера друг друга видели Как сделать чтобы подсети под управлением NAT видели друг друга? как настроить чтобы два компа друг друга видели |
В поисках себя
115 / 89 / 34
Регистрация: 12.11.2015
Сообщений: 529
|
||||||
17.12.2015, 17:55 | 2 | |||||
Если правильно понял суть проблемы, то у родителя:
0
|
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|||||||||||
17.12.2015, 18:12 [ТС] | 3 | ||||||||||
А как это поможет?
Обьясню еще раз на примере. Вот набросал аналогичный код, чтобы было понятно:
На деле: (Сетка и нумерация ячеек 150х150 лишь для наглядности размеров)
0
|
В поисках себя
115 / 89 / 34
Регистрация: 12.11.2015
Сообщений: 529
|
|
17.12.2015, 18:16 | 4 |
Ожидался первый вариант или второй?
У меня ваш код выводит на экран, как на первом изображении.
0
|
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|
17.12.2015, 18:21 [ТС] | 5 |
ожидалось как на первом фото
в результате работает как второе фото проверил, вот результат: то есть второй блок отступает от первого, а я планировал, что будет отступать от родителя
0
|
152 / 151 / 67
Регистрация: 25.02.2015
Сообщений: 493
|
|
17.12.2015, 18:31 | 7 |
Glart, ну дык ты top:150px убрал))
Silhouette, Вообще я не понял зачем тут позиционирование? Идти друг за другом это естественное поведение блочных элементов. Не задвай никакого позиционирования и они будут идти друг за дружкой. И зачем float:left если нужно чтоб они не занимали пространство рядом?
0
|
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|
17.12.2015, 18:34 [ТС] | 8 |
хром и фаерфокс отображают как на моем скрине
Добавлено через 1 минуту Karssen, скрипт генерирует блоки по заданным параметрам придется все переделывать под абсолютное позиционирование
0
|
152 / 151 / 67
Регистрация: 25.02.2015
Сообщений: 493
|
|||||||||||
17.12.2015, 18:39 | 10 | ||||||||||
Glart, тогда магия ) потому что в посте
Silhouette, Зачем вы здесь используете позиционирование, если вам нужно чтоб блоки шли друг за другом? Или приведите конечный вариант того что нужно. Потому для того что на картинке не нужно никакое позиционирование
0
|
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|
17.12.2015, 18:44 [ТС] | 12 |
Karssen, на вход скрипта подается массив, в котором указаны номера ячеек, которые должен занимать блок (на фото выше есть сетка)
например 1,2 и 6,9 должно отрисоваться в
0
|
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|
17.12.2015, 18:46 [ТС] | 13 |
второе изображение случайно прикрепил
0
|
В поисках себя
115 / 89 / 34
Регистрация: 12.11.2015
Сообщений: 529
|
|
17.12.2015, 18:47 | 14 |
В таком случае float:left; лучше вообще убрать. И мой пример будет работать. Только еще left отступ указывать.
0
|
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|
17.12.2015, 18:48 [ТС] | 15 |
Glart, это будет работать только если родительский блок расположен вверху страницы
у меня он посреди страницы то есть либо переносить его вверх (что проще) либо переделывать все отступы с учетом позиционирования родительского блока
0
|
152 / 151 / 67
Регистрация: 25.02.2015
Сообщений: 493
|
||||||
17.12.2015, 18:50 | 16 | |||||
Сообщение было отмечено Silhouette как решение
Решение
Silhouette, Интересная задача. Тогда тут есть 2 варианта решения. Самый кроссбраузерный это конечно позиционирование. Но в вашем случае выглядеть это должно так приблизительно
1
|
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|
17.12.2015, 18:51 [ТС] | 17 |
в общем, перенес блок в начало страницы
в течении минуты переделал, работает как мне нужно хоть php-код не нужно трогать спасибо за помощь
0
|
В поисках себя
115 / 89 / 34
Регистрация: 12.11.2015
Сообщений: 529
|
|
17.12.2015, 18:51 | 18 |
Еще вариант. Не с верху страницы (тот же самый, но с отступом)
0
|
0 / 0 / 0
Регистрация: 20.11.2014
Сообщений: 31
|
|
17.12.2015, 18:53 [ТС] | 19 |
Glart, в этом случае у меня дочерние блоки отступают от верхнего края и располагаются вне родителя
0
|
В поисках себя
115 / 89 / 34
Регистрация: 12.11.2015
Сообщений: 529
|
|
17.12.2015, 18:54 | 20 |
0
|
17.12.2015, 18:54 | |
17.12.2015, 18:54 | |
Помогаю со студенческими работами здесь
20
Как соединить два канал интернета чтобы они видели друг друга?(Компьютеров) Как в PHP отделить элементы друг от друга, чтобы не ругались друг на друга? Как сделать чтобы 3 круга не находили друг на друга Как сделать, чтобы объекты не наезжали друг на друга? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |