Foros del Web » Creando para Internet » CSS »

Alterar el estilo de un elemento externo.

Estas en el tema de Alterar el estilo de un elemento externo. en el foro de CSS en Foros del Web. Hola, estoy intento hacer que los elementos de una página aparezcan y desaparezcan al pulsar sobre otros elementos diferentes. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original ...
  #1 (permalink)  
Antiguo 14/08/2013, 08:44
Avatar de replica  
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 20 años
Puntos: 2
Alterar el estilo de un elemento externo.

Hola, estoy intento hacer que los elementos de una página aparezcan y desaparezcan al pulsar sobre otros elementos diferentes.

Código HTML:
Ver original
  1.     <head>
  2.         <style type="text/css">
  3.             section {display: none;}
  4.         </style>
  5.     </head>
  6.     <body>
  7.         <header>
  8.             <div>1</div>
  9.             <div>2</div>
  10.             <div>3</div>
  11.             <div>4</div>
  12.         </header>
  13.         <nav>
  14.             <div>5</div>
  15.             <div>6</div>
  16.             <div>7</div>
  17.             <div>8</div>
  18.         </nav>
  19.         <section>sec 1</section>
  20.         <section>sec 2</section>
  21.         <section>sec 3</section>
  22.         <section>sec 4</section>
  23.         <section>sec 5</section>
  24.         <section>sec 6</section>
  25.         <section>sec 7</section>
  26.         <section>sec 8</section>
  27.     </body>
  28. </html>

La idea es hacer una barra de navegación (en mi caso una superior y otra lateral, aunque no lo he puesto en el css), y que según clique sobre un div u otro (perfectamente sustituibles por <li>, <a>, checkbox, me da igual) provoque que los section aparezcan o no (section{display:block;}).

He probado ya con esas soluciones, e incluso con algún selector de css, sin éxito (es posible que me equivoque al utilizarlos). Los eventos que he utilizado son :active y :focus, sin ningún resultado (es curioso que css aún no tenga un :click o algo así).

Me conformo con lo que pido arriba. La guinda del pastel sería provocar que desaparecieran todos los section, y sólo se mostrara el que selecciono. Y la chica que sale de dentro del pastel sería provocar que el section a mostrar fuera el resultado tanto del click del nav combinado con el click en header.

No quiero utilizar Javascript. Intento mantener el código al mínimo, pero creo que al final tendré que ceder.

¿Alguien tiene alguna idea? Gracias.
  #2 (permalink)  
Antiguo 14/08/2013, 09:01
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Alterar el estilo de un elemento externo.

No te acabo de entender muy bien, pero por lo que entendí, la única forma de hacerlo en CSS es usando elementos de formularios y la pseudoclase :checked, pero, yo no recomendaría hacer eso, ya que no es para semántico.

La solución óptima es hacerlo mediante JavaScript.
  #3 (permalink)  
Antiguo 14/08/2013, 09:24
Avatar de replica  
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 20 años
Puntos: 2
Respuesta: Alterar el estilo de un elemento externo.

Cita:
Iniciado por pzin Ver Mensaje
No te acabo de entender muy bien, pero por lo que entendí, la única forma de hacerlo en CSS es usando elementos de formularios y la pseudoclase :checked, pero, yo no recomendaría hacer eso, ya que no es para semántico.

La solución óptima es hacerlo mediante JavaScript.
Simplemente quiero que aparezca un elemento cuando clico en otro. Igual me da un botón, que un link, que lo que sea. Sólo apretar, y que el elemento destino acepte un cambio de estilo (display:block;)

He probado con radiobutton: checked, y bueno, lo primero es lo que dices, que he tenido que ponerlos ocultos, y he estado utilizando el label for para clicarlos. Eso me rompe la semántica, claro. Y la segunda es que con el checked no he conseguido provocar que el section acepte el estilo nuevo.
  #4 (permalink)  
Antiguo 14/08/2013, 09:58
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.489
Antigüedad: 22 años, 3 meses
Puntos: 2114
Respuesta: Alterar el estilo de un elemento externo.

Es mejor que lo hagas mediante JavaScript. La única forma de interactuar con CSS mediante clicks es con formularios. Y queda luego todo un poco feo —desde el punto de vista del markup.
  #5 (permalink)  
Antiguo 14/08/2013, 11:00
Avatar de replica  
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 20 años
Puntos: 2
Respuesta: Alterar el estilo de un elemento externo.

Bueno, y hay alguna solución, aunque sea sin clicks? ¿Haciendo hover sobre un elemento, por ejemplo? Porque me surgen los mismos inconvenientes, cómo le puedo dar un estilo a un elemento diferente, que no es hijo, ni nieto, ni sobrino, ni nada...

Etiquetas: alterar, elemento, estilo, html
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 00:23.