Foros del Web » Creando para Internet » CSS »

La venganza del z-index

Estas en el tema de La venganza del z-index en el foro de CSS en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 31/10/2017, 10:41
Avatar de 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
  #2 (permalink)  
Antiguo 01/11/2017, 11:33
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 8 meses
Puntos: 1826
Respuesta: La venganza del z-index

No entendí.
  #3 (permalink)  
Antiguo 01/11/2017, 12:35
Avatar de ArturoGallegos
Moderador
 
Fecha de Ingreso: febrero-2008
Ubicación: Morelia, México
Mensajes: 6.774
Antigüedad: 16 años, 8 meses
Puntos: 1146
Respuesta: La venganza del z-index

Yo tampoco entendí mucho, creo que salio bastante rebuscada la explicación.

aun así viendo tu código rescato esto

Código CSS:
Ver original
  1. .sale-box2 {
  2.     /*height: 100px;*/
  3.     height: 50%;
  4.     left: 0px;
  5.     overflow: hidden;
  6.     position: absolute;
  7.     text-align: center;
  8.     top: 0px;
  9.     /*width: 100px;*/
  10.     width: 90%;
  11.     z-index: 9;
  12. }

juego de adivinanzas? encuentra tu error :D
vuélvete a plantear tu problema y encuentralo en ese fragmento de codigo.

Creo que mas que la venganza del z-index, es venganza de la falta de conocimiento.... tu problema no radica en que uses height 100% y afecte al boton que mencionas.

es solo que te falta leer la documentacion CSS, aqui te van 2 puntos esenciales que necesitas para que te funcione bien

1.- la posision absoluta toma como referencia el ancestro mas proximo con una posision definida, asi sea por lo menos position:relative
2.- las propiedades height y width al tener porcentajes como valor, requieren que su ancestro tenga un ancho/alto definido, de lo contrario seria el porcentaje de 0 (cero) es decir 100% de 0 = 0 por ende no se vera ni podras seleccionarlo.

nota: los atributos en linea por default no tienen ancho ni altura definidos, debes hacerlos que se comporten como elementos en block
  #4 (permalink)  
Antiguo 03/11/2017, 14:27
Avatar de Rafael
Modegráfico
 
Fecha de Ingreso: marzo-2003
Mensajes: 9.028
Antigüedad: 21 años, 8 meses
Puntos: 1826
Respuesta: La venganza del z-index

Yo hago un comentario pero viendo los ejemplos.

No utilices posiciones absolutas, trata de respetar al máximo el flujo normal del html.
La absoluta casi nunca la utilizo.

Revisa si puedes usar flex, y también inline-block.
  #5 (permalink)  
Antiguo 05/11/2017, 02:10
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: La venganza del z-index

Sí, creo que me extendí demasiado.

Para resumir, los resultados de una búsqueda en la base de datos arrojarán resultados que pueden ser de varios tipos, y cada tipo tendrá distinta clase css,
la parte visual ya esta, pero el comportamiento de pulsación falla en ciertos dispositivos.

Y tal vez la venganza es del template como tal, pues es un template
que me paso el cliente y ya venía con muchas reglas predeterminadas,
y como bien apuntan, no tengo el conocimiento completo del asunto porque
me estoy encargando de toda la parte backend, y definitivamente si
necesitaría la mano de un frontend porque por estar en lo mio es poco el tiempo que dispongo para enfocarme en primero, obtener más conocimiento
de manejo de reglas avanzadas css, y segundo, a partir de lo adquirido
modificar lo necesario.

En todo caso, muchas gracias por sus indicaciones, en la medida que
me sea posible iré aplicandolas.


__________________
"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

Etiquetas: clase, clases, resolución, smartphone, smartphones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:06.