Використання значка Font Awesome для точок кулі, з одним елементом списку


131

Ми хотіли б мати можливість використовувати піктограму Awesome Font Awesome ( http://fortawesome.github.com/Font-Awesome/ ) як точку кулі для невпорядкованих списків у CMS.

Текстовий редактор в CMS видає лише необроблений HTML, тому додаткові елементи / класи не можуть бути додані.

Це означає відображення піктограм, коли розмітка виглядає так:

<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>

Перша проблема, яку я можу побачити, чи потрібен шрифтові Awesome інший атрибут сімейства шрифтів, який потребував би окремого елемента.

Це можливо за допомогою чистого CSS? Або мені доведеться додавати елемент до початку кожного елемента списку, використовуючи щось на зразок jQuery?

Я усвідомлюю, що ми можемо використати заднє фонове зображення, але було б чудово використовувати шрифт Awesome, якщо це можливо.

Відповіді:


248

Рішення:

http://jsfiddle.net/VR2hP/

ul li:before {    
    font-family: 'FontAwesome';
    content: '\f067';
    margin:0 5px 0 -15px;
    color: #f00;
}

Ось допис у блозі, який детально пояснює цю техніку.


18
Корисний список перекладів із цих чудових значків шрифтів до значень css знаходиться тут: astronautweb.co/snippet/font-awesome
Scott C Wilson

24
Ви хочете включити це, щоб видалити пункти кулі за замовчуваннямul { list-style-type: none; }
Едд

Чому цей метод не працює, коли я маю два списки на одній сторінці?
deKajoo

6
Дуже добре, єдине, що я б запропонував вирівняти речі краще - це margin: 0 0.2em 0 -1.2em;просто збільшити / зменшити два значення на однакову суму, щоб отримати потрібний інтервал. Якщо ви використовуєте значення фіксованого пікселя, яке не відповідає належним чином вашому шрифту, ви помітите невідповідність у позиціях багаторядкового списку.
гальмує

Я додав префікс ul до цього, інакше він би спробував це зробити, якби клієнт використовував cms для створення упорядкованого (пронумерованого) списку
rtpHarry

154

Новий джерело (версія 4.0.3) робить це дуже просто. Ми просто використовуємо наступні класи:

<ul class="fa-ul">
  <li><i class="fa-li fa fa-check-square"></i>List icons (like these)</li>
  <li><i class="fa-li fa fa-check-square"></i>can be used</li>
  <li><i class="fa-li fa fa-spinner fa-spin"></i>to replace</li>
  <li><i class="fa-li fa fa-square"></i>default bullets in lists</li>
</ul>

Відповідно до цієї (нової) URL-адреси: http://fontawesome.io/examples/#list


12
Це має бути правильна відповідь із новою версією fa. Дуже добре, дякую за це пояснення.
Девід

23
Я не згоден, у запитанні було запропоновано рішення, використовуючи єдиний список у чистому CSS. Для цього використовується додатковий HTML, а також класи. Хоча це, безумовно, спосіб, який задають документи FA, це технічно не є вирішенням питання і не є корисним, якщо ви хочете зробити це без зміни HTML-виводу.
Райан

Я знаю, для чого ти йдеш - але люди, які не постійно пишуть чистий CSS у ситуаціях, коли вони не можуть змінити свій HTML ???? (серйозно, погляньте на зміну веб-рамки) знадобиться їх оновлення пам’яті google-запитів для посилання на «правильний» шрифтовий дивовижний спосіб документування, що поєднується із «фактичним» відповіддю поруч один з одним, щоб вирішити. Я не хочу сказати, що "немає просто однієї правильної відповіді на проблему", але немає ...
lol

1
Цей підхід не працює добре з переліковими елементами списку до кількох рядків, оскільки ідентифікація на додаткових рядках не розширюватиметься на ширину піктограми.
Lars Haugseth

2
Можливо, варто додати, що для FA 4.3 (можливо, також і інших версій) та Bootstrap 3, ulі liелементи потрібно встановити, position: relativeоскільки fa-liпозиція позиціонує в абсолюті. Інакше всі вони будуть плисти вгору ліворуч.
Джеремі Гарріс

14

Я хотів би спиратися на деякі відповіді вище та наведені в іншому місці та пропоную використовувати абсолютне позиціонування разом із класом: перед псевдокласом . У багатьох наведених вище прикладах (і в подібних питаннях) використовується спеціальна розмітка HTML, включаючи метод обробки Font Awesome. Це суперечить первісному питанню, і це не обов'язково.

ДЕМО ТУТ

ul {
  list-style-type: none;
  padding-left: 20px;
}

li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 10px
}

li:before {
  position: absolute;
  top: 0;
  left: 0;
  font-family: FontAwesome;
  content: "\f058";
  color: green;
}

Це в основному все. Ви можете отримати значення ISO для використання у вмісті CSS на шаблоні Font Awesome . Просто використовуйте останні 4 буквено-цифрові символи з попередньою косою рисою. Так [&#xf058;]стає\f058


4

Там приклад того , як використовувати Шрифт Високий поряд невпорядкований список на їх сторінці прикладів .

<ul class="icons">
  <li><i class="icon-ok"></i> Lists</li>
  <li><i class="icon-ok"></i> Buttons</li>
  <li><i class="icon-ok"></i> Button groups</li>
  <li><i class="icon-ok"></i> Navigation</li>
  <li><i class="icon-ok"></i> Prepended form inputs</li>
</ul>

Якщо після спроби цього коду ви не можете знайти його, ви не включаєте бібліотеку правильно. Відповідно до їх веб-сайту, ви повинні включати бібліотеки як такі:

<link rel="stylesheet" href="../css/bootstrap.css">
<link rel="stylesheet" href="../css/font-awesome.css">

Також перегляньте примхливий пост Кріса Койєра про шрифти значків на своєму веб-сайті CSS Tricks .

Ось його скріншот , а також розповідається про те, як створити власний шрифт із значком.


2
Вам не потрібна додаткова розмітка: li:beforeможе мати інше сімейство шрифтів, ніж liсаме воно.
cimmanon

@cimmanon: Хоча ви справді правильні, документація для Font Awesome пропонує вам мати додаткову розмітку. З технічної точки зору це не потрібно, але, я думаю, може знадобитися певне копання по гліфах шрифту, щоб з’ясувати, який ключ відображений на який символ. Для цього знадобиться певний час і терпіння, але впевнений, що ти вирішиш і так.
cereallarceny

@cereallarceny - проблема, яку ми маємо, це редактор HTML (TinyMCE) для CMS створює формат, який я надав у своєму запитанні. Тож з цього погляду ми не маємо контролю над списком HTML. Якщо ми не налаштуємо TinyMCE на включення елемента i (а не видалення його як порожній елемент).
BaronGrivet

Отже, у вас немає доступу до HTML, у вас є доступ до CSS?
cereallarceny

Так, повний доступ до CSS.
BaronGrivet

1

@Tama, ви можете перевірити цю відповідь: Використання значків Font Awesome як кулі

В основному, ви можете досягти цього, використовуючи лише CSS без необхідності додаткової розмітки, як запропонував FontAwesome, та інших відповідей тут.

Іншими словами, ви можете виконати те, що вам потрібно, використовуючи ту саму основну розмітку, яку ви згадали у своїй початковій публікації:

<ul>
  <li>...</li>
  <li>...</li>
  <li>...</li>
</ul>

Дякую.


1

Моє рішення з використанням стандартного <ul>і <i>всередині<li>

  <ul>
    <li><i class="fab fa-cc-paypal"></i> <div>Paypal</div></li>
    <li><i class="fab fa-cc-apple-pay"></i> <div>Apple Pay</div></li>
    <li><i class="fab fa-cc-stripe"></i> <div>Stripe</div></li>
    <li><i class="fab fa-cc-visa"></i> <div>VISA</div></li>
  </ul>

введіть тут опис зображення

ДЕМО ТУТ


1

У шрифті Awesome 5 це можна зробити за допомогою чистого CSS, як у деяких з вищезазначених відповідей з деякими модифікаціями.

ul {
  list-style-type: none;
}

li:before {
  position: absolute;
  font-family: 'Font Awesome 5 free';
          /*  Use the Name of the Font Awesome free font, e.g.:
           - 'Font Awesome 5 Free' for Regular and Solid symbols;
           - 'Font Awesome 5 Brand' for Brands symbols.
           - 'Font Awesome 5 Pro' for Regular and Solid symbols (Professional License);
          */
  content: "\f1fc"; /* Unicode value of the icon to use: */
  font-weight: 900; /* This is important, change the value according to the font family name
                       used above. See the link below  */
  color: red;
}

Без правильної ваги шрифту він відображатиме лише порожній квадрат.

https://fontawesome.com/how-to-use/on-the-web/advanced/css-pseudo-elements#define

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.