Foros del Web » Creando para Internet » CSS »

No Aparezca <li> sino hay contenido

Estas en el tema de No Aparezca <li> sino hay contenido en el foro de CSS en Foros del Web. Buenas. Estoy trabajando en mi web y me ha surgido un problema con los <li>. Os lo muestro en ejemplo: http://www.queremospeliculas.com/cam...-de-las-hadas/ Donde pone enlace reproductor ...
  #1 (permalink)  
Antiguo 17/01/2013, 10:04
 
Fecha de Ingreso: febrero-2006
Mensajes: 80
Antigüedad: 18 años, 2 meses
Puntos: 1
No Aparezca <li> sino hay contenido

Buenas. Estoy trabajando en mi web y me ha surgido un problema con los <li>.

Os lo muestro en ejemplo:

http://www.queremospeliculas.com/cam...-de-las-hadas/
Donde pone enlace reproductor y tal, todo perfecto.

http://www.queremospeliculas.com/nameless-gangster/ Id un poco para abajo y vereis que donde pone enlace reproductor y idioma, salen las capas sin que haya contenido.

Quiero conseguir que sino hay contenido, no aparezcan estas capas.

Aquí os pongo el código html, donde en cada li, coge lo que hay en ese apartado de la administración, el problema está en que no en todos sitios voy a rellenarlo todo, y queda muy feo.

Código HTML:
div class="list_ul clbo clfl mbot10px">
		            	<div class="flol colum_1">
							<h3 class="bgtit bgtit_1 fonb">Enlace</h3>
		            		<ul class="flol cnli2 ul_reproducir ul_listado icos">
								<li><?php $values = get_post_custom_values("Enlace1"); echo $values[0]; ?></li>
                                <li class="othercol"><?php $values = get_post_custom_values("Enlace2"); echo $values[0]; ?></li>
                                <li><?php $values = get_post_custom_values("Enlace3"); echo $values[0]; ?></li>
                                <li class="othercol"><?php $values = get_post_custom_values("Enlace4"); echo $values[0]; ?></li>
                          </ul>
</div> 

Y el css:


Código HTML:
.clbo, .clfl::after, .clboie {
clear: both;
}
.mbot10px {
	
margin-bottom: 10px;
border-radius: 3px;
moz-border-radius: 3px;
-webkit-border-radius: 3px;
}
.colum_1, .colum_2, .colum_3, .colum_4, .colum_5, .colum_7 {
margin-right: 8px;
}

.bgtit_1 {
width: 129px;
height: 25px;
}

.bgtit {
background: #CBD4DF;
color: #2b446c;
margin-bottom: 5px;
padding-left: 8px;
padding-top: 10px;
}
.flol{
	
	
}
.flol, .flli > li, .alignleft {
float: left;
}

.ul_reproducir li {
width: 137px;
height: 40px;
}

.ul_listado > li {
height: 31px;
color: #6f809c;
padding-top: 8px;
vertical-align: middle;
font: 300 12px/normal sans-serif;
padding-left: 8px;
}

.othercol {
background-color: #ECF0F5;
}

Supongo que os aclarireis más si inspeccionais elemento desde el navegador.

Hay alguna solución?

Muchas gracias
  #2 (permalink)  
Antiguo 17/01/2013, 11:12
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: No Aparezca <li> sino hay contenido

Cita:
Iniciado por Zeuser Ver Mensaje
Quiero conseguir que sino hay contenido, no aparezcan estas capas.
Sería una chapuza hacerlo mediante CSS. Primero porque vas a tener elementos vacíos que no hacen falta en la página. Segundo, porque habría que hacer una chapuza.

Esas cosas habría que dejárselas a PHP, ya que sino hay que no aparezca es lo suficientemente apetecible para meter en un condicional.
CSS no tendría que ocuparse eso. Ni tampoco tiene sentido generar código del que no se hará ningún uso.

Así que tendrías que encontrar la forma de comprobar si se va a imprimir algo o no desde PHP.
  #3 (permalink)  
Antiguo 17/01/2013, 11:52
 
Fecha de Ingreso: febrero-2006
Mensajes: 80
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: No Aparezca <li> sino hay contenido

Cita:
Iniciado por Bonez Ver Mensaje
Sería una chapuza hacerlo mediante CSS. Primero porque vas a tener elementos vacíos que no hacen falta en la página. Segundo, porque habría que hacer una chapuza.

Esas cosas habría que dejárselas a PHP, ya que sino hay que no aparezca es lo suficientemente apetecible para meter en un condicional.
CSS no tendría que ocuparse eso. Ni tampoco tiene sentido generar código del que no se hará ningún uso.

Así que tendrías que encontrar la forma de comprobar si se va a imprimir algo o no desde PHP.
Y como puedo hacerlo? Es que no se me ocurre. En el código php,
Código PHP:
<?php $values get_post_custom_values("cuartoidioma"); if($values[0] != NULL) echo $values[0];?>
Ya estoy diciendo que si el valor es 0 no aparezca, pero claro, el diseño de la capa donde está si que sigue apareciendo.
Commo podría solucionarlo? Si se debe hacer con php, pues con php
  #4 (permalink)  
Antiguo 17/01/2013, 12:01
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: No Aparezca <li> sino hay contenido

El li tendría que ir junto al echo, algo así:

Código PHP:
Ver original
  1. echo "<li>".$values[0]."</li>";

De todas formas si es un Wordpress o algo pregunta en el foro de Wordpress o el de aplicaciones enlatadas.
  #5 (permalink)  
Antiguo 17/01/2013, 12:44
 
Fecha de Ingreso: febrero-2006
Mensajes: 80
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: No Aparezca <li> sino hay contenido

Con tu método me ha funcionado. Almenos más o menos. El problema está en los <li> del campo servidor. En esos uso esto:

Código PHP:
<li><div class="<?php the_field('reproductor1'); ?>"></div> </li>

Donde the field(reproductor1) coge el valor del campo reproductor 1, que si por ejemplo es vk, pues hace que el fondo de la capa que se crea sea la imagen de vk.

Como podría solucionarlo.


Y otra cosa, si pongo:


Código PHP:
<?php $values get_post_custom_values("Enlace1"); if($values[0] != NULL) echo"<li class="otherclass">" .$values[0]; "</li>"?>
Ya que había hecho dos tipos de li, al poner un li class me da error en dreamweaver, se puede solucionar?

Etiquetas: aparezca, contenido, html, php
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:18.