Подтвердить что ты не робот

Могу ли я использовать CSS для добавления маркера к любому элементу?

Довольно простой вопрос, но я не уверен, что это возможно. Я хочу добавить изображение, чтобы действовать как пуля во всех элементах <h1>. Я знаю, что могу достичь этого:

<span class='bullet'></span><h1>My H1 text here</h1>

с помощью css:

.bullet{
    background: url('bullet.png') no-repeat;
    display:inline-block;
    vertical-align: middle;
    background-size:100%;
    height:25px;
    width:25px;
    margin-right: 5px;
}

но есть ли автоматический способ сделать то же самое? Я думал что-то вроде:

h1{
    list-style-image: url('bullet.png');
}

но это работает только с элементами <ul>. Я действительно не хочу вставлять элемент <span> всюду перед элементом <h1>. Любые идеи?

4b9b3361

Ответ 1

В то время как вы можете использовать псевдо-селектор :before, чтобы добавить символ "-" или "•" перед вашим элементом, это не означает, что ваш элемент ведет себя как маркер. Ваш элемент может выглядеть как маркер, но это просто грязный хак, на самом деле, и его следует избегать!

Чтобы сделать ваш элемент как (1) похожим на маркер, так и (2) вести себя как маркер, вы должны установить атрибуты display, list-style-type и list-style-position этого элемента.


ПРИМЕР КОДА

h1 {
    display: list-item;          /* This has to be "list-item"                                               */
    list-style-type: disc;       /* See https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-type     */
    list-style-position: inside; /* See https://developer.mozilla.org/en-US/docs/Web/CSS/list-style-position */
}
<h1>My H1 text here</h1>

Ответ 2

Вы можете сделать что-то вроде этого:

h1:before {
    content:"• ";
}

См. Fiddle:

http://jsfiddle.net/6kt8jhfo/6/

Ответ 3

Вы можете использовать псевдоселектор :before, чтобы добавить что-либо, что вы хотите, перед тегом.

h1:before {
    content: "- "
}
<h1>My H1 text here</h1>

Ответ 4

Что-то вроде этого должно работать

h1, h2, h3 {
  background: url("the image link goes here") 0 center no-repeat;
  padding-left: 15px; /* change this to fit your needs */
}

Ответ 5

Самый простой способ создать пулю с использованием css - использовать семейство шрифтов... таким образом, нет необходимости включать графику и т.д.

вот код класса:

.SomeClass:before {
  font-family: "Webdings";
   content: "=  ";

{

Ответ 7

list-style-type зарезервирован только для ul. Вы можете использовать <h1 class="bullet"> с псевдоэлементом :before.

Ответ 8

Просто используйте <p>&bull; </p>, чтобы создать точку перед словом