Форум программистов, компьютерный форум, киберфорум
HTML, CSS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
1 / 0 / 1
Регистрация: 03.05.2018
Сообщений: 50
1

Почему блок делает отступ

03.11.2018, 14:34. Показов 3666. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот создал я допустим блок закрашенный в зелёный на половину страницы, а теперь хочу создать такой же блок, ну уже на другую часть страницы. Но 2-ой сьезжает вниз относительно 1-го
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="stuuu.css">
    <title>Anisoc</title>
  </head>
  <body>
    <section class="reg">
    </section>
    <section>
    <div class="art">
    </div>
  </section>
  </body>
</html>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
*{
  margin:0;
  padding:0;
}
.reg{
  height: 100vh;
  width: 50vw;
  background-color: #00ff48;
}
.art{
  float: right;
  height: 100vh;
  width: 50vw;
  background-color: #00ff48;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2018, 14:34
Ответы с готовыми решениями:

Почему делая отступ margin-top уезжает и второй блок?
body{ background: yellow; } #list{ background: #fff; width:90%; height:100%; box-shadow:...

Делает отступ не элеммента а целого блока
Помогите не могу понять как и почему Делает отступ не элеммента а целого блока &lt;!DOCTYPE html&gt;...

Блок при массштабируемости меняет отступ
Ребят. Такая проблема. У меня блок при массштабируемости меняет отступ. А при увеличение вообще...

Блок <div> игнорирует отступ от соседнего блока
Делая редизайн шаблона на Денвере, столкнулся с проблемой отступа между блоками div, блоки наезжают...

3
dev - investigator
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
03.11.2018, 17:34 2
Novike,
Цитата Сообщение от Novike Посмотреть сообщение
Почему блок делает отступ
из-за float
Цитата Сообщение от Novike Посмотреть сообщение
блок ... на половину страницы, а теперь хочу создать такой же блок, ну уже на другую часть страницы.
Вариантов сделать это масса, например - https://codepen.io/qwerty_wasd/pen/JejOLV
HTML5
1
2
3
4
5
6
7
8
<body>
    <section class="reg">
    </section>
    <section>
    <div class="art">
    </div>
  </section>
  </body>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
*,
*:after,
*:before {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
  outline: 0;
}
 
/*стили выше добавлены только для этого примера, в реальном проекте используйте normilize.css\reset.css*/
html,
body {
  height: 100%;
  width: 100%;
}
 
body {
  display: flex;
  flex-wrap: nowrap;
}
 
section.reg {
  flex-grow: 1;
  background-color: #64B5F6;
}
 
section.art {
  flex-grow: 1;
  background-color: #E57373;
}
0
Модератор
Эксперт HTML/CSS
2277 / 1657 / 651
Регистрация: 07.08.2016
Сообщений: 3,972
03.11.2018, 19:18 3
Лучший ответ Сообщение было отмечено Qwerty_Wasd как решение

Решение

Qwerty_Wasd, Приветствую!
Novike, Qwerty_Wasd, виноват тут не float, а единицы измерения и неправильно заданные стили.
Novike
Рассмотрим по порядку.
section это блочный элемент. По умолчанию занимает 100% ширины, после него происходит перенос строки.
Для секции с классом reg задана ширина 50vw, обтекание не задано. Значит этот элемент ВИЗУАЛЬНО занимает половину ширины окна браузера и после него происходит перенос строки. Далее идет новый блок section (который по умолчанию занимает 100% ширины) и в нем находится див с классом art, у которого задана ширина в 50vw и float:right;. Это значит что див занимает половину ширины окна браузера, прижат вправо и все элементы должны его обтекать с левой стороны. Но у него есть родитель, и поэтому его обтекание не распространяется на элементы которые расположены в html коде выше этого родителя. Да и блочные элементы ничего не знают про обтекание и ведут себя так, как будто обтекаемых элементов вообще нет.
Теперь по поводу ширины блоков: еденицы измерения "vw" и "%" - не одно и то же, "vw" не учитывают полосу прокрутки, т.е. считают ширину так, как-будто полосы прокрутки нет. А вот проценты уже учитывают полосу прокрутки и вычитают ее из видимой области экрана.
Наглядно в следующем примере(измените vw на %):
HTML5
1
2
<div class="l"></div>
<div class="r"></div>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
*{
  margin: 0;
}
div{
  height: 150vh;
  width: 50vw;
  float: left;
}
.l{
  background: #000;
}
.r{
  background: #f00;
}
Можете заодно в инспекторе посмотреть ширину блоков при vw и процентах.
Вот как-то так... Есть вопросы - задавайте.
1
Qwerty_Wasd
03.11.2018, 19:38     Почему блок делает отступ
  #4

Не по теме:

AlexZaw, приветствую :) Да Вы правы, не обратил должное внимание на верстку ТС.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.11.2018, 19:38

Почему изображение далает отступ сверху и слева?
Почему изображение далает отступ сверху и слева? Хотя в коде отступов никаких нет. &lt;html&gt; &lt;body&gt;...

Почему не устанавливается отступ сверху? Как исправить?
Почему не устанавливается отступ сверху? Как исправить? &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD...

Почему появляется отступ после сайта при уменьшении масштаба?
Почему может появляться такой желтый отступ? (У меня боди желтого цвета) ((все что правее левее это...

Почему образуется отступ блока от верхнего края окна браузера?
Доброго времени суток! В коде ниже образуется отступ о верхнего края браузера. То есть &lt;body&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru