Горизонтальная линия (тег <hr />) такой простой элемент, а столько с ним проблем.
Цвет и отступы hr
Для устранения этих проблем используем CSS код:
hr {
height: 1px;
border: none;
color: #ff0000;
background: #ff0000;
margin: 0; /* устраняем начальный отступ для всех браузеров (в ие6 не работает) */
}
* html hr {/* хак для ие6 */
margin: -7px 0; /* устраняем начальный отступ для ие6 */
}
Для избежания хака и отдельного CSS для IE6 можно воспользоваться свойством float для hr:
hr {
height: 1px;
border: none;
color: #ff0000;
background: #ff0000;
margin: 0;
float: left; /* чтобы в IE6 устранить отступ по умолчанию */
width: 100%; /* плавающие элементы обязательно должны иметь явно указанную ширину */
}
Чтобы задать одинаковый цвет для hr, можно воспользоваться и таким способом:
hr {
height: 1px;
border: none;
border-top: 1px solid #000;
}
По умолчанию hr имеет выравнивание по центру. Выровнять влево/вправо не так очевидно как казалось.
Выравнивание hr влево
hr {
height: 1px;
border: none;
width: 50%;
text-align: left; /* для ie */
margin: 0 auto 0 0; /* для остальных браузеров */
}
Выравнивание hr вправо
hr {
height: 1px;
border: none;
width: 50%;
text-align: right; /* для ie */
margin: 0 0 0 auto; /* для остальных браузеров */
}
Бордюр для hr
hr может выглядеть не только сплошной линией, например, она может быть пунктирной:
hr {
height: 1px;
border: none;
width: 50%;
border-top: 1px dotted #000;
}
Background для hr
hr {
height: 1px;
border: none;
background: url(path-to/hr.png) no-repeat;
}
Все просто, за одним исключение - это не работает в IE. Поэтому приходится использовать <div>:
.line {
height: 1px;
border: none;
background: url(path-to/hr.png) no-repeat;
overflow: hidden; /* для ie6, чтобы высота блока была 1px */
}
|