|
Профессиональный веб-дизайн: Введение в современные веб-технологии "3. Создание внешней таблицы. Теперь создайте таблицу с двумя строками. Во второй строке создайте две ячейки - в первую переместите таблицу цифр, а во вторую - таблицу знаков." Как в ячейку <td> поместить таблицу? Таблица же сама состоит из ячеек. Исходя из задания следует, что <td> может быть родителем для <td>, но это противоречит правилам HTML? |
Позиционирование средствами CSS
Позиционирование на основе плавающих элементов. Центрирование
Позиционирование на основе плавающих элементов.
Не существует такого вида позиционирования как "плавающий", и "плавающие" элементы должны быть позиционированы статически (что автоматически достигается при отсутствии определения свойства position ). Однако свойство float позволяет модифицировать нормальный поток ещё одним способом. "Плавающий" (floating) элемент примыкает к левой ( float:left ) либо правой ( float:right ) границе своего контейнера, а последующие элементы (как блочные, так и строчные) обтекают его с противоположной стороны. Это нашло чрезвычайно широкое применение в CSS-вёрстке (об этом говорится в "Табличная и бестабличная вёрстка" ).
div {
width: 40%;
float: left;
margin: 3px;
padding:3px;
border:solid 1px blue;
color:Blue;
}
...
<div>
Это плавающий контейнер div - Lorem ipsum... </div>
<div>
Это плавающий контейнер div - Lorem ipsum ...</div>
Листинг
6.4.
Позиционирование на основе плавающих элементов. Плавающий блочный элемент и обтекающий его блочный элемент
.floating {
float: right;
width: 40%;
margin-right: 3px;
padding: 3px;
border: solid 1px blue;
color: Blue;
}
...
<div>
<div class="floating">
Это плавающий контейнер div - Lorem ipsum...
</div>
Это текст, обтекающий плавающий контейнер - Lorem ipsum ...
</div>
Листинг
6.5.
Плавающий блочный элемент и обтекающий его слева текст
- Уберите указание ширины контейнеров. Почему пропал эффект плавающей разметки?
- Добавьте третий контейнер, добейтесь размещения всех контейнеров в один горизонтальный ряд.
- Что произойдёт, если упаковать все div-контейнеры в ещё один div-контейнер?
- В примере с обтекающим текстом увеличьте отступ для плавающего контейнера (чтобы обтекающий его текст располагался дальше от рамки). Контейнер в рамке не должен опуститься вниз.
Центрирование элементов на странице
Если задать блочному элементу значение auto в свойствах margin-left и margin-right, то он центрируется по горизонтали в своём контейнере. При этом у элемента должна быть задана ширина. Для старых браузеров (IE5-) этот приём не срабатывает, и тогда применяются менее изящные способы. Чтобы центрировать строчный элемент (например, img), его обычно помещают в блочный (либо назначают ему свойство display:block, тем самым делая блочным его самого).
Для вертикального центрирования применяют другую технологию: позиционируют блочный элемент абсолютно левым верхним углом в центр экрана ( top:50%; left:50%; ) и затем смещают влево и вверх путём задания отрицательных отступов.
div {
margin-left: auto;
margin-right: auto;
width: 300px;
background: #ccc;
}
...
<div>
Если задать блочному элементу значение auto в свойствах margin-left и
margin-right, то он центрируется по горизонтали в своём контейнере...
</div>
Листинг
6.6.
Методы центрирования элементов на странице. Горизонтальное центрирование разметки
img {
width:747px;
height:500px;
position:absolute;
top:50%;
left:50%;
margin-top:-250px;
margin-left:-373px;
}
...
<div>
<img src="Cypripedium M.jpg" alt="Cypripedium macranthos Sw" />
</div>
Листинг
6.7.
Вертикальное центрирование




