Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/10/2017, 10:41
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
La venganza del z-index

Saludo
En un post anterior, ArturoGallegos me dió tremenda ayuda
para solventar un comportamiento de un template en smartphones.

Ahora bien, la vista en donde realicé las modificaciones
es la página principal de esta web, pero ahora tomando
como base dicha página, estoy mostrando los resultados
de una búsqueda con este link, con dos variantes.

La primera es que cuando el resultado sea un ahorrador o una marca,
la imagen quede en un marco 'redondo' (aunque a veces se ve ovalado,
teorizo por las características de la imagen que se carga), y eso lo hago con esto en una clase que aplico a la etiqueta <img>.

Código CSS:
Ver original
  1. .div-search-image
  2.         {
  3.             /*height: 250px;*/
  4.             /*width:     250px;*/
  5.             width:95%;
  6.             margin-left: 2.5%;
  7.             margin-right: 2.5%;
  8.             display:block;
  9.             border:1px solid #f0f0f0;
  10.             background-repeat: no-repeat;
  11.             background-position: 0%;
  12.             border-radius: 50%;
  13.             background-size: 100% auto;
  14.         }

Lo segundo es que cuando el resultado es ahorrador o negocio
se mostrará un botón para 'Agregar Aliado' y que cambiará su texto
a medida que los usuarios gestionen las solicitudes, teniendo este css
para el botón como tal:

Código CSS:
Ver original
  1. .form-search-action
  2.         {
  3.             cursor:pointer;
  4.             float: right;
  5.             /*width: 180px;*/
  6.             /*height: 40px;*/
  7.             height: 100%;
  8.             text-align: center;
  9.             width: 100%;
  10.             top: 0;
  11.             z-index: 10;
  12.         }

Y aquí también van a venir los resultados de productos (es decir,
lo que se había arreglado inicialmente en post anterior)

Por eso mismo, tomé la clase inicial (sale-box1) y la copie (sale-box2)
para aplicar una u otra clase en el div que contendrá toda la
información del producto (sale-box1), ahorrador o marca (sale-box2).

Esto porque si bien en los productos no hay problema en que se de clic
(o se pulse en smartphones) en cualquier parte de la publicación ya que
eso lo hace entrar al detalle de la información,
en el caso de los ahorradores o marcas quiero que si pulsan en la imagen o el nombre,
haga lo mismo (entre al detalle) pero si dan clic en el botón (que inicialmente dirá 'Agregar Aliado')
esto haga un consumo vía ajax y realice las operaciones pertinentes,
como por ej cambiar el texto del botón a 'Solicitud Pendiente'
(si la persona no esta logueada en la plataforma, saldrá un alert)

El css de esas clases es este:

Código CSS:
Ver original
  1. .sale-box1 {
  2.     /*height: 100px;*/
  3.     height: 100%;
  4.     left: 0px;
  5.     overflow: hidden;
  6.     position: absolute;
  7.     text-align: center;
  8.     top: 0px;
  9.     /*width: 100px;*/
  10.     width: 100%;
  11.     z-index: 9;
  12. }
  13. .sale-box span.before {
  14.     right: 89px;
  15.     background: #CB3D27;
  16. }
  17. .sale-box1 span.on_sale {
  18.     background: #7DB122;
  19.     color: #FFF;
  20.     display: block;
  21.     left: -35px;
  22.     font-size: 1em;
  23.     padding: 5px 0;
  24.     position: relative;
  25.     text-align: center;
  26.     top: 23px;
  27.     -webkit-transform: rotate(-45deg);
  28.     -moz-transform: rotate(-45deg);
  29.     -ms-transform: rotate(-45deg);
  30.     -o-transform: rotate(-45deg);
  31.     transform: rotate(-45deg);
  32.     width: 140px;
  33.     z-index: 2;
  34.     text-transform:uppercase;
  35.     border-bottom: 2px solid #6B9C15;
  36. }
  37. .sale-box2 {
  38.     /*height: 100px;*/
  39.     height: 50%;
  40.     left: 0px;
  41.     overflow: hidden;
  42.     position: absolute;
  43.     text-align: center;
  44.     top: 0px;
  45.     /*width: 100px;*/
  46.     width: 90%;
  47.     z-index: 9;
  48. }
  49. .sale-box2 span.on_sale {
  50.     background: #7DB122;
  51.     color: #FFF;
  52.     display: block;
  53.     left: -35px;
  54.     font-size: 1em;
  55.     padding: 5px 0;
  56.     position: relative;
  57.     text-align: center;
  58.     top: 23px;
  59.     -webkit-transform: rotate(-45deg);
  60.     -moz-transform: rotate(-45deg);
  61.     -ms-transform: rotate(-45deg);
  62.     -o-transform: rotate(-45deg);
  63.     transform: rotate(-45deg);
  64.     width: 140px;
  65.     z-index: 2;
  66.     text-transform:uppercase;
  67.     border-bottom: 2px solid #6B9C15;
  68. }

Y bueno, aquí me vuelve a pasar lo del primer post sobre todo con los
ahorradores y las marcas, es decir, en ciertas resoluciones (sobre todo
las menores a 400) y en orientación vertical no se logra obtener el press del botón. Si se cambia a horizontal, ya funciona.

Y pues teniendo en cuenta lo del z-index combinado con width y height
en el post anterior, eso me hizo pensar en el título de este. ; )

Finalmente, quisiera saber si esta bien implementado, o sería mejor
'fusionar' por ej el css del tag img con el css del div(sale-box2)

Ya me dirán, gracias!
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com