Código CSS no funciona correctamente

Estoy intentando colocar una cabecera con el logotipo y no consigo posicionarla.

Para que me entendáis, es un <div> que no tiene nada detrás, osea, nada más poner el <body> va este <div class="public_header".

En la hoja de estilos CSS uso la intentar absoluta:

.public_body {    position:absolute;    top:0;    left:0;}

Despues de poner este codigo y vincularlo todo, me queda un pequeño margen que no se de donde sale...

Espero vuestras respuestas y muchas gracias.

PD: Si queréis ver a lo que me refiero, esta es la pag que estoy haciendo.

http://tprphonebenijofar.com/www

2

2 respuestas

Respuesta
3

He estado mirando el código fuente de tu página y hay algunos caracteres muy extraños que están haciendo que no se maneje bien en el navegador y hace cosas muy extrañas, si los quitas se ve correctamente. Te pongo una captura del código fuente visto por Chrome:

Los puntitos rojos indican dónde está ese carácter, que es invisible con una fuente normal y es difícil de detectar, aunque lo más extraño es que te haya aparecido.

Por otro lado, como consejo no uses position: absolute si no es necesario, que en tu caso no lo es.

Gracias por tu respuesta Marc, he quitado algunas cosas innecesarias como el <! DOCTYPE> que te sale con el puntito ese. Pero el otro no lo consigo localizar en mi código...

Y a la conclusión del atributo "position", ¿Qué utilizo de sustituto?.

La cosa es que sin ese atributo, me deja pequeños margenes a cada lado, y lo que quiero es que se quede totalmente pegado a la ventana.

Lo que puedes hacer para verlos es usar, por ejemplo el Notepad++ y convertir el fichero de UTF-8 a ASCII, quitar esos caracteres y volver a convertirlo a UTF-8, aunque ya te digo que lo raro es que haya introducido esos caracteres.

En cuanto al absolute, si no quieres espacio pon margin:0 y padding: 0, pero con el problema ese que tienes con los caracteres raros, aunque lo pongas así no te funcionará correctamente.

Respuesta
1

Recreando tu código al local se ve bien incluso con los elementos.

Me imagino que tienes algún código php que deja símbolos. Puede ser la $_session. Puede ser que en este código tienes error de sintaxis que no da error pero pone espacio. Puede ser el BOM de UTF-8. Guarda el documento como UTF sin BOM.

Gracias Dissneyx, creo que tu respuesta es la solución.

Me he fijado que el archivo "index" donde se inicia toda la pag web, esta codificada en ANSI. Pero ahora viene lo que no entiendo.

Este archivo "index" Lo había creado en UTF-8, pero al guardar y volver a abrirlo sigue estando en ANSI. He sacado el archivo del servidor e intentarlo cambiar de forma local y más de lo mismo, lo guarto en codificación UTF-8 y al abrirlo vuelve a estar en ANSI. Ni creando un nuevo archivo UTF-8 y copiando el código del viejo al nuevo. Al abrirlo vuelve a estar en ANSI. Esto con el resto de archivos no me pasa, porque hice la prueba para ver si era problema del programa (uso PHP Designer 8) pero no, los otros archivos al cambiar la codificación se mantiene, menos este...

Asique, ¿qué esta pasando? ¿Qué hago mal? ¿Qué me he perdido? etc, je je.

Saludos.

Bueno, dado lo hecho, ya he conseguido cambiar las codificaciones de los archivos con el bloc de notas, pero aun sigue la pag igual. Te pongo el código de mi página index.php, porque como bien dijiste tengo variable $_SESSION.

¿

<?ini_set("display_errors",'on');session_start();require_once('admin/config.php');require_once('admin/rd.php');if(!isset($_SESSION['lang'])){    $_SESSION['lang'] = "EN_en";}if(!isset($_SESSION['content'])){    $_SESSION['content'] = "home.php";    $_SESSION['admin'] = '0';}?>    <html>        <head>            <meta content="text/html" charset="UTF-8" />            <title>THE POST ROOM PHONE - BENIJOFAR</title>            <script type="text/javascript" src="http://code.jquery.com/jquery-1.11.2.min.js"></script>            <link rel="stylesheet" href="design/www.css" />        </head>        <body>            <div class="info_header">                <?require_once('public/header.php');?>            </div>            <div class="public_body">                <?require_once('public/body.php');?>            </div>        </body>    </html>

El "ini_set" lo puse ahí en vez del php.ini porque no me apetecía reiniciar el servidor... :D, en fin, espero que puedas ayudarme, un saludo.

He recreado en servidor no local el espacio viene por el header.php.

Me lo puedes pasar o mirar que tienes allí.

http://dissenyx.com/space 

Antes de require_once "header.php" he puesto la palabra "header". Esta está en su sitio, pero la llamada al header.php genera el espacio.

Buenas nuevamente.

Pues sigo catatónico, he revisado el código 100 veces y no veo nada de lo que me pones, ni antes ni después hay un header.

Y dentro del archivo "header.php", tengo esto.

<div class="header_logo">    <a href="?home">        <img src="design/header_logo.jpg" alt="header_logo" />    </a></div>

Y nada más...

Esto es muy raro...

He actualizado el código.

Convierte los archivos en UTF8 sin BOM.

http://dissenyx.com/space 

"PHP includes

At the time this article was written, if you include some external file in a page using PHP and that file starts with a BOM, it may create blank lines.

This is because the BOM is not stripped before inclusion into the page, and acts like a character occupying a line of text. See an example. In the example, a blank line containing the BOM appears above the first item of included text.

You should ensure that the included files do not start with a BOM."

El artículo completo está aquí:

http://www.w3.org/International/questions/qa-byte-order-mark.en.php 

Ostras tio, era eso, el maldito BOM, estaba activado!!!! Pero se ha activado solo... Porque la primera vez que me lo dijiste lo mire y no se habia guardado con BOM, y lo miro ahora y si esta.... uffff

Muchas gracias, mi problema se ha solucionado...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas