Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Mario R. Rancel

Páginas: 1 ... 7 8 9 10 11 [12] 13 14 15 16 17 ... 32
221
Buenos días, todo de acuerdo con lo que se pedía en el ejercicio y como comentas tendrás que ir poco a poco. Otra opción es usar frameworks que te permiten ir muy rápido, pero en ese caso no aprendes los fundamentos, sino aprendes a usar el framework. Pero es otra opción...

Un comentario:

ul, ul li { background-color:#000000; color:#FFFFFF; font-size:120%; margin:0px; width:45%; }

Aquí aplicas un width de 45% a ul, y un width de 45% a elementos li dentro de ul. Esto significa que el elemento ul ocupará el 45% de lo que ocupa el padre y el elemento li un 45% de lo que ocupa el ul. Es decir, que aplicas una reducción dos veces, el efecto es que el texto del menú se apelotona hacia la izquierda al no poder abarcar todo el ancho del ul, sino sólo el 45% de este elemento

Saludos

222
Buenos días

Un veterano como tú debería escribir los códigos completos, CU01013D, por aquello de que las consultas a bases de datos encuentren el hilo cuando se busque el código  ::)

Viendo el ejercicio... el apartado a) bien resuelto.

El apartado b) y c) me parece que te has inventado la propiedad text-size ya que debería ser font-size

Apartados d) y e) bien resueltos

Una cosa a recordar es que .secundario h3 span { ... } significa "estilos a aplicar a span dentro de h3 dentro de elementos con class sencundario". Si escribiéramos span h3 .secundario significaría "elementos con class secundario dentro de elementos h3 dentro de elementos span".

Saludos

223
Buenos días

El ejercicio está bien:

Ten en cuenta que cuando se da un valor como 200x50 píxeles esto normalmente se refiere a anchoxalto, por tanto debería ser width:200px; y height: 50px; y no al revés.

El color #DEB887 se pedía para el último div, no como fondo para todos los div. Por ello debería delimitarse.

Un id no debe repetirse porque su finalidad es que sea único, igual que un número de documento nacional de identidad no puede repetirse. Por ello limpiador sería preferible definirlo como class en lugar de como id

Con estos cambios el código quedaría (uniendo html y css en un solo archivo por simplificar):

Código: [Seleccionar]
<html>
<head>
<title>Portal web - aprenderaprogramar.com</title>
<meta charset="utf-8">
<style type="text/css">
#final {background-color:#DEB887;}
.limpiador{clear:both;}
.peque {margin-right:5px; height:50px; width:50px;
float:left;}
.grande{ width:200px; height:50px; margin-right:5px;
float:right;}
.texto{background-color:yellow;
margin-top:20px; margin-bottom:20px;}
#caja1{background-color:aqua;}
#caja2{background-color:azure;}
#caja3{background-color:beige;}
#caja4{background-color:bisque;}
#caja5{background-color:khaki;}
#caja6{background-color:gold;}
#caja7{background-color:tan;}
#caja8{background-color:teal;}
#caja9{background-color:lime;}
#caja10{background-color:silver;}
#caja11{background-color:linen;}
</style>
</head>
<body>
<div id="wrapper">
<div class="peque" id="caja1"></div>
<div class="peque" id="caja2"></div>
<div class="peque" id="caja3"></div>
<div class="peque" id="caja4"></div>
<div class="peque" id="caja5"></div>
<div class="peque" id="caja6"></div>
<div class="peque" id="caja7"></div>
<div class="peque" id="caja8"></div>
<div class="limpiador"></div>
<div class="texto">Div texto</div>
<div class="grande" id="caja9"></div>
<div class="grande" id="caja10"></div>
<div class="grande" id="caja11"></div>
<div class="limpiador"></div>
<div id="final">
Curso CSS aprenderaprogramar.com
</div>
</div>
</body>
</html>

Saludos

224
Buenos días

El ejercicio está bien, cumpliendo con lo que se pedía.

Sobre las preguntas:

1. Es cierto que teniendo una sola línea no tiene demasiado interés cambiar un line-height. No obstante, aunque tengas una sola línea, su visualización puede cambiar al variar el valor de line-height. Prueba a ponerle un valor line-height:305%; y debería verse distinto.

2. Es una demanda de los programadores el que se facilite alguna forma de conseguir el efecto ellipsis cuando se trabaja con múltiples líneas, ya que text-overflow:ellipsis; white-space:nowrap; supone una limitación al solo funcionar con una línea. Algunos navegadores han implementado soluciones para esto, pero todavía no están estandarizadas. Posiblemente se estandarice algo para resolver esto y dentro de unos meses ya se pueda utilizar algo estándar vía css. Mientras tanto, para resolverlo hay que recurrir a css-tricks ("trucos css") o a otras posibilidades como JavaScript, cortar el texto del lado del servidor, etc.).

Algunos navegadores admiten esto pero otros no:

Código: [Seleccionar]
.block-with-text {
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical; 
}

Saludos

225
Buenos días

El ejercicio está bien, cumpliendo con lo que se pedía. Como recomendación, a la hora de tomar imágenes es preferible tomar urls en lugar de rutas locales, ya que las imágenes locales sólo las puedes ver operando desde tu pc, mientras que las urls pueden ser vistas por cualquier persona con conexión a internet.

Ejemplo ruta local:
Código: [Seleccionar]
<img src="c:/EJERCICIOS CURSO CSS/simson.jpg">
Ejemplo con url:
Código: [Seleccionar]
<img src="http://cdnb.20m.es/trasdos/files/2011/07/Simpsons_on_Tracey_Ullman.png">
Nota: tienes una cosa extraña, que es una etiqueta <p> envolviendo a todos los elementos de la página. Esa etiqueta deberías eliminarla.

Saludos

227
Buenas tardes Pedro veo las respuestas correctas. En la pregunta a) de forma más amplia podemos decir que el código evita el envío del formulario si el campo nombre está vacío o tiene contenido no válido. Si como respuesta a un evento submit de un formulario se tiene un return false, el formulario no es enviado, como se explica al comienzo del ejercicio.

En la pregunta b), necesitamos un return como respuesta al submit. Si no lo tenemos, el formulario se enviará aunque la función devuelva false.

En la pregunta c) yo diría que la función no devuelve nada, aunque podrían hacerse pruebas para comprobar esto. Al no devolverse nada, el formulario se envía porque no se produce un return false como respuesta al evento submit.

Saludos,

228
Buenas tardes, ahora lo he probado y me ha funcionado bien ¡¡. Creo que el problema se debía a un detalle con el que no merece la pena detenerse. En Firefox puedes navegar teniendo abiertos paneles laterales como el panel lateral de favoritos. Esto se ve que afecta a cómo realiza los cálculos el navegador, porque cerrando ese panel lateral sí rebota exactamente en el lateral derecho. También pienso que si se está con varios monitores puede haber algún problema. Pero una vez visto que se debe a este tipo de cuestiones creo que lo mejor es seguir adelante y no detenerse con este tipo de detalles.

Saludos

229
Pero ¿te rebota cuando el borde derecho de la ventana toca el borde derecho de la pantalla? ¿O te rebota antes de que toque el borde derecho? A mí me rebota antes de que toque el borde derecho  ::)

230
Buenos días

Por apartados

a) Lo veo correcto

b) Lo veo correcto. Hay que tener en cuenta que ocurren dos cosas, supongamos la pantalla de 768px de alto.

En el momento de creación de la ventana con nuevaVentana = window.open ('', 'miNombre', 'width=250, height=250, resizable=true, menubar=yes'); tendrá una posición "por defecto".

Cuando se establece posición con nuevaVentana.moveTo(0,positionY); tendríamos que el valor de innerHeight es el alto del área de contenidos que puede ser por ejemplo 611px. En este caso el valor de positionY inicial sería 611/2 - 125 = 180.5 px, es decir, la esquina superior izquierda de la ventana estará a una distancia de 180.5 px en vertical desde el límite superior, y horizontalmente estará pegada a la izquierda.

Con nuevaVentana.moveTo(0,positionY); la ventana se situaría en la parte izquierda de la pantalla.

c) Lo veo correcto, 33.33 milisegundos ó 0.03333 segundos

d) Lo veo correcto

e) Esto tiene una base matemática. No es necesario comprenderlo para el seguimiento del curso. La base matemática es que la función seno toma valores entre 0, 1, -1 describiendo una forma de onda, conforme se incrementan sus valores.

En cada redibujado de la ventana su posición Y varía de acuerdo con esto:

controlSinusoidal = controlSinusoidal + Math.PI/256;
  positionY = 100*Math.sin(controlSinusoidal);

Las operaciones se hacen en radianes. controlSinusoidal se ha establecido en 0 al inicializarlo y cada vez que se redibuja la ventana se incrementa un poco. La posición Y se actualiza en base al seno de ese valor que se va incrementando, y de esa manera se describe una curva sinusoidal.


f) A mí no me ha funcionado correctamente, me ha aparecido !Se terminó! antes de que la ventana llegara al límite derecho de la pantalla. Es posible que tú lo hayas probado en otro navegador

g) Hace bien el efecto rebote, pero me ocurre lo mismo que antes. En el lado izquierdo sí rebota bien cuando llega al límite izquierdo, pero en el lado derecho rebota antes de llegar al límite derecho de la pantalla.

Saludos

231
moveTo JavaScript no funciona coordenada y, explicación por monitores

Descripción del problema: al crear una nueva ventana (window.open) y aplicarle el método moveTo(x, y) la ventana sólo se mueve en horizontal pero no en vertical

Código de referencia:

Código: [Seleccionar]
                nuevaVentana = window.open ('', 'miNombre', 'width=250, height=250, resizable=true, menubar=yes');
                nuevaVentana.document.write('<h1>Aprenda a programar ahora. Aproveche la oportunidad</h1>');
nuevaVentana.moveTo(600,200);
                nuevaVentana.focus();


Posible explicación:

Si estás trabajando con dos monitores, moveTo toma el primer monitor o monitor principal como referencia. De modo que las coordenadas x funcionan bien, sin embargo las coordenadas y no funcionan bien si estás trabajando sobre el monitor secundario (principalmente se verá que la ventana se pega a la parte inferior del monitor).

Más información: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=862:window-javascript-metodos-efectos-confirm-prompt-open-moveby-moveto-focus-resize-close-cu01174e&catid=78:tutorial-basico-programador-web-javascript-desde-&Itemid=206

Saludos

233
Descripción del problema: tras crear una ventana que carga una url determinada, al invocar location.href sobre dicha ventana se obtiene about:blank en lugar de la url de la ventana.

Código de referencia:

Código: [Seleccionar]
var nuevaVentana;
nuevaVentana = window.open ('http://aprendeaprogramar.es', 'miNombre', 'width=300, height=300, resizable=true, menubar=yes');
alert ('url de la ventana es ' + nuevaVentana.location.href);

Posible explicación

The open() method creates a new secondary browser window, similar to choosing New Window from the File menu. The strUrl parameter specifies the URL to be fetched and loaded in the new window. If strUrl is an empty string, then a new blank, empty window (URL about:blank) is created with the default toolbars of the main window.

Note that remote URLs won't load immediately. When window.open() returns, the window always contains about:blank. The actual fetching of the URL is deferred and starts after the current script block finishes executing. The window creation and the loading of the referenced resource are done asynchronously.


Según esto la posible explicación sería que al hacer window open y ejecutarse el código la ventana se crea como about:blank. Sólo posteriormente, asíncronamente, se carga la url indicada dentro de esa nueva ventana.

Esto nos puede parecer poco intuitivo, pero la lógica estaría en que estamos hablando de milisegundos. El código se ejecutaría de forma que la ventana estaría creada y se muestran las propiedades antes de que la url haya comenzado a cargar (incluso es posible que la url no llegue a cargar si el servidor no responde por ejemplo). En realidad se trata de un detalle de implementación que parece podrían haber hecho de otra manera... (y quizás cambien en nuevas versiones de navegadores)

Saludos

234
Buenos días, la explicación de seguridad y terceros dominios no parece justificarlo (tras hacer una prueba subiendo archivos a un servidor y probando bajo un mismo dominio)... Aquí he encontrado otra posible explicación:

The open() method creates a new secondary browser window, similar to choosing New Window from the File menu. The strUrl parameter specifies the URL to be fetched and loaded in the new window. If strUrl is an empty string, then a new blank, empty window (URL about:blank) is created with the default toolbars of the main window.

Note that remote URLs won't load immediately. When window.open() returns, the window always contains about:blank. The actual fetching of the URL is deferred and starts after the current script block finishes executing. The window creation and the loading of the referenced resource are done asynchronously.


Según esto la posible explicación sería que al hacer window open y ejecutarse el código la ventana se crea como about:blank. Sólo posteriormente, asíncronamente, se carga la url indicada dentro de esa nueva ventana.

Esto nos puede parecer poco intuitivo, pero la lógica estaría en que estamos hablando de milisegundos. El código se ejecutaría de forma que la ventana estaría creada y se muestran las propiedades antes de que la url haya comenzado a cargar (incluso es posible que la url no llegue a cargar si el servidor no responde por ejemplo). En realidad se trata de un detalle de implementación que parece podrían haber hecho de otra manera...

Saludos

235
Buenos días, pues veo que la explicación de terceros dominios no parece justificarlo... Aquí he encontrado otra posible explicación:

The open() method creates a new secondary browser window, similar to choosing New Window from the File menu. The strUrl parameter specifies the URL to be fetched and loaded in the new window. If strUrl is an empty string, then a new blank, empty window (URL about:blank) is created with the default toolbars of the main window.

Note that remote URLs won't load immediately. When window.open() returns, the window always contains about:blank. The actual fetching of the URL is deferred and starts after the current script block finishes executing. The window creation and the loading of the referenced resource are done asynchronously.


Según esto la posible explicación sería que al hacer window open y ejecutarse el código la ventana se crea como about:blank. Sólo posteriormente, asíncronamente, se carga la url indicada dentro de esa nueva ventana.

Esto nos puede parecer poco intuitivo, pero la lógica estaría en que estamos hablando de milisegundos. El código se ejecutaría de forma que la ventana estaría creada y se muestran las propiedades antes de que la url haya comenzado a cargar (incluso es posible que la url no llegue a cargar si el servidor no responde por ejemplo). En realidad se trata de un detalle de implementación que parece podrían haber hecho de otra manera...

Saludos

236
Hola de nuevo, el about:blank pienso que se explica con lo que se comenta en https://www.aprenderaprogramar.com/foros/index.php?topic=3485.0

Lo que comentas sobre que distintos navegadores dan distintos resultados a mí también me ocurre. En este caso creo que se debe a que algunas de las propiedades no responden igual en los distintos navegadores por no estar suficientemente estandarizadas. Es algo contra lo que no podemos hacer nada, sino conocerlo y tener cuidado. En general para desarrollos complejos o importantes es recomendable hacer pruebas en distintos navegadores e incluso en distintas versiones de navegadores, pero es imposible probarlo todo... A veces los navegadores dependen de detalles, por ejemplo unos pueden admitir width=300, height=300, y otros no admitirlo sin incorporar unidades como width=300px, height=300px. Como las diferencias entre navegadores pueden ser muy sutiles y van cambiando continuamente desde mi punto de vista no conviene prestarle atención (al menos en el marco de un curso como este). Pero ojo, eso no significa que cualquier cosa que no funcione haya achacarlo a la no estandarización de navegadores...

Saludos

237
Buenos días Pedro, lo veo todo correcto. En lugar de mostrar inicialmente algo dentro del iframe con <iframe name="aprende1" src="http://clarin.com" > podría simplemente dejarse no establecida la propiedad src  con <iframe name="aprende1">, hasta que el usuario pulse en una opción, momento en que aparecería el contenido. Otra opción sería ponerle un color de fondo mientras no se haya elegido contenido, etc.

Saludos

238
Hola, para quienes colaboramos en los foros es una satisfacción ver la progresión como programadores de las personas que siguen los cursos y los agradecimientos que nos hacen llegar. Alcanzar un buen nivel como programadores requiere mucho tiempo, pero esperamos que se recuerde "para mí fue importante aquella página donde me echaron una mano cuando estaba empezando". Por eso esperamos que quienes completan los cursos o tienen mayor nivel ayuden para responder en los foros a quienes están con menor nivel. El curso de java avanzado como habrás leído no está completo (por el momento), aunque los contenidos que hay pueden ser útiles para luego seguir progresando. Un abrazo,

239
Buenos días, en primer lugar vaya por delante mi felicitación por haber completado el curso java con constancia, algo que no todos los que lo intentan son capaces de completar, mi enhorabuena.

Respecto al ejercicio lo veo para un 10. Has creado las relaciones adecuadamente, sobreescrito los métodos, has hecho uso del polimorfismo...

Para la pregunta la respuesta está bien. En la clase Polideportivo hay una relación "semejante" a la herencia múltiple, pues implementa las dos interfaces Edificio e InstalacionDeportiva. La clase EdificioDeOficinas, por otro lado, sólo implementa la interface Edificio, por lo que su "herencia" es simple.

Saludos

240
Buenos días Pedro

Veo el código correcto. Como detalle que se puede mejorar, al cargar la página, el mensaje tarda 1 segundo en mostrarse debido a que cuando la página carga le estableces un setTimeout inicial con window.onload = function() { setTimeout(cuentaAtras, 1000); }

Para evitar esa demora en la carga veo preferible escribir window.onload = function() { cuentaAtras(); } quedando el retardo sólo para realizar la cuenta atrás, no para cargar el mensaje inicial.

Saludos

Páginas: 1 ... 7 8 9 10 11 [12] 13 14 15 16 17 ... 32

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".