Укладка горизонтальных правил

Есть ли более приятный способ стилизации тега <hr /> с использованием CSS, который является кроссбраузерным и не предполагает оборачивания div вокруг него? Я изо всех сил пытаюсь найти его.

Лучший способ, который я нашел, заключается в следующем:

CSS

.hr {  
    height:20px;  
    background: #fff url(nice-image.gif) no-repeat scroll center;  
}  
hr {  
    display:none;  
}

HTML

<div class = "hr"><hr /></div>
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
4
0
561
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Если вы установите для дисплея block, он должен вести себя как <div>.

Ваш ответ: вы должны полностью удалить hr и просто использовать div

я не согласен. Горизонтальная линейка, хотя якобы визуальный элемент, все же несет семантическое значение, тогда как div - нет.

nickf 20.10.2008 17:19

Я склонен соглашаться с Nickf в этом, это в содержании по какой-то причине. Однако установка его на отображение блока может стоить внимания.

Chris J Allen 20.10.2008 18:43

Вы можете применить фоновое изображение к нижней части предыдущего элемента, возможно, с небольшим дополнительным отступом. Таким образом вы сможете избавиться от лишней / несемантической разметки.

Ответ принят как подходящий

Классический способ сделать это - создать оболочку вокруг <hr> и стилизовать ее. Но я придумал трюк с CSS для замены элемента изображения без дополнительной разметки:

Для браузеров, отличных от MSIE:

hr {
   border : 0;
   height : 15px;
   background : url(hr.gif) 0 0 no-repeat;
   margin : 1em 0;
 }

Дополнительно для MSIE:

hr {
   display : list-item;
   list-style : url(hr.gif) inside;
   filter : alpha(opacity=0);
   width : 0;
}

См. запись в моем блоге для получения дополнительной информации и примера трюка в действии.

Это здорово, +10, если бы я мог!

Skilldrick 02.09.2009 18:51

Другие вопросы по теме