Sven: Browser-Abfrage

Hallo!

Ich habe ein Feature in meinem Blog, der die letzten Beiträge untereinander anzeigt. Diese Anzeige hatte ich immer unter der Navigation.
Jetzt habe ich aber gemerkt, dass die Navi bei Firefox viel kleiner angezeigt wird, als beim Internet Explorer.
Ich würde jetzt gerne eine If-Schleife machen, indem ich den Browser abfrage und mit einer ID in dem stylesheet verweise, wo die verschiedenen höhen festgelegt sind, an der die Liste jeweils beginnen soll. Bis jetzt hatte ich mir sowas zusammengetextet, was nicht funktioniert:

<script type="text/javascript">
<!--
if(navigator.appCodeName == "Mozilla")
 <div id="svenstext">
<li><font size="2"><b>Die Letzten Beitr&auml;ge:</font></b></li>
<div id="svenstext2"><b><ul><?php get_archives('postbypost', '30', 'html', '', ''); ?>
</ul></b></div>;

if(navigator.appCodeName == "Microsoft Internet Explorer")
 <div id="svenstext3">
<li><font size="2"><b>Die Letzten Beitr&auml;ge:</font></b></li>
<div id="svenstext2"><b><ul><?php get_archives('postbypost', '30', 'html', '', ''); ?>
</ul></b></div>;
/-->
</script>

Sorry, aber ich habe da wirklich nicht so die Ahnung von. :/

Danke schonmal für jede Hilfe!

Gruß,
Sven

  1. Hallo Sven,

    Ich würde jetzt gerne eine If-Schleife machen, indem ich den Browser abfrage und mit einer ID in dem stylesheet verweise, wo die verschiedenen höhen festgelegt sind, an der die Liste jeweils beginnen soll.

    Mach das lieber nicht. Das Problem liegt bestimmt, ganz gewiss an deinem Webseiten-Code und lässt sich korrigieren. Eine andere Möglichkeit ist, dass Du die Standardeinstellungen in deinen Testbrowsern geändert hast. Poste lieber mal die entsprechenden Abschnitte aus deinem Webseitencode. Das dürfte mehr bringen.

    Das, was Du da mit Javascript vorhast, ist sehr unelegant, und wird immer fehlerhaft sein. Stichwort: User Agent-Spoofing.

    Grüße

    Nico

    1. Die eigentliche Navi wird durch das Wordpress Plugin Navigo generiert, daher steht dort als code auch auch nur:

      <?php if(function_exists('navigo')) navigo('collapse=true&sort_column=post_title'); ?>

      Bei IE ist zwischen den Zeilen sehr viel Abstand, aber Firefox quetscht die Navipunkte zusammen.

      Denke mal, dass wird irgendwas beim Plugin sein, aber mit der CSS kann ich sicherlich dagegen steuern oder?

      #topic {
       position: absolute;
       left: 50px;
       top: 145px;
       width: 199px;
       background-color: #666666;
      }

      #topic a {
       display: block;
       color: #ffffff;
       text-decoration: none;
              border-bottom: 1px solid #C9C9C9;
       padding: 0px;
       margin: 3px 20px 3px 0px;
       text-transform: uppercase;
       font-size: 10px;
      }

      #topic p {
       text-align: center;
      }

      #topic p a {
       border-bottom: none !important;
      }

      #topic a:hover, #topic a.active {
       color: #C9C9C9;
      }

      #topic h1 {
       padding: 9px 20px 9px 20px;
       background-color: #4A4A4A;
       font-size: 100%;
       font-weight: bold;
       color: #ffffff;
       letter-spacing: 1px;
       text-transform: uppercase;
       margin: 0px;
      }

      #topic a  müsste es dann sein, da es sich schließlich um Links handelt.

      Gruß,
      Sven

      1. #topic a  müsste es dann sein, da es sich schließlich um Links handelt.

        die Abstände werden wahrscheinlioch durch andere Elemente, als ausgerechnet die Links erzeugt. Welche da in Frage kämen erfährst du durch einen Blick in den Quellcode wie er am Browser ankommt. PHP spielt dabei nie eine Rolle!

        Bedenke aber auch, dass der Code immer noch einfach falsch ist, du musst also erst einmal am HTML arbeiten um dann mit dem CSS das Layout wunschgemäß zu verändern.

      2. Ciao,

        Die eigentliche Navi wird durch das Wordpress Plugin Navigo generiert, daher steht dort als code auch auch nur:

        »»

        <?php if(function_exists('navigo')) navigo('collapse=true&sort_column=post_title'); ?>

        Auch hier wird am Ende ganz normaler HTML-Code rauskommen. Und hier musst Du die entscheidenden Passagen posten. Mit den CSS-Regeln allein wird Dir wohl niemand helfen können.

        "noscript" hat Recht: Du musst erst einmal sicherstellen, dass dein HTML korrekt ist.

        Am besten wäre es, wenn Du eine URL, unter der die Seite zu finden ist, postest.

        Gruß Nico

  2. <script type="text/javascript">
    <!--
    if(navigator.appCodeName == "Mozilla")
    <div id="svenstext">
    <li><font size="2"><b>Die Letzten Beitr&auml;ge:</font></b></li>
    <div id="svenstext2"><b><ul><?php get_archives('postbypost', '30', 'html', '', ''); ?>
    </ul></b></div>;
    ...
    /-->
    </script>

    Sorry, aber ich habe da wirklich nicht so die Ahnung von. :/

    ja, das sehe ich.
    Selbst wenn ich mir nur das HTML ohne die if-Abfragen ansehe ist das sehr fehlerhaft. li und div können nicht so einfach nebeneinander stehen (li müssen in ol oder ul stehen, dort dürfen aber keine div stehen).

    Mit solchem Murks macht jeder Browser was er will, da rettet auch das beste JavaScript nichts. Bei dir ist aber kein gutes JavaScript sondern nur eine if-Abfrage, auf die HTML folgt. JavaScript kann aber mit HTML nix anfangen.