Foros del Web » Creando para Internet » CSS »

Conflicto entre 2 reglas css

Estas en el tema de Conflicto entre 2 reglas css en el foro de CSS en Foros del Web. Buenas de nuevo, tengo un pequeño problema que no se como solucionar. Dado el siguiente codigo css: Código: //imagenes centradas .titulo_imagen { text-align:center; } .capitulo ...
  #1 (permalink)  
Antiguo 17/11/2009, 03:51
 
Fecha de Ingreso: noviembre-2009
Mensajes: 8
Antigüedad: 14 años, 5 meses
Puntos: 0
Conflicto entre 2 reglas css

Buenas de nuevo, tengo un pequeño problema que no se como solucionar. Dado el siguiente codigo css:

Código:
//imagenes centradas
.titulo_imagen { 
	text-align:center;
    }

.capitulo > .bloque{
	text-indent: 1.5em;
	text-align:justify;
	margin-right:20px;
	margin-left:20px;
    }
Os explico, basicamente lo que quiero hacer es centrar las imagenes con etiqueta .titulo_imagen y por otro lado los bloques de texto de los capitulos de mi libro justificarlos.
El problema es que tengo 2 text-align y prevalece el de .capitulo > .bloque, se sopone que con la etiqueta !important en titulo_imagen deberia aplicar esa regla a todo lo que sea titulo imagen pero no es asi.

Las apariciones de imagenes son de la sigiuente manera en el xhtml
Código HTML:
<h4 class="bloque titulo_imagen titulo" id="capitulo_2_titulo_imagen_2">
            <img id="capitulo_2_titulo_imagen_2_bloque_1" src="recursos/rec_143.jpg">
         </h4> 
Con lo que solo se me ocurre para referenciar las imagenes y centrarlas la forma en la que lo puse arriba en el css. Visto lo visto necesito cambiar la regla css que me permite centrar esas imagenes o hacer que la que tengo escrita, que funciona en cuanto quito el conflicto con el otro text-align prevalezca sobre la anterior.

Si alguien está mas ducho que yo en estos temas, que no es dificil, se agradecería una mano, aunque fuese al cuello.
  #2 (permalink)  
Antiguo 17/11/2009, 06:13
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 16 años, 10 meses
Puntos: 539
Respuesta: Conflicto entre 2 reglas css

Cita:
Os explico, basicamente lo que quiero hacer es centrar las imagenes con etiqueta .titulo_imagen y por otro lado los bloques de texto de los capitulos de mi libro justificarlos.
Pues sí, lo estás haciendo un tanto enrevesadamente. No adivino con los códigos que has puesto para qué quieres el selector de adyacentes (>). Y nada semántico que el contenido de un hnº sea una imagen.
Ejecuta lo siguiente:
Código html:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="es-es">
  3. <title>Kseso? jugando con css</title>
  4. <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" />
  5. <style type="text/css">
  6. * {margin: 0; padding:0; outline: none; border: 0; position: relative;}
  7. * html, * body { height:100%; overflow:auto;}
  8. body {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 100%; background: #FFF;}
  9. .capitulo {
  10. background: #444;
  11. width: 760px;
  12. margin: 10px auto 0;
  13. }
  14. .capitulo p {
  15. font-size: 1em;
  16. text-align: justify;
  17. text-indent: 50px;
  18. color: #fff;
  19. padding: 10px 10px 0;
  20. }
  21. .capitulo h4 {
  22. font-size: 2em;
  23. font-weight: bolder;
  24. color: #FFCC00;
  25. text-indent: 100px;
  26. margin: 10px 0;
  27. }
  28. .titulo_img {
  29. display: block;
  30. margin: 0 auto;
  31. padding: 2px;
  32. border: 3px double #cdcdcd;
  33. background: #777;
  34. }
  35. </head>
  36.   <body>
  37.     <div class="capitulo">
  38.         <h4 id="capitulo_1">Capítulo 1:</h2>
  39.         <img class="titulo_img" src="http://www.inta.es/descubreAprende/imagenes/Foto_web_inf_06.jpg" alt="imagen del capitulo" />
  40.         <p>Lorem ipsum dolor sit amet consectetuer amet Nam convallis at Curabitur. Elit Pellentesque Nulla Pellentesque fermentum vel condimentum Pellentesque elit consectetuer Ut. Curabitur tristique Sed pulvinar ac Morbi tincidunt vitae dignissim adipiscing rutrum. Semper Morbi justo Vestibulum at libero lorem dolor pede pellentesque lacus. Dapibus dictum Integer odio Nullam iaculis nonummy eu pellentesque.</p>
  41.         <p>Lorem ipsum dolor sit amet consectetuer amet Nam convallis at Curabitur. Elit Pellentesque Nulla Pellentesque fermentum vel condimentum Pellentesque elit consectetuer Ut. Curabitur tristique Sed pulvinar ac Morbi tincidunt vitae dignissim adipiscing rutrum. Semper Morbi justo Vestibulum at libero lorem dolor pede pellentesque lacus. Dapibus dictum Integer odio Nullam iaculis nonummy eu pellentesque.</p>    
  42.     </div>
  43.    
  44.     <div class="capitulo">
  45.         <h4 id="capitulo_2">Capítulo 2:</h2>
  46.         <img class="titulo_img" src="http://www.roma.viajar-italia.com/imagenes/avion-roma.jpg" alt="imagen del capitulo" />
  47.         <p>Lorem ipsum dolor sit amet consectetuer amet Nam convallis at Curabitur. Elit Pellentesque Nulla Pellentesque fermentum vel condimentum Pellentesque elit consectetuer Ut. Curabitur tristique Sed pulvinar ac Morbi tincidunt vitae dignissim adipiscing rutrum. Semper Morbi justo Vestibulum at libero lorem dolor pede pellentesque lacus. Dapibus dictum Integer odio Nullam iaculis nonummy eu pellentesque.</p>
  48.         <p>Lorem ipsum dolor sit amet consectetuer amet Nam convallis at Curabitur. Elit Pellentesque Nulla Pellentesque fermentum vel condimentum Pellentesque elit consectetuer Ut. Curabitur tristique Sed pulvinar ac Morbi tincidunt vitae dignissim adipiscing rutrum. Semper Morbi justo Vestibulum at libero lorem dolor pede pellentesque lacus. Dapibus dictum Integer odio Nullam iaculis nonummy eu pellentesque.</p>    
  49.     </div>
  50.   </body>
  51. </html>
__________________
Por una web con mucho estilo
+++ CUENTA ABANDONADA. ¿la quieres? +++
  #3 (permalink)  
Antiguo 17/11/2009, 06:51
 
Fecha de Ingreso: noviembre-2009
Mensajes: 8
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Conflicto entre 2 reglas css

El h4 como dices no debe ser un h4 sino un div, el problema es que el codigo xhtml no es negociable porque es lo que a mi me llega, y mi cometido es hacer una hoja de estilo para maquetar ese texto de cara a lectores de ebook. Eso me permite hacer locuras que no esten muy bien pero que funcionen. Lo del selector > basicamente es porque no encuentro una forma de referenciar lo siguiente:

Capitulo
- Parrafo
- Parrafo
- Parrafo
- Imagen
- Parrafo

Dado eso quiero que parrafo esté justificado e imagen centrada. Por la forma en que me vienen definidas las imagenes align-text: center me vale, aunque no sea correcto semanticamente. El problema es como referenciar tocando solo en el css a los parrafos que esten dentro de capitulo por una parte y por otra a las imagenes que esten en cualquier sitio.

Quiza me esté enrevesando bastante en codigo, pero es que al tener varias clases en un mismo div me vuelve loco y no se por donde meterle mano.
  #4 (permalink)  
Antiguo 17/11/2009, 07:14
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 16 años, 10 meses
Puntos: 539
Respuesta: Conflicto entre 2 reglas css

Es que los párrafos deben ser sí o si <p>, y quien ha hecho el html (o la aplicación que lo genera) así debería haberlo programarlo.
Pero si por ahí no puedes actuar, pon el código html (el generado por el navegador) de la caja padre de "capitulo" y su contenido (tampoco todo el yexto si es muy extenso) así como el css que interviene sobre ellas. Un enlace a una página de prueba sería mejor.

¿Esto es común a todas las imágenes:
<h4 class="bloque titulo_imagen titulo"...
?

Un saludo
__________________
Por una web con mucho estilo
+++ CUENTA ABANDONADA. ¿la quieres? +++
  #5 (permalink)  
Antiguo 18/11/2009, 03:33
 
Fecha de Ingreso: noviembre-2009
Mensajes: 8
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Conflicto entre 2 reglas css

lo del h4 si es comun a todas las imagenes.

Pongo un fragmento de xhtml para que veais la estructura:
Código:
<div class="bloque capitulo contenedor" id="capitulo_5">

         <h1 class="bloque titulo_capitulo titulo" id="capitulo_5_titulo_capitulo_1">
            <em id="capitulo_5_titulo_capitulo_1_bloque_1">
               <strong id="capitulo_5_titulo_capitulo_1_bloque_1_bloque_1">Relacions familiars</strong>
            </em>
         </h1>

         <div class="bloque" id="capitulo_5_bloque_1">La mare d'en Pep
vida.</div>

<div class="bloque" id="capitulo_5_bloque_16">La dona parla, parla.
Amolla moltes coses, és clar, però no pas totes. Sempre ha estat
astuta per evitar els temes compromesos. Sap que la pròpia veu no
ts.</div>

         <h4 class="bloque titulo_imagen titulo" id="capitulo_5_titulo_imagen_1">
            <img id="capitulo_5_titulo_imagen_1_bloque_1" src="recursos/rec_156.jpg">
         </h4>

<div class="bloque" id="capitulo_5_bloque_17">En Pep parla molt poc
de la Maria Teresa, o de l'Anna. Sap que la seva mare estimava la
a l'hivern, un plat calent a taula.</div>
Ahi se observa la estructura que tienen todos los capitulos.
El css es el siguiente:
Código:
//Resaltado de capítulos
.titulo_capitulo {
	font-size: 2.5em;
	page-break-before:always;
    }

//imagenes centradas
h4{ 
	text-align:center;
    }

//Bordeado de recuadros
.recuadro {
	page-break-before:always;
	margin-top:180px;
	margin-left:100px;
    }

.capitulo > .bloque{
	text-indent: 1.5em;
	text-align:justify;
	margin-right:20px;
	margin-left:20px;
    }
Y el conflicto el de antes text-align justify y center se chocan y me dejan las imagenes sin centrar. SI quito la linea de justify en la ultima parte del css si me centra las imagenes.
No doy con la tecla, como te comenté no se me ocurre otra cosa que referenciar de otra manera los mismos apartados, pero no se como.
  #6 (permalink)  
Antiguo 18/11/2009, 06:01
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 16 años, 10 meses
Puntos: 539
Respuesta: Conflicto entre 2 reglas css

Hola Red_Night
La palabra mágica es especificidad del css
Con la información que facilitas (el código html):
Cita:
<h4 class="bloque titulo_imagen titulo" id="capitulo_5_titulo_imagen_1">
<img id="capitulo_5_titulo_imagen_1_bloque_1" src="recursos/rec_156.jpg">
</h4>
si creas la regla css siguiente la imagen quedará centrada sin influir en el resto:
Código css:
Ver original
  1. h4.bloque img {
  2. display:block;
  3. margin:0 auto;
  4. }

He supuesto que la clase .bloque siempre estará presente en todos los h4 que engloban a todas y cada una de las imágenes de ese tipo.
__________________
Por una web con mucho estilo
+++ CUENTA ABANDONADA. ¿la quieres? +++
  #7 (permalink)  
Antiguo 23/06/2012, 16:18
 
Fecha de Ingreso: junio-2008
Mensajes: 8
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Conflicto entre 2 reglas css

Hola

La forma científica de resolver conflictos en CSS se llama especificidad.

te dejo un link que explica como calcularla

http://rightnowweb.blogspot.com/2012/06/especificidad-en-css.html

saludos

Última edición por bequick; 23/06/2012 a las 16:19 Razón: no marca el link
  #8 (permalink)  
Antiguo 23/06/2012, 16:40
Colaborador
 
Fecha de Ingreso: junio-2007
Mensajes: 5.798
Antigüedad: 16 años, 10 meses
Puntos: 539
Respuesta: Conflicto entre 2 reglas css

Revive un tema que lleva muerto 2 años y medio ignorando el cartel rojo.
Un tema donde el consultante no volvió ni a decir aquí estoy.
Dice lo mismo que ya se dijo (especificidad).
Y enlaza un tema que cuanto menos se podría calificar de superficial y poco riguroso con la especificación. Por no mencionar que flaco favor le ha hecho al artículo original que cita como fuente.
No es de lo mejor que se haya escrito, es sólo un artículo más al respecto, pero es el que tengo más a mano.
__________________
Por una web con mucho estilo
+++ CUENTA ABANDONADA. ¿la quieres? +++
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 20:25.