Saltar al contenido

CSS para calificaciones de estrellas a través de FontAwesome

Este team de expertos pasados ciertos días de investigación y de recopilar de información, hemos dado con los datos necesarios, nuestro deseo es que resulte de gran utilidad en tu plan.

Solución:

El desbordamiento: hidden debe estar en ‘stars-active’ (el elemento de tamaño) en lugar de ‘score-wrap’ (que nunca se desborda). white-space: nowrap para evitar que las estrellas pasen a la siguiente línea dentro del contenedor de desbordamiento oculto.

.score 
  display: block;
  font-size: 16px;
  position: relative;
  overflow: hidden;


.score-wrap 
  display: inline-block;
  position: relative;
  height: 19px;


.score .stars-active 
  color: #EEBD01;
  position: relative;
  z-index: 10;
  display: inline-block;
  overflow: hidden;
  white-space: nowrap;


.score .stars-inactive 
  color: grey;
  position: absolute;
  top: 0;
  left: 0;
  -webkit-text-stroke: initial;
  /* overflow: hidden; */



    

Encontré esta solución de Paales aquí: https://github.com/FortAwesome/Font-Awesome/issues/717

Creo que es una solución elegante. Parece comparable a su código porque las estrellas completas se superponen a las estrellas vacías y al usar overflow: hidden y position: absolute. Ahora puede establecer el ancho de las estrellas completas y mostrar las estrellas parcialmente llenas. Si desea mostrar medias estrellas, puede cambiar el ancho del elemento posicionado absoluto con incrementos del 10%.

.rating-box 
  position:relative;
  vertical-align: middle;
  font-size: 3em;
  font-family: FontAwesome;
  display:inline-block;
  color: #F68127;

.rating-box:before
    content: "f006 f006 f006 f006 f006";
  
.rating-box .rating 
    position: absolute;
    left:0;
    top:0;
    white-space:nowrap;
    overflow:hidden;
    color: #F68127;
  
  .rating-box .rating:before 
      content: "f005 f005 f005 f005 f005";
    


PD: Daniel Beck ya te dio la respuesta sobre el error que cometiste con respecto a white-space: no-wrap, por lo que sugiero aceptar esa respuesta. Solo quería compartir esta solución porque creo que es un enfoque alternativo muy agradable.

A continuación se muestra la versión Font Awesome 5 de la respuesta de @ Rob anterior:

Nosotros podemos usar font-family: "Font Awesome 5 Free"; font-weight: xxx; para cambiar entre sólido y contorno

Puedes jugar con el código en el siguiente enlace.

/* rating box with fontawesome 5 inspired from - https://stackoverflow.com/a/49343426/6908282*/

.rating-box 
  position: relative;
  vertical-align: middle;
  font-size: 3em; /* comment/edit this to change size */
  font-family: FontAwesome;
  display: inline-block;
  color: #F68127;


.rating-box:before 
  font-family: "Font Awesome 5 Free";
  font-weight: 400;
  content: "f005 f005 f005 f005 f005";


.rating-box .rating 
  position: absolute;
  left: 0;
  top: 0;
  white-space: nowrap;
  overflow: hidden;
  color: #F68127;


.rating-box .rating:before 
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  content: "f005 f005 f005 f005 f005";


¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 3.5)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *