Как отредактировать CSS одного поста в блоге, но не других, чтобы получить 5-звездочную рейтинговую систему?

Недавно я создал свой собственный блог с помощью Blogger от Google.

Когда я заканчиваю читать определенную книгу, у меня появляется раздел книги, которую я прочитал где я хотел бы иметь статическую 5-звездочную рейтинговую систему вместо какой-либо. Возможно, с помощью CSS я смогу настроить таргетинг на каждую книгу, чтобы показать посетителю от 1 до 5 звезд.

Я не знаю, как редактировать CSS отдельных сообщений в блоге, чтобы я мог настроить таргетинг на эти конкретные прочитанные книги, если это лучший метод, и мне нужны советы по созданию изображения, которые я мог бы указать, как большая часть 5 звезд должна отображаться (например, 100% для 5 звезд, 80% для 4 звезд, 60% для 3 звезд и т. д.)?


person NumberOneRobot    schedule 01.07.2012    source источник


Ответы (3)


Этот метод НЕ использует JavaScript, jQuery, CSS или CSS3.

Для пояснения: используется простой код ASCII для обеспечения требований STAR.

Solid Star:
Код ASCII для Solid Star: ★

Звездочка контура:
Код ASCII для звездочки контура: ☆

Подписка на DEMO (извините, jsFiddle!):



Название книги: Поездка к дантисту
Автор книги: Yin Pain & Lord Howard Hurts
Звездный рейтинг: ★ ☆☆☆☆



Название книги: Боль в груди
Автор книги: И. Коффалот
Звездный рейтинг: ★★☆☆☆



Название книги: Имея дело со скунсами
Автор книги: Стэн Бэк
Звездный рейтинг: ★★★☆☆



Название книги: Настоящие глаза осознают настоящую ложь
Автор книги: И.С. Вы
Звездный рейтинг: ★★★★☆



Название книги: Spots On The Wall
Автор книги: Who Flung Poo
Звездный рейтинг: ★★★★★




HTML-разметка выше:

Book Title: A Trip To The Dentist<br />
Book Author: Yin Pain & Lord Howard Hurts<br />
Star Rating: &#9733;&#9734;&#9734;&#9734;&#9734;<br />

Book Title: Chest Pain<br />
Book Author: I. Coffalot<br />
Star Rating: &#9733;&#9733;&#9734;&#9734;&#9734;<br />

Book Title: Dealing With Skunks<br />
Book Author: Stan Back<br />
Star Rating: &#9733;&#9733;&#9733;&#9734;&#9734;<br />

Book Title: Real Eyes Realize Real Lies<br />
Book Author: I.C. You<br />
Star Rating: &#9733;&#9733;&#9733;&#9733;&#9734;<br />

Book Title: Spots On The Wall<br />
Book Author: Who Flung Poo<br />
Star Rating: &#9733;&#9733;&#9733;&#9733;&#9733;<br />


★☆☆☆☆ ★★☆☆☆ ★★★☆☆ ★★★★☆ ★★★★★

Необязательно: используйте CSS font properties, чтобы изменить размер, цвет и фон звезды, чтобы настроить ее!

person arttronics    schedule 03.07.2012

Используйте jQuery Подключаемый модуль звездного рейтинга.
См. 2-ю часть для метода Только CSS.

Вот скриншот из плагин jQuery Star Rating< /а>. На вкладке Интеграция с базой данных есть больше примеров подключаемых модулей, и вы всегда можете выполнить поиск дополнительных подключаемых модулей jQuery Star ЗДЕСЬ, если вам это нужно.

Снимок экрана: введите здесь описание изображения

Ссылка:

демонстрация jsFiddle для плагина jQuery Star Rating

Скриншот демонстрации jsFiddle jQuery Star Rating:

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

Минимальная HTML-разметка, которую использует плагин jQuery Star Rating (полностью настраиваемый):

<span class="bookFiveStar">
  <input name="book002" type="radio" class="star" disabled="disabled"/>
  <input name="book002" type="radio" class="star" disabled="disabled"/>
  <input name="book002" type="radio" class="star" disabled="disabled" checked="checked"/>
  <input name="book002" type="radio" class="star" disabled="disabled"/>
  <input name="book002" type="radio" class="star" disabled="disabled"/>
</span>



Выше и ниже приведены ДВА очень разных решения для этого ответа.


Используйте чистую систему рейтинга CSS без подключаемого модуля jQuery или JavaScript.
См. 1-ю часть выше для метода плагина звездного рейтинга jQuery.

Исходное изображение взято из горячая ссылка imageshack .us и показано ниже.
Размеры width:98px; и height:143px;, тип изображения jpg.

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

Ссылка:

демонстрация jsFiddle для рейтинга Pure CSS

Скриншот демонстрации jsFiddle Pure CSS:

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

Минимальный HTML:

<div class="starsCSS">
  <img class="stars3" title="3 Stars" src="http://img366.imageshack.us/img366/6441/stars.jpg" alt="Star Rating Image" />
</div>

Полный CSS:

/* This class name configures and positions the 6 star image block. */
.starsCSS{
  /* The width of the star block uses the entire star.jpg width */
  width: 98px;
  /* The height of the star block is LIMITED to 23px, i.e. 1 star row. */
  height: 23px;
  /* This overflow:hidden will ensure only 1 row is ever seen, when aligned properly.
  /* That said, later below different classname uses margin-top negitive offset to align. */
  overflow: hidden;
  /* The placement of the star block is relative to other elements. Adjust px here. */
  position: relative;
  top: 10px;
  left: 155px;
  /* Simple light blue border is provided for the image./
  /* Your cusom star image may be a .png with transparency so remove this setting. */
  border: 2px solid DodgerBlue;
}

/* This CSS Selector consists of classname .starsCSS that has 'img tag'. */
/* This rule will set original image width and original image height for stars.jpg file. */
.starsCSS img{
  width: 98px;
  height: 143px;
}

/* These 6 classes will position the image so that only the relevant "star row" is seen for .starsCSS */
/* Technically, this first class .stars1 is not needed since nothing changes. */
/* Note stars.jpg is used full width (98px), therefore it's 1 column. */
/* Use margin-left with negative value if your custom image.jpg has 2 or more columns */
/* IF stars.jpg was double in width then "margin-left: -98px;" will hide first column */
.stars1{
  margin-top: 0px;
}
/* Reference Image: 143px height divide by 6 star rows = 23.833333px per row. */
/* Hence, star.jpg image is not perfect and it's rounded to 24px per row instead */
/* Since 1 star row is 24px high, classname .stars2 will offset that to get to next row. */
/* That said, the value needs to be negitive since entire image is shifted up (offset). */
/* The class .starsCSS will now show the second star row! */
.stars2{
  margin-top: -24px; /* Shift up star row 1 */
}
.stars3{
  margin-top: -48px; /* Shift up star rows 1 and 2 */
}
.stars4{
  margin-top: -72px; /* Shift 3 rows of stars out of view (24 x 3 = 72 )  */
}
.stars5{
  margin-top: -96px; /* Shift 4 rows of stars out of view */
}
.stars6{
  margin-top: -120px; /* Shift 5 rows of stars out of view */
}
person arttronics    schedule 01.07.2012
comment
Я не ищу что-то, что посетители моего сайта могли бы использовать для оценки сайта, я ищу способ оценивать книги, поэтому я хочу установить количество звезд и оставить его статичным - person NumberOneRobot; 03.07.2012
comment
Плагин jQuery Star Rating имеет режим disabled, в котором рейтинг устанавливается только вами и не может быть затронут или изменен каким-либо пользователем. Вот почему Рейтинг 6 на фото не отмечен красной звездочкой, так как я не смог его поставить. Посмотрите jsFiddle jQuery DEMO, чтобы увидеть живой пример и узнать больше. - person arttronics; 03.07.2012
comment
Также была создана система звездного рейтинга Pure CSS, которая является частью моего ответа. Этот метод использует одно изображение для отображения от 1 до 6 звезд. Создайте свой собственный файл изображения star.jpg для 5-звездочной версии. Посмотрите jsFiddle Pure CSS DEMO, чтобы увидеть живой пример и узнать больше. - person arttronics; 03.07.2012
comment
Вот альтернативный плагин jQuery Star Rating для рассмотрения. - person arttronics; 08.07.2012

Вы можете изменить CSS определенного тега, используя атрибут style:

<span class="stars" style="width: 80px"></span>

Класс .stars может выглядеть так:

background: url(stars.png) repeat-x;

Где stars.png — это изображение шириной 20 пикселей, которое затем повторяется по оси x 4 раза (80 пикселей) для получения 4 звезд. 5 звезд будут иметь ширину 100 пикселей и т. д.


Общая идея, описанная выше, реализована в этой демонстрации jsFiddle с комментариями к руководству.

Ссылка:

демонстрация jsFiddle с демонстрацией CSS с повторяющимся рейтингом

Снимок экрана:
введите здесь описание изображения

person Ian Wetherbee    schedule 01.07.2012
comment
Где я могу поместить фактический CSS? Я поместил элемент span в пост, но я не уверен, куда делись звездочки CSS. Кроме того, код CSS должен выглядеть так: stars {background:url(stars.png) repeat-x;} - person NumberOneRobot; 01.07.2012
comment
Кроме того, как мне удалить фон изображения? Я не хочу белый фон, потому что у моего блога коричневый фон. - person NumberOneRobot; 01.07.2012
comment
+1 Отличная концепция, мистер Ян Уэзерби! Тем не менее, это лучший метод, который использует самую минимальную разметку CSS для создания индивидуальной системы звездного рейтинга, которую ищет OP. Вклад в ваш ответ - скриншот jsFiddle и скрипки. Ваше здоровье! - person arttronics; 03.07.2012
comment
@user1493950 user1493950, я преобразовал этот ответ в учебник по jsFiddle, чтобы вы могли учиться. Если у вас есть какие-либо вопросы об этой скрипке, продолжайте спрашивать здесь, и кто-нибудь ответит. ИМХО, это лучший ответ, который позволяет настроить 5-звездочную рейтинговую систему для ваших конкретных требований к статическим звездам, которые будут самыми быстрыми. для настройки, запуска и обслуживания. - person arttronics; 03.07.2012