1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Frage zu Stylesheet/PHP

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von wapplegraph, 18.11.06.

  1. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Hallo

    Mache nun meine erste Seite mit php. Dies brauche ich aber eigentlch nur für den Inhaltwechsel.

    Nun aber Frage Stylesheet: Ich möchte, dass alle <a> im div#links diesen und diesen Abstand haben. Wie kann ich das angeben?

    Code:
    [COLOR="Red"][B]a div#links[/B][/COLOR]{
    
    padding-left:20px;
    }
    Wie kann ich den Zwischenabstand meiner Links bestimen?
    Mit padding-left stimmt ja dann der erste Link nicht, d.h. hat auch diesen Abstand vom div.

    Nun noch glaube ich eine eher lächerliche Frage, doch diese habe ich irgendwie nirgends gelesen: Wenn man auf diesen Links klickt so soll diese und diese Variable übergeben werden.


    Danke wapplegraph
     
    #1 wapplegraph, 18.11.06
    Zuletzt bearbeitet: 18.11.06
  2. Herr Sin

    Herr Sin Millets Schlotterapfel

    Dabei seit:
    05.01.04
    Beiträge:
    4.752
    Variable übergeben:
    Code:
    <a href="dahin.php?variable=4">Link</a>
     
  3. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Also wenns im eigenen Dokument ist so muss ich auch noch das Dokument angeben?

    Merci Jonas
     
  4. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Wie kann ich etwas z.B. ein Bild oben rechts in einer Ebene platzieren?
    mit padding-right:0px; padding-top:0px; geht es nicht.

    wapplegraph
     
  5. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Zunächst musst Du der Ebene Ausmaße zuweisen, damit die Kindobjekte innerhalb dieser Ebene auch wissen, was mit "links oben" oder "rechts unten" gemeint ist. Hast Du zum Beispiel eine große Fläche mit himmelblauem Hintergrund auf Deiner Seite, würde das mit CSS so formuliert:
    Code:
       body { text-align: center }
       div#grosse_flaeche {
            width: 800px;
            margin: 0 auto;
            text-align: left;
            background-color: #9cf;
       }
    
    Zunächst gebe ich dem Dokument (body) eine insgesamt zentrierte Ausrichtung. Das brauch ich, damit die himmelblaue Fläche auch im Internet Explorer mittig ausgerichtet ist.

    Dann wird die ein Div mit der Id »grosse_flaeche« angesprochen, welches 800 Pixel Breite hat, innen links ausgerichtet ist und, wie gesagt, einen himmelblauen Hintergrund hat. CSS-konform ist der Außenrand (margin) oben und unten 0 (beachte die Kurzschreibweise) sowie links und rechts automatisch, was »automatisch« dazu führt, dass diese Fläche in der Mitte der HTML-Seite liegt (horizontale Mitte).

    Wenn Du nun innerhalb dieser Spalte etwas links oben ablegen möchtest, also ein Bild zum Beispiel, nennst Du das Bild im Quelltext einfach zuerst.

    Oder Du richtest das Bild mit einer Positionierung dort aus.

    Oder Du gibst dem Bild die Flussanweisung, es solle links von anderen (Text-)Objekten schweben.

    Wenn Du es positionieren möchtest, kannst Du es so selektieren (achte auf die Reihenfolge der »Selektoren«):
    Code:
    ...
    div#grosse_flaeche img#dasbild {
        position: relative;
        left: 0;
        top: 0;
    }
    
    Das ist nur eine Möglichkeit von vielen. In diesen Beispielen verwende ich IDs, Du kannst aber, wenn Du die Stile wiederverwenden möchtest genausogut Klassen verwenden, da IDs an sich nur einmal vorkommen sollen, damit Sie zum Beispiel im DOM per JavaScript angesprochen werden können (getElementById()).
     
  6. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Im eigenen Dokument arbeitest Du in PHP vorzugsweise mit der superglobalen Variable »$_SERVER«. Hierbei handelt es sich um ein assoziatives Array (die Indizes sind Wörter und keine Zahlen), welches Dir immer zur Verfügung steht. Zum Beispiel enthält »$_SERVER['PHP_SELF']« immer den Pfad zur aktuellen Datei (also der Name der aktuellen Skript-Datei). Welche Überraschungen das Array $_SERVER für Dich bereit hält siehst Du entweder mit
    Code:
    phpinfo();
    
    oder, wenn's nicht so ganz den Rahmen spregen soll, mit einem einfachen Variablen-Dump:

    Code:
    echo "<pre>\n", print_r($_SERVER), "</pre>\n";
    
    Zusatz: Jetzt kannst Du den einen Link in das eigene Dokument zum Beispiel so formulieren:

    Code:
    <?
    
        printf("<a href=\"%s?nummer=5>Link</a>",
            $_SERVER['PHP_SELF']    // ersetzt %s);
    
    ?>
    
    Im selben Skript hast Du nun, einen Seitenaufruf später, den Wert $_GET['nummer'] mit 5 zur Verfügung.
     
  7. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Hallo möchte nochmal auf meine erste Frage zurückkommen. Geht das?

    Und habe ein blöderes Problem: ein div lässt sich nicht über ein Blid verschieben, obwohl der z-index grösser ist. Hilfe!

    wapplegraph
     
  8. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    1 hat sich erledigt!!
     
  9. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Noch ein Problem:

    Habe ein div, dies ist unter einem beweglichen div mit php Inhalt angeordnet. Es sollte immer einen Abstand von 30px haben, doch sobald ich den Inhalt der oberen Box wechsle, rutscht mein unteres dic plötzlich über das andere.

    Code:
    	<div id="bottom">	Server by <a href="http://www.nesto.ch" target="_blank">Nesto-Software AG </a><br />
    			Webmaster: <a href="mailto:joneichen@gmx.ch">Jonas Eichenberger</a>
    			&copy; Copyright 2006 by Nesto-Software AG, Wapplegraph <br />
    			Bilder &copy; by Nesto Software AG, Thomas &amp; Jonas Eichenberger<br />
    	</div>
    
    Code:
    				div.inhalt	{
    				
    				margin-top:70px;
    				margin-left:25%;
    				margin-right:25%;
    				margin-bottom:40px;
    				width:750px;
    				text-align:left;
    				z-index:4;
    				}
    				
    				
    				#bottom	{
    				margin-left:25%;
    				margin-right:25%;
    				margin-bottom:50px;
    				padding-top:20px;
    				border-top-color:#000000;
    				border-top-style:solid;
    				width:750px;
    				text-align:left;
    				z-index:3;
    				
    				}

    wapplegraph
     
  10. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Hmm. Screenshot?
     
  11. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
  12. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Beide Bereiche (DIVs) dürfen sich ja auch überlagern, da sie in unterschiedlichen Ebenen stattfinden (z-index). Nebenbei: wenn Du rechts und links einen gleichförmigen Abstand haben möchtest, kannst Du auch dem Bereich eine Breite angeben width: 75%; und rechter und linker Rand auf »automatisch« stellen margin: 0 auto (oben und unten: 0; rechts und links: auto).
     
  13. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Also es klappt trotz einem anderen z-index nicht!
     
  14. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Tscha,... Kannst Du die betreffende WebSite irgendwo veröffentlichen? Das müsste ich mir im Detail anschauen.
     
  15. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Ok habe es hochgeladen.

    Hier

    Mir ist aufgefallen:

    schreibe ich z.B. tr .blabla{}
    so klappt es, bei tr.blabla{} klappt es nicht.

    Bei einem anderen Dokument ist es gerade umgekehrt.

    wapplegraph

    PS. Das mit den Zeilen geht beim Safari nicht! Muss man auch schon für den Safari noch extra programmieren?
     
    #15 wapplegraph, 28.11.06
    Zuletzt bearbeitet: 29.11.06
  16. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Hallo

    Das Problem mit der überlager bzw. überspringen habe ich immer noch. Könnte mir nocheinmal jemand gute Ratschläge geben?
    Oben habt ihr den Link zur momenanen Seite.

    Das Problem mit der Zeile beim Safari habe ich gelöst. Habe da gemerkt, dass Safari nicht gerade unkeikel ist. o_O

    Nun noch eine dritte Frage zu einer PHP abfrage.

    Die Abfrage sollte heissen:

    Code:
    Wenn Variable section=movie übergeben wird so füge dies ein, ist diese Variable nicht übergeben, füge nichts ein, doch am Anfang wo garnichts übergeben ist füge wieder dies ein.
    Man kann ja nicht schreiben
    else {
    include movie.php
    }

    da ja sonst dies immer eingefügt wird und dies will ich ja nicht.
     
  17. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759
    Das stimmt nicht ganz, denn include und include_once verhalten sich nicht so, dass der Code immer eingefügt wird. Theoretisch kannst Du durchaus die Inklusion abhängig machen von einer Bedingung (nicht so bei require und require_once).

    Es ist nur ziemlich schwer wartbarer Code, den Du dann produzierst. Einfacher ist es, zu den einzelnen Ausgaben zum Beispiel eine Methode (function) zuzuordnen, so dass Du zunächst alle Deine Ausgabebibliotheken einfügt (include) und anschließend bei Bedarf aufrufst. So kann der Zend-Kern Deine Skripte auch ziemlich effizient kompilieren.
     
  18. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Huu

    Das ist für mich noch zu hoch, doch ich widme mich diesem dann sofort.

    Ohne dieses Filmchen, kann die Seite leben, mit dieser Überlagerung nicht.
    Wenn mir jemand bei dem helfen könnte, so würde ich die Seite soweit fertigstellen, und dann mich als Dessert dem Skript zuwenden.

    wapplegraph
     
  19. Hilarious

    Hilarious Gelbe Schleswiger Reinette

    Dabei seit:
    10.08.05
    Beiträge:
    1.759

    Ok, dann statt dessen ein Lösungsansatz zum obigen include-Problem. Du kannst, wenn Du's einfach halten möchtest einen »Wrapper« bauen, der die Inhalte je nach Anforderung zusammenstrickt:
    Code:
    <?php
        $Templates = array ('Start' => 'start.inc.php',
                                     'Produkte' => 'produkte.inc.php',
                                     'Kontakt' => 'kontaktformular.inc.php');
        // so kannst Du Aktionen mit Deinen Template-Dateien mappen
        
        // und jetzt gibst Du ein Menue aus, das kommt ja immer oben dran
        print('<ul id="menu">\n');
        foreach ($Templates as $schluessel => $dateiname) {
            printf ("<li><a href=\"%s?action=%s\">%s</a></li>\n", $_SERVER['PHP_SELF']
                                   , strtolower($schluessel)
                                   , $schluessel
                    );
        }
        printf('<ul>\n');
    
    
        // vermutlich wurde schon ein Menuelink angewaehlt, da schaun wir mal nach:
        if (!empty ($_GET['action'])) {
            $_template = $Templates[$_GET['action']];
            if (is_readable($Templates[$_GET['action']]) {
                include_once ('/pfad/zum/template/' . $_template);
            }
        } else {
            include_once ('/pfad/zum/standardtemplate.inc.php');
        }
    ?>
    
    (in der Kantine getippt und nicht getestet)

    Jetzt gibt es noch zu bedenken, dass die Dateien, die Du per Include in den ausführbaren Code hinzufügst, Datei-Endungen mit .php haben, damit nicht jemand den Dateinamen errät (zum Beispiel: 'dbconnect.inc'), und dann diese Datei einfach mal im Browser direkt adressiert. Lautet die Datei-Endung dann nicht auf '.php', erhält er den Quelltext angezeigt. Ist hier noch ein Datenbank-Passwort enthalten wird's schnell aufregend (und danan einsam).
     
  20. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Merci

    Du tippst da ja schnell solche komplexen Sachen merci.

    Wie kann ich - Werte verhindern, und position:absolute? D.h. es musst trotzdem eine überlagerung stattfinden.

    Ich habe eine Ebene mit einem Hintergrundbild, unter diese Ebene muss eine zweite Ebene, die aber etwa 50px oberhalb vom unteren Rand der oberen Ebene positioniert sein sollte.

    wapplegraph
     

Diese Seite empfehlen