CSS: p und ul/li in einer zeile

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • CSS: p und ul/li in einer zeile

    hi!

    habe probleme mit folgender anordnung:

    HTML:
    PHP-Code:
    <div>
        <
    ul id="foo">
            <
    li>item1</li>
            <
    li>item2</li>
        </
    ul>
        <
    p id="bar">Text</p>
    </
    div
    CSS:
    PHP-Code:
    div {
        
    width660px;
    }
    #foo {
        
    floatright;
    }
    #foo li {    
        
    displayinline;
        
    floatleft;
        
    width85px;
        
    text-aligncenter;
        
    background-color#ccc;
    }
    #bar {
        
    floatleft;

    ziel wäre eine darstellung wie die folgende:

    Text [SPACER] item1 item2

    also den paragraph "bar" linksbündig und die liste "foo" rechtsbündig und zwar alles in einer zeile nebeneinander innerhalb des DIVs.

    momentan scheitere ich daran, dass zwar die list-elemente nebeneinander aufscheinen, der text in "bar" aber unterhalb der liste ausgegeben wird.

    kann mir hier bitte jemand weiterhelfen?

    TIA

  • #2
    Re: CSS: p und ul/li in einer zeile

    Original geschrieben von php_rookie
    momentan scheitere ich daran, dass zwar die list-elemente nebeneinander aufscheinen, der text in "bar" aber unterhalb der liste ausgegeben wird.
    Das muss ja auch so sein, wenn P bei dir im Quellcode hinter der UL steht, und du beide floatest ...
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      schon klar, aber wie krieg ich P und UL/LI in eine zeile?

      Kommentar


      • #4
        Ich schrieb doch, dass bei dieser Verwendung von Float die Reihenfolge der Elemente im Quelltext falsch herum ist.

        Wenn du sagst, "ich kann nix sehen", und ich sage dir "du stehst ja auch mit dem Gesicht zur falschen Seite" - kommst du dann selber auf die Idee, dich mal umzudrehen, oder musst du erst wieder nachfragen "und was soll ich jetzt machen ...?"
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          die reihenfolge im quelltext ist AFAIK egal, solange man richtig floatet, sprich man kann entweder float:left durch float:right ersetzen vice versa, oder die reihenfolge im quelltext vertauschen (nicht empfehlenswert, da in dieser reihenfolge erwünscht, da die darstellung bei deaktiviertem CSS sonst darunter leidet). es möge sich jeder selbst ein urteil bilden.

          die varianten 1.1 und 1.2 bzw. 2.1 bzw. 2.2 erzeugen identische ausgaben....

          variante 1.1:
          PHP-Code:
          <html>
          <
          head>
          <
          title>test</title>
          <
          style type="text/css">
          div {
              
          width660px;
          }
          #foo {
              
          floatright;
          }
          #foo li {    
              
          displayinline;
              
          floatleft;
              
          width85px;
              
          text-aligncenter;
              
          background-color#ccc;
          }
          #bar {
              
          floatleft;
          }
          </
          style>
          </
          head>

          <
          body>
          <
          div>
              <
          ul id="foo">
                  <
          li>item1</li>
                  <
          li>item2</li>
              </
          ul>
              <
          p id="bar">Text</p>
          </
          div>
          </
          body>
          </
          html
          variante 1.2:
          PHP-Code:
          <html>
          <
          head>
          <
          title>test</title>
          <
          style type="text/css">
          div {
              
          width660px;
          }
          #foo {
              
          floatright;
          }
          #foo li {    
              
          displayinline;
              
          floatleft;
              
          width85px;
              
          text-aligncenter;
              
          background-color#ccc;
          }
          #bar {
              
          floatleft;
          }
          </
          style>
          </
          head>

          <
          body>
          <
          div>
              <
          p id="bar">Text</p>
              <
          ul id="foo">
                  <
          li>item1</li>
                  <
          li>item2</li>
              </
          ul>    
          </
          div>
          </
          body>
          </
          html
          variante 2.1:
          PHP-Code:
          <html>
          <
          head>
          <
          title>test</title>
          <
          style type="text/css">
          div {
              
          width660px;
          }
          #foo {
              
          floatleft;
          }
          #foo li {    
              
          displayinline;
              
          floatleft;
              
          width85px;
              
          text-aligncenter;
              
          background-color#ccc;
          }
          #bar {
              
          floatright;
          }
          </
          style>
          </
          head>

          <
          body>
          <
          div>
              <
          ul id="foo">
                  <
          li>item1</li>
                  <
          li>item2</li>
              </
          ul>
              <
          p id="bar">Text</p>
          </
          div>
          </
          body>
          </
          html
          variante 2.2:
          PHP-Code:
          <html>
          <
          head>
          <
          title>test</title>
          <
          style type="text/css">
          div {
              
          width660px;
          }
          #foo {
              
          floatleft;
          }
          #foo li {    
              
          displayinline;
              
          floatleft;
              
          width85px;
              
          text-aligncenter;
              
          background-color#ccc;
          }
          #bar {
              
          floatright;
          }
          </
          style>
          </
          head>

          <
          body>
          <
          div>
              <
          p id="bar">Text</p>
              <
          ul id="foo">
                  <
          li>item1</li>
                  <
          li>item2</li>
              </
          ul>    
          </
          div>
          </
          body>
          </
          html
          bin gerade draufgekommen, dass sich das problem von selbst gelöst hat. danke trotzdem.

          Kommentar


          • #6
            zu früh gefreut. das oben beschriebene problem tritt erst auf, wenn ich eine DL drum herum baue:
            Code:
            [b]
            <dl>
              <dt>test</dt>
              <dd>[/b]
                <div>
                  <ul id="foo">
                    <li>item1</li>
            	<li>item2</li>
                  </ul>
                  <p id="bar">Text</p>
                </div>[b]
              </dd>
            </dl>[/b]
            ohne fett hervorgehobene teile funktioniert es wie gewollt.

            liegt das auch an der falschen reihenfolge im quelltext?

            Kommentar


            • #7
              Original geschrieben von php_rookie
              die reihenfolge im quelltext ist AFAIK egal, solange man richtig floatet, sprich man kann entweder float:left durch float:right ersetzen vice versa, oder die reihenfolge im quelltext vertauschen
              Nein, egal ist die Reihenfolge nicht - je nachdem, wie du float anwendest, sind die Auswirkungen unterschiedlich.

              Floatest du das erste Element nach rechts, und das nachfolgende nach links - dann muss das nachfolgende in einer neuen "Zeile" dargestellt werden.


              Aber warum willst du denn überhaupt beide Elemente floaten?
              Es reicht doch vollkommen aus, wenn du das erste zu einer Seite floatest.


              das oben beschriebene problem tritt erst auf, wenn ich eine DL drum herum baue [...]
              liegt das auch an der falschen reihenfolge im quelltext?
              K.A. so auf Anhieb, da würde mich mal ein komplettes Online-Beispiel interessieren.
              Damit man auch sieht, ob dt/dd auch noch formatiert sind, oder ob du die Default-Formatierungen des Browsers bestehen lassen hast, etc.
              Zuletzt geändert von wahsaga; 09.05.2006, 13:06.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Nein, egal ist die Reihenfolge nicht - je nachdem, wie du float anwendest, sind die Auswirkungen unterschiedlich.
                statt die reihenfolge im quelltext umzudrehen, dreh ich lieber float um. das wollte ich oben damit sagen.

                mit einem online-beispiel kann ich im moment nicht dienen. vll. reicht auch folgende zusammenstellung:
                Code:
                <html>
                <head>
                <title>test</title>
                <style type="text/css">
                div {
                    width: 660px;
                }
                #foo {
                    float: right;
                }
                #foo li {    
                    display: inline;
                    float: left;
                    width: 85px;
                    text-align: center;
                    background-color: #ccc;
                }
                #bar {
                    float: left;
                }
                </style>
                </head>
                
                <body>
                [b]<dl>
                  <dt>test</dt>
                  <dd>[/b]
                    <div>
                      <ul id="foo">
                        <li>item1</li>
                	<li>item2</li>
                      </ul>
                      <p id="bar">Text</p>
                    </div>
                [b]  </dd>
                </dl>[/b]
                </body>
                </html>
                wie gesagt, ohne die fett markierten teile funktioniert es, ohne nicht.

                PS:
                Aber warum willst du denn überhaupt beide Elemente floaten?
                ich denke das wars. "bar" zu floaten war überflüssig. danke dir!

                Kommentar


                • #9
                  ich werd noch narrisch :-(

                  DT und DD hätte ich gerne nebeneinander. mit float: left; funktioniert es allerdings nicht (nimmt man es raus hat man zumindest eine brauchbare darstellung, nur halt nicht nebeneinander):
                  Code:
                  <html>
                  <head>
                  <title>test</title>
                  <style type="text/css">
                  ul, li {
                    list-style-type: none;
                    margin: 0;
                    padding: 0;
                  }
                  #wrapper {
                    width: 600px;
                  }
                  #posting {
                    background-color: #bbb;
                  }
                  #posting dt {
                    [b]float: left;[/b]
                    width: 150px;
                    background-color: #eee;
                  }
                  #posting dd {
                    width: 450px;
                    margin: 0;
                    background-color: #ddd;
                  }
                  #actions {
                    float: right;
                  }
                  #actions li {
                    float: left;
                    width: 85px;
                    text-align: center;
                    background-color: #ccc;
                    margin: 1px;
                  }
                  hr {
                    background-color: #aaa;
                    color: #999;
                    border: #999;
                    height: 1px;
                  }
                  </style>
                  </head>
                  
                  <body>
                  <div id="wrapper">
                    <dl id="posting">
                      <dt>
                        <ul>
                          <li>Nickname</li>
                          <li><a href="#">E-Mail</a></li>
                          <li>01.02.03 - 04:05</li>
                          <li>127.0.0.1</li>
                        </ul>
                      </dt>
                      <dd>
                        <ul id="actions">
                          <li><a href="#">editieren</a></li>
                          <li><a href="#">antworten</a></li>
                        </ul>
                        <p>Betreff</p>
                        <hr />
                        <p>Nachrichtentext<br />ueber<br />mehrere<br />Zeilen</p>
                      </dd>
                    </dl>
                  </div>
                  </body>
                  </html>
                  weiß hier noch jemand rat? ich wäre zu dank verbunden!

                  Kommentar


                  • #10
                    Im IE passt das DD bei der von dir angegebenen Breite nicht mehr neben das DT. Lass die Breitenangabe für DD doch mal ganz weg ...
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      danke, aber dann fließt der inhalt des DD um das DT herum, wie text um ein bild. gibt es eine möglichkeit das als "starren kasten" anzuzeigen? also dass der nachrichtentext schön in einer linie untereinander steht?

                      Kommentar


                      • #12
                        Original geschrieben von php_rookie
                        danke, aber dann fließt der inhalt des DD um das DT herum, wie text um ein bild.
                        Natürlich tut er das ... (Man, müssen wir jetzt jede grundlegende Eigenschaft des Verhaltens von float einzeln durchkauen ...?)

                        Wenn du das nicht willst, vergebe halt auch noch ein entsprechendes margin-left.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          super, danke!

                          Kommentar

                          Lädt...
                          X