Html Общее Flashcards
Лайфхаки, обнаруженные на практике
Способы горизонтального центрирования блоков
- margin: 0 auto;
2. display: inline /inline-block + text align:center
Заголовок списка по дефолту имеет небольшой отступ слева. Как сдвинуть его влево?
- Обернуть в параграф с классом
2. Добавить левый отрицательный марджин
Относительно чего можно позиционировать объект с помощью position: absolute?
- Относительно себя в нормальном потоке
2. Относительно родителя
Позиционирование объекта относительно себя в нормальном потоке
Самому объекту
position: relative;
top: 20px;
left: 10px;
Родителю: ничего
Позиционирование объекта относительно
родителя
Родителю:
Position: relative;
Дитю:
position: absolute;
top: 0;
right: 0;
Относительное позиционирование: что лучше для мобильной версии?
Лучше позиционирование относительно родителя.
Относительно себя в потоке будет плыть в мобильной версии
Как можно добавить одному блоку одновременно position:absolutr и position: relative?
Никак нельзя. Также нельзя добавлять эти свойства через разные классы одного объекта.
Выход:
1. Обернуть объект ещё одним блоком и задать ему второе свойство
2. Смотреть, может родитель X того элемента Y, которого нужно сделать родителем для элемента Z, сможет стать родителем и для X, и для Z?
Что задавать родителю элемента, имеющему свойство float?
Clear:both
display: table
Что поможет от схлопывающихся вертикальных отступов?
display:inline-block;
Но тогда исчезнет горизонтальное центрирование с помощью margin: auto и придется центрировать вторым способом.
Что будет, если заголовку задать font-weight: 100?
Он станет тоньше. Потому что по дефолту у него толщина больше, чем 100.
Для каких элементов не работает центрирование margin: auto?
Не работает для строчных, строчно-блочных и абсолютно позиционированных элементов. И даже для блочных, если у них нет ширины.
Почему margin:auto не работает для кнопок?
Как исправить?
Потому, что button - это строчно-блочный элемент.
Нужно задать ей display:block и возможно, ширину.
Особенности табличных элементов (display: table)
- Отменяет ширину 100% по умолчанию
- Можно задать размеры, рамки и отступы
- Перееосы строки до и после элемента
Три причины, почему элемент не всплывает при добавлении float? При этом элемент двигается в право-влево
- Родителю не хватает ширины, чтобы уместить элементы по горизонтали
- Блочные элементы по умолчанию имеют максимальную ширину в рамках родителя. Причём, сам жиртрест может выглядеть, как ему указано, при этом всю оставшуюся ширину будет занимать его марджин (который, хоть и не указае в консоли, но виден при наведении на него мышки -инспектора в консоли).
Решается добавлением display:table; - Если предыдущиепункты не являются проблемой, можно добавить предыдущему в потоке элементу так жe float: left
Как лучше прорабатывать медиа-запросы?
Прорабатывать по отдельности каждый горизонтальный блок, занимающий всю ширину экрана