Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kilka pordstawowych pytań
Forum PHP.pl > Forum > Przedszkole
Zyggmunt
Witam, zastanawiało mnie to od początku, ale pomyślałem, że zapytam kiedy indziej. Okazało się bowiem, że IE nie wyśrodkuje mi strony za pomocą

  1. margin: 100px auto;


jeśli do strony nie dodam DTD. Dodałem więc do pliku header.php, który "includuje" do każdej podstrony, ale nie działa. Staram się trzymać zasady XHTML, lecz cała strona zwiera również skrypty php. Nie kompiluje się jednak gdy dodam do niej instrukcję XHTML na poczatku dokumentu, tj.

  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>


W ogóle nie wiem jak i czy wstawiać nagłówki tego typu na stronie *.php. Oto cały kod header.php, który jak sądze zawiera mnóstwo błedów.

  1. <?php echo '<?xml version="1.0" encoding="utf-8" standalone="no"?>' ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl" dir="ltr">
  4. <head>
  5. <script type="text/javascript" src="rounded-corners.js"></script>
  6. <title>Kantor Elektral Jarosław</title>
  7. <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
  8. <meta http-equiv="Content-Language" content="pl"/>
  9.  
  10.  <link rel="stylesheet" href="style.css" type="text/css" />
  11.  
  12. </head>
  13. <body>
  14. <div id="container">
  15.  
  16. <div id="baner">
  17. </div>
  18.  
  19. <div id="content">




Mógłbym właściwie ten plik nazwać header.xhtml, jednak chcę aby była linijka

  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>


której php nie akceptuje w takiej wersji.
Spawnm
nie wyśrodkuje ci
margin: 100px auto; bo masz tam 100 px, daj
margin:0 auto;
Zyggmunt
To niestety nic nie daje przy IE, bo w FF od początku wszystko działało. Czytałem trochę i okazało się, ze należy dodać DTD. Nie wiem jednak jak to zrobić gdy mam do czynienia z plikiem *.php.

Ogólnie proszę o rady jak powinien wyglądać ten header, aby był zgodny i z php i xhtml.
erix
Cytat
Czytałem trochę i okazało się, ze należy dodać DTD.

Niekoniecznie. Dajesz rodzicowi text-align: center i wtedy warstwa będzie na środku.

Cytat
Ogólnie proszę o rady jak powinien wyglądać ten header, aby był zgodny i z php i xhtml.

Ja w projektach korzystam z czegoś takiego:

  1. <?php
  2. # content negotiation
  3. function isXHTMLCapable(){
  4.    $matches = array();
  5.  
  6.    if(preg_match('/application/xhtml+xml(?![+a-z])(;q=(0.d{1,3}|[01]))?/i', $_SERVER['HTTP_ACCEPT'], $matches)){
  7.        $xhtmlQ = isset($matches[2]) ? ($matches[2]+0.2) : 1;
  8.        if(preg_match('/text/html(;q=(0d{1,3}|[01]))s?/i', $_SERVER['HTTP_ACCEPT'], $matches)) {
  9.            $htmlQ = isset($matches[2]) ? $matches[2] : 1;
  10.            return ($xhtmlQ >= $htmlQ);
  11.        }else{
  12.            return true;
  13.        }
  14.    }
  15.  
  16.    return false;
  17. }
  18.  
  19. # ...
  20.  
  21. # content negotiation
  22. if(isXHTMLCapable()){
  23.    $contentType = stripos($_SERVER['HTTP_USER_AGENT'], 'gecko')!==false ? 'text/html' : 'application/xhtml+xml';
  24.    header('Content-type: '.$contentType);
  25.    echo '<'.'?xml version="1.0" encoding="utf-8"?'.'>';
  26. }else{
  27.    $contentType = 'text/html';
  28.    header('Content-type: '.$contentType);
  29. }
  30.  
  31. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  32. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">


Jest tu też wybór MIME dla dokumentu, ale to sobie dasz z tym radę. winksmiley.jpg

Proszę o sensowny tytuł wątku.
Crozin
IE jeżeli wykryje cokolwiek przed DOCTYPE, np:
  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
To przechodzi w tryb wstecznej kompatybilności. Poprawny szkielet dkomuentu, który działa wszędzie:
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Przykładowy dokument</title>

        <style type="text/css">
            #wrapper{
                width: 80%;
                margin: 100px auto;
            }
        </style>
        <script type="text/javascript"></script>
    </head>
    <body>
        <div id="wrapper">
            <p>Content</p>
        </div>
    </body>
</html>
Niestety IE nie obsługuje również typu MIME: application/xhtml+xml, więc trzeba serwować mu text/html (albo ogólnie wszystkim przeglądarkom text/html)
Cytat
nie wyśrodkuje ci
margin: 100px auto; bo masz tam 100 px, daj
margin:0 auto;
Co za bzdura...
erix
Cytat
IE jeżeli wykryje cokolwiek przed DOCTYPE, np:

Jeśli byś przeanalizował mój kod zobaczyłbyś, że on właśnie to sprawdza. Po co dublować...?

Cytat
(albo ogólnie wszystkim przeglądarką text/html)

Chyba przeglądarkom...
Crozin
Cytat
Jeśli byś przeanalizował mój kod zobaczyłbyś, że on właśnie to sprawdza. Po co dublować...?
By wyjaśnić dlaczego tak. A że taki kod mam pod PPM -> Insert Note -> ... to szybko dorzuciłem.
Cytat
Chyba przeglądarkom...
Oczywiście, mój błąd - już poprawione. winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.