Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-22 Por tema camilokawerin
Hola,

On 7/21/06, Abel Sutilo <[EMAIL PROTECTED]> wrote:
>
> Saludos Carlos,
> mi comentario abajo
>
> carlos campderrós escribió:
> > On 7/20/06, Abel Sutilo <[EMAIL PROTECTED]> wrote:
> >
> >> [...]
> >>
> >>
> >> Ya. Sin embargo mi problema es que tengo dos tipos de padres (padre
> >> tipo1: Item1/Item3; padre tipo2: Item2) y un sólo tipo de hijo (se ve
> en
> >> el enlace al gráfico [1])... y sin usar class veo que esto es imposible
> >> U_U! Javascript se divisa como posible solución. A ver qué hay por la
> red...
> >>
> >
>

Con CSS 2 solamente y sin agregar una clase a los  "padres" es imposible
hacer lo que intentás. Pero si no podés modificar el código que se envía al
navegador, podés recurrir a javascript para modificarlo una vez que ya fue
cargado por éste (asumo que podrás hacer que tu CMS cargue una función
javascript extra, aunque más no sea agregándola en una archivo js ya
existente).

No tengo a mano los nombres de las propiedades y métodos que te han de
servir para el script ni quiero salirme de la temática de Ovillo (podés
recurrir a la lista JavaEScript para más ayuda), así que te comento
brevemente la idea. Básicamente, deberías recorrer todos los "li" o los que
conciernen a tu menú para chequear si tienen un "hijo" llamado "ul", si es
así, le agregás una clase.

Espero que te sirva.

Saludos,


-- 
Camilo Kawerín
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-21 Por tema Abel Sutilo
Saludos Carlos,
mi comentario abajo

carlos campderrós escribió:
> On 7/20/06, Abel Sutilo <[EMAIL PROTECTED]> wrote:
>   
>> [...]
>>
>> 
>>> Entonces el li padre queda en negro y el li hijo queja en rojo. Podés
>>> definir cualquier propiedad para el padre siempre y cuando la
>>> contradigas para el hijo.
>>>
>>> li { display: inline; }
>>> li li { display: block; }
>>>
>>>   
>> Ya. Sin embargo mi problema es que tengo dos tipos de padres (padre
>> tipo1: Item1/Item3; padre tipo2: Item2) y un sólo tipo de hijo (se ve en
>> el enlace al gráfico [1])... y sin usar class veo que esto es imposible
>> U_U! Javascript se divisa como posible solución. A ver qué hay por la red...
>> 
>
> Creo que no. Item1/ Item3 no son padres de nada, por lo tanto les
> afectaría el "li {display: inline;}", mientras que...
>
> ah no, olvídalo... el método que propuso Martín creo que falla, como
> bien dijiste... pinta diferente los LI anidados, pero no el padre de
> dichos LI...
>
>   
Exacto, he ahi la cuestión. Llamar "padre" a Item1 y 3 era unicamente 
por situarlos en el mismo nivel que Item2 (aunque no tuveran hijos). 
Llamarlos "solteros" hubiera resultado confuso a la par que de un humor 
deficiente xD. Asi que ya ves, no se puede como comentaba...


> Lástima
>   

¡Dimelo a mi! A ver como lo hago :-S
Gracias de todos modos

Buen fin de semana,

Abel
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-21 Por tema carlos campderrós
On 7/20/06, Abel Sutilo <[EMAIL PROTECTED]> wrote:
> [...]
>
> > Entonces el li padre queda en negro y el li hijo queja en rojo. Podés
> > definir cualquier propiedad para el padre siempre y cuando la
> > contradigas para el hijo.
> >
> > li { display: inline; }
> > li li { display: block; }
> >
>
> Ya. Sin embargo mi problema es que tengo dos tipos de padres (padre
> tipo1: Item1/Item3; padre tipo2: Item2) y un sólo tipo de hijo (se ve en
> el enlace al gráfico [1])... y sin usar class veo que esto es imposible
> U_U! Javascript se divisa como posible solución. A ver qué hay por la red...

Creo que no. Item1/ Item3 no son padres de nada, por lo tanto les
afectaría el "li {display: inline;}", mientras que...

ah no, olvídalo... el método que propuso Martín creo que falla, como
bien dijiste... pinta diferente los LI anidados, pero no el padre de
dichos LI...

Lástima
-- 
Si no puedes deslumbrar con tu inteligencia,
desconcierta con tus gilipolleces
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-20 Por tema Abel Sutilo
Saludos Carlos.

carlos campderrós escribió:
> On 7/20/06, Abel Sutilo <[EMAIL PROTECTED]> wrote:
>   
>> XHTML:
>> 
>> Item 1
>> Item 2
>>
>>Item 2.1
>>Item 2.2
>>
>> Item 3
>> etc...
>> 
>> 
>
> Un toque de advertencia: En Strict este código es inválido (en
> Transitional no lo sé, pero lo apunto por si las moscas), los LI
> deberían contener a la lista anidada:
>
> item 2
>   
> item 2.1
> item 2.2
>   
> 
> item 3
>
>   
>> Problema:
>> El prolema es que aquellos Items que preceden a la lista anidada llevan
>> un diseño diferente a aquellos que no preceden a una lista anidada [1]
>> (luego los valores de "ul li a{}" no nos valen para el Item 2 en este
>> ejemplo.
>>
>> La pregunta:
>> Sin usar id o class, ¿cómo "recorcholis" puedo pintar dicho Item
>> que precede a la sublista de manera diferente?
>> ¿Alguna pseudoclase tipo :first-child pero a la inversa? No encontré
>> nada en la especificación CSS2.
>> 
>
> Creo que no. Muchas veces he querido hacerlo y al final siempre he
> tirado de id o class... Con lo "fácil" que sería hacer unos operadores
> de selectores como:
>
> < (en contraposición a >):
>
> li < ul { /* pondría en negrita los LI padres de un UL */
>font-weight: strong;
> }
>
> - (en contraposición a +):
>
> li - li { /* pintaría de verde todos los LI que tuvieran un hermano
> menor (algo así como todos menos el :last-child */
> color: green;
> }
>   

Son operadores de selectores que creo que todos hemos echado en falta 
alguna vez! :D Voy a revisar la especificación de todas formas y ya te 
cuento... No sé si en CSS3 llegará algo así, pero ya están tardando!

> obviamente, si algún dia se añade a la especificación, IE no hará ni caso :D
>   

Si IE hiciera caso de la especificación desaparecería la parte 
"divertida" de nuestro trabajo xD

> saludos
>
>   

Saludos :)
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-20 Por tema Abel Sutilo
Saludos Martín,
mis comentarios abajo:

Martin Szyszlican escribió:
> [abajo mi respuesta]
>
> Abel Sutilo escribió:
>   
>> Jorge Rumoroso escribió:
>>   
>> 
>>> Pues si que debería poder ser revisardo, pues el hijo del elemento "ul" sólo
>>> puede ser el elemento "li".
>>>
>>> www.niquelao.net
>>>   
>>> 
>>>   
>> Hola,
>>
>> Por tu respuesta creo que ó no me has entendido ó no me expresado con 
>> claridad. Si revisas mi post original (no al segundo que he escrito como 
>> aclaración) quizás comprendas a lo que me refiero. De todas formas 
>> vuelvo a insistir por si alguien tiene una idea.
>>
>> Premisas:
>> Se trata de pintar con CSS una lista para un menú sin usar id o class 
>> (sólo por herencias).
>>
>> XHTML:
>> 
>> Item 1
>> Item 2
>> 
>> Item 2.1
>> Item 2.2
>> 
>> Item 3
>> etc...
>> 
>>   
>> 
> Lo que te dice Jorge es que tu código debería tener un  alrededor de 
> cada 
>
> 
> Item 1
> Item 2
> 
> 
> Item 2.1
> Item 2.2
> 
> 
> Item 3
> etc...
> 
>   

Si, bueno... Es XHTML Transitional y eso ha sido una ida de pinza por mi 
parte. Está claro que la lista dentro de la lista debe estar contenida 
entre ... Aunque debería revisar mañana el código, porque ese XHTML 
lo genera por si solo el CMS y hablamos de DotNetNuke (miedo!)... Y creo 
que el código XHTML de la lista es mas bien como lo escribí en el 
mensaje anterior (no cai en el  error de sintáxis).


>
>   
>> CSS:
>> ul{}
>> ul li{}
>> ul li a{}
>> ul li ul{}
>> ul li ul li {}
>> ul li ul li a {}
>>
>> Hasta ahi sin problemas.
>>
>> Problema:
>> El prolema es que aquellos Items que preceden a la lista anidada llevan 
>> un diseño diferente a aquellos que no preceden a una lista anidada [1] 
>> (luego los valores de "ul li a{}" no nos valen para el Item 2 en este 
>> ejemplo.
>>
>> La pregunta:
>> Sin usar id o class, ¿cómo "recorcholis" puedo pintar dicho Item 
>> que precede a la sublista de manera diferente?
>> ¿Alguna pseudoclase tipo :first-child pero a la inversa? No encontré 
>> nada en la especificación CSS2.
>>   
>> 
> Yo opto por algo que tal vez sea poco ortodoxo, pero siempre me ha 
> funcionado de maravillas: contradecirme.
> Por ejemplo:
> li { color: black }
> li li { color: red }
>   

Coincido con Carlos y el método no me desagrada, pero no lo veo... A ver 
si es que me estoy haciendo mayor ya, pero ¿no sigues el mismo  patrón 
pero con diferentes elementos ("ul li ul li{}" = "li li{}")? Corrijeme 
si me equivoco por favor :)


> Entonces el li padre queda en negro y el li hijo queja en rojo. Podés 
> definir cualquier propiedad para el padre siempre y cuando la 
> contradigas para el hijo.
>
> li { display: inline; }
> li li { display: block; }
>   

Ya. Sin embargo mi problema es que tengo dos tipos de padres (padre 
tipo1: Item1/Item3; padre tipo2: Item2) y un sólo tipo de hijo (se ve en 
el enlace al gráfico [1])... y sin usar class veo que esto es imposible 
U_U! Javascript se divisa como posible solución. A ver qué hay por la red...


>
> Creo que es una solución a tu problema. Si a alguien le parece una 
> aberración, me encantaría conocer otras ideas.
>   

Gracias por la idea :)

>> [1] Ejemplo gráfico para entenderlo mejor: 
>> http://www.abelsutilo.com/documentos/ovillo/sublista/sublista.gif
>>
>> Gracias,
>>
>> --
>> Abel
>>   
>> 
>
>   
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-20 Por tema carlos campderrós
On 7/20/06, Martin Szyszlican <[EMAIL PROTECTED]> wrote:
> Yo opto por algo que tal vez sea poco ortodoxo, pero siempre me ha
> funcionado de maravillas: contradecirme.
> Por ejemplo:
> li { color: black }
> li li { color: red }
>
> [...]
>
> li { display: inline; }
> li li { display: block; }
>
>
> Creo que es una solución a tu problema. Si a alguien le parece una
> aberración, me encantaría conocer otras ideas.

a mi me ha encantado, y supongo q a Abel más : )

-- 
Si no puedes deslumbrar con tu inteligencia,
desconcierta con tus gilipolleces
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-20 Por tema carlos campderrós
On 7/20/06, Abel Sutilo <[EMAIL PROTECTED]> wrote:
>
> XHTML:
> 
> Item 1
> Item 2
>
>Item 2.1
>Item 2.2
>
> Item 3
> etc...
> 

Un toque de advertencia: En Strict este código es inválido (en
Transitional no lo sé, pero lo apunto por si las moscas), los LI
deberían contener a la lista anidada:

item 2
  
item 2.1
item 2.2
  

item 3

> Problema:
> El prolema es que aquellos Items que preceden a la lista anidada llevan
> un diseño diferente a aquellos que no preceden a una lista anidada [1]
> (luego los valores de "ul li a{}" no nos valen para el Item 2 en este
> ejemplo.
>
> La pregunta:
> Sin usar id o class, ¿cómo "recorcholis" puedo pintar dicho Item
> que precede a la sublista de manera diferente?
> ¿Alguna pseudoclase tipo :first-child pero a la inversa? No encontré
> nada en la especificación CSS2.

Creo que no. Muchas veces he querido hacerlo y al final siempre he
tirado de id o class... Con lo "fácil" que sería hacer unos operadores
de selectores como:

< (en contraposición a >):

li < ul { /* pondría en negrita los LI padres de un UL */
   font-weight: strong;
}

- (en contraposición a +):

li - li { /* pintaría de verde todos los LI que tuvieran un hermano
menor (algo así como todos menos el :last-child */
color: green;
}

obviamente, si algún dia se añade a la especificación, IE no hará ni caso :D

saludos

-- 
Si no puedes deslumbrar con tu inteligencia,
desconcierta con tus gilipolleces
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-20 Por tema Martin Szyszlican
[abajo mi respuesta]

Abel Sutilo escribió:
> Jorge Rumoroso escribió:
>   
>> Pues si que debería poder ser revisardo, pues el hijo del elemento "ul" sólo
>> puede ser el elemento "li".
>>
>> www.niquelao.net
>>   
>> 
>
> Hola,
>
> Por tu respuesta creo que ó no me has entendido ó no me expresado con 
> claridad. Si revisas mi post original (no al segundo que he escrito como 
> aclaración) quizás comprendas a lo que me refiero. De todas formas 
> vuelvo a insistir por si alguien tiene una idea.
>
> Premisas:
> Se trata de pintar con CSS una lista para un menú sin usar id o class 
> (sólo por herencias).
>
> XHTML:
> 
> Item 1
> Item 2
> 
> Item 2.1
> Item 2.2
> 
> Item 3
> etc...
> 
>   
Lo que te dice Jorge es que tu código debería tener un  alrededor de 
cada 


Item 1
Item 2


Item 2.1
Item 2.2


Item 3
etc...



> CSS:
> ul{}
> ul li{}
> ul li a{}
> ul li ul{}
> ul li ul li {}
> ul li ul li a {}
>
> Hasta ahi sin problemas.
>
> Problema:
> El prolema es que aquellos Items que preceden a la lista anidada llevan 
> un diseño diferente a aquellos que no preceden a una lista anidada [1] 
> (luego los valores de "ul li a{}" no nos valen para el Item 2 en este 
> ejemplo.
>
> La pregunta:
> Sin usar id o class, ¿cómo "recorcholis" puedo pintar dicho Item 
> que precede a la sublista de manera diferente?
> ¿Alguna pseudoclase tipo :first-child pero a la inversa? No encontré 
> nada en la especificación CSS2.
>   
Yo opto por algo que tal vez sea poco ortodoxo, pero siempre me ha 
funcionado de maravillas: contradecirme.
Por ejemplo:
li { color: black }
li li { color: red }

Entonces el li padre queda en negro y el li hijo queja en rojo. Podés 
definir cualquier propiedad para el padre siempre y cuando la 
contradigas para el hijo.

li { display: inline; }
li li { display: block; }


Creo que es una solución a tu problema. Si a alguien le parece una 
aberración, me encantaría conocer otras ideas.
> [1] Ejemplo gráfico para entenderlo mejor: 
> http://www.abelsutilo.com/documentos/ovillo/sublista/sublista.gif
>
> Gracias,
>
> --
> Abel
>   

-- 
Martin Szyszlican
http://www.ylisto.info

"Si este mensaje fué muy largo, fué poco profundo"

___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-20 Por tema Abel Sutilo
Jorge Rumoroso escribió:
>
> Pues si que debería poder ser revisardo, pues el hijo del elemento "ul" sólo
> puede ser el elemento "li".
>
> www.niquelao.net
>   

Hola,

Por tu respuesta creo que ó no me has entendido ó no me expresado con 
claridad. Si revisas mi post original (no al segundo que he escrito como 
aclaración) quizás comprendas a lo que me refiero. De todas formas 
vuelvo a insistir por si alguien tiene una idea.

Premisas:
Se trata de pintar con CSS una lista para un menú sin usar id o class 
(sólo por herencias).

XHTML:

Item 1
Item 2

Item 2.1
Item 2.2

Item 3
etc...


CSS:
ul{}
ul li{}
ul li a{}
ul li ul{}
ul li ul li {}
ul li ul li a {}

Hasta ahi sin problemas.

Problema:
El prolema es que aquellos Items que preceden a la lista anidada llevan 
un diseño diferente a aquellos que no preceden a una lista anidada [1] 
(luego los valores de "ul li a{}" no nos valen para el Item 2 en este 
ejemplo.

La pregunta:
Sin usar id o class, ¿cómo "recorcholis" puedo pintar dicho Item 
que precede a la sublista de manera diferente?
¿Alguna pseudoclase tipo :first-child pero a la inversa? No encontré 
nada en la especificación CSS2.

[1] Ejemplo gráfico para entenderlo mejor: 
http://www.abelsutilo.com/documentos/ovillo/sublista/sublista.gif

Gracias,

--
Abel
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-20 Por tema Jorge Rumoroso
>
> Fe de erratas:
> El codigo generado es más bien algo asi:
> 
> Item 1
> Item 2
> 
> Item 2.1
> Item 2.2
> 
> Item 3
> etc...
> 
>

Pues si que debería poder ser revisardo, pues el hijo del elemento "ul" sólo
puede ser el elemento "li".

www.niquelao.net
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


Re: [Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-19 Por tema Abel Sutilo
Fe de erratas:

Abel Sutilo escribió:
> Saludos,
>
> Tenemos que enfrentarnos al código pelado...:
> 
> Item 1
> Item 2
> 
> Item 2.1
> Item 2.2
> 
> Item 3
> etc...
> 
> ...y controlarlo desde CSS.
>
>   


El codigo generado es más bien algo asi:


Item 1
Item 2

Item 2.1
Item 2.2

Item 3
etc...


Y esto se genera sólo y es  inamovible :_(
Gracias por la ayuda,
Abel

___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo


[Ovillo] Listas dentro de listas: Controlando el elemento LI padre

2006-07-19 Por tema Abel Sutilo
Saludos,

Vuelvo con todo un clásico, pero con un tema muy concreto al respecto. 
La idea es controlar todos los ítems de la lista sin usar id o class. El 
problema: cómo "pintar" de manera diferente el item que precede a la 
sublista (en el ejemplo Item 2). Más detalles:

EL BOCETO:
http://www.abelsutilo.com/documentos/ovillo/sublista/sublista.gif
Tenemos 3 estados genéricos en los items, como podéis ver:
1. Enlace "normal"
2. Enlace  "cabecera de submenú" ( que predece a la sublista)
3. Enlaces del submenú

EL PROBLEMA:
En el caso que me ocupa no puedo controlar el XHTML con clases o 
identificadores ya que el código del menú se genera dinámicamente. Hay 
que preveer incluso que el menú crezca en opciones y sublistas (pero eso 
lo hablamos en otro mensaje más adelante xD).
Tenemos que enfrentarnos al código pelado...:

Item 1
Item 2

Item 2.1
Item 2.2

Item 3
etc...

...y controlarlo desde CSS.

TEORÍAS PERSONALES (inventiva al poder):
Desde CSS se puede "pintar" perfectamente los ítems de la sublista. Por 
ello se me ocurrió pensar que quizás podía existir una pseudoclase como 
:first-child pero a la inversa. Es decir, en vez de controlar al primer 
hijo, controlas al padre desde dicho hijo...

¿Mi imaginación va más allá de CSS o existe algo así? No encontré nada 
en la especificación. ¿Qué solución le veis? Gracias por la ayuda.

--
Abel
___
Lista de distribución Ovillo
Para escribir a la lista, envia un correo a Ovillo@lists.ovillo.org
Puedes modificar tus datos o desuscribirte en la siguiente dirección: 
http://ovillo.org/mailman/listinfo/ovillo