Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

float macht nicht das was ich will

Diskussion: float macht nicht das was ich will im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Hi! Browser FF 3.6.10 HTML 4 CSS 2 Nachfolgende Seite gibt eine Tabelle aus. Nun wollte ich das letzte ...

Antwort
Alt 24.09.10, 16:35   #1 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard float macht nicht das was ich will

Anzeige

Hi!
Browser FF 3.6.10
HTML 4
CSS 2


Nachfolgende Seite gibt eine Tabelle aus.
Nun wollte ich das letzte Element in der letzten Zeile mittels style="float:right"
an den rechten Tabellenrand schieben, um einen schönen Abschluss zu erhalten.

Das passiert auch aber im zuge der Anweisung wird das verschobene Element um ein paar px nach oben gezogen, was im Endeffekt schlecht aussieht.
Definiert hab ich das nicht, kann eigentlich auch ohne das style="float:right" mit dem
Resultat leben, aber ich wüsste schon gerne wiso das Element nach oben gezogen wird.
Mfg


sw33t

HTMLCODE   

HTML-Code:
<div class="table">
    <div class="column_plain">
        <div class="cell_plain">
            <div class="stretchingmenue">
                content
            </div>
        </div>    
        <div class="cell_plain">
            <div class="stretchingmenue">
                content
            </div>
        </div>
    </div>
    <div class="column_plain">
        <div class="cell_plain">
            <div class="stretchingmenue">
                content
            </div>
        </div>
        <div class="cell_plain">
            <div class="stretchingmenue">
                content
            </div>
        </div>
    </div>
    <div class="column_plain">
        <div class="cell_plain">
            <div class="stretchingmenue">
                content
            </div>
        </div>
        <div class="cell_plain">
            <div class="stretchingmenue">
                content
            </div>
        </div>
    </div>
    <div class="column_plain">
        <div class="cell_plain">
            <div class="stretchingmenue">
                content
            </div>
        </div>
        <div class="cell_plain">
            <div class="stretchingmenue">
                content
            </div>
        </div>
    </div>
</div> 

CSS-Code   

Code:
.cell_plain{
  display:table-cell;
}

.column_plain
{
    display:table-row;
}


.table
{
    display:table;
    width:40%;
}
.stretchingmenue{
    margin-top:0.25em;
    margin-bottom:0.25em;
}
  Mit Zitat antworten
Alt 24.09.10, 16:55   #2 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

erstmal 'ne Gegenfrage:
wenn du tatsächlich eine Tabelle darstellen willst, wieso nutzt du dann nicht 'nen <table>?

Für Designs soll man auf tables verzichten und mit divs arbeiten, das ist ja alles richtig. Aber für eine tatsächliche tabellarische Auflistung von irgendwas, ist es nicht verboten, weiterhin auch eine Tabelle für einzusetzen...
beavisbee ist gerade online   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 24.09.10, 17:11   #3 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard

1.Pure Faulheit.
Ich muss weniger HTML-Code schreiben, und kann CSS-Attribute in die Klassen schreiben welche die einzelnen Tabellenteile repräsentieren,
und da ich die CSS-Klassen der Tabelle auch anderweitig verwende ist das für mich recht praktisch.

2.Konsistenz
Ich verwende für mein komplettes Design Css-Elemente und dann <table> an dieser Stelle zu verwenden ist iw inkonsisten.
So erstelle ich auch diverse Menues auf diese Weise.
  Mit Zitat antworten
Alt 24.09.10, 17:32   #4 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

hast du schon mal versucht, jedem einzelnen DIV eine andere border und background-color zu geben, um dann genau zu sehen, welches DIV in welcher float-Variante wo hin gezogen wird?
beavisbee ist gerade online   Mit Zitat antworten
Alt 24.09.10, 17:32   #5 (permalink)
 
Benutzerbild von metax.
 
Registriert seit: 22.01.07
metax. Leistung: 8086
metax. eine Nachricht über ICQ schicken
Likes: 10
Standard

Echte HTML-Tabellen mit anderen Elementen zu simulieren ist mindestens genauso falsch, wie HTML-Layout mit Tabellen zu regeln.
Der Browser kann echte Tabellen nämlich besser als Tabellen darstellen (z.B. was so Geschichten angeht, wie Ausdrucken über mehrere Seiten, oder ähnliches).
Ganz zu schweigen davon, dass du mit den Tabellen-Display-Styles in einigen Browsern auf die Nase fällst.

Was das Float angeht: Ich bin mir nicht sicher, ob du Float mit Tabellenlayout-gebundenen Elementen kombinieren kannst.
Die Tabelle (Display: Table-cell) bestimmt ja schon die Größe und Position des Elemente, da ist ein Float ja eine konkurrierende Anweisung.
Wenn du das ganze mal irgendwo hochlädst, kann ich vielleicht mehr sagen. Aus deiner Beschreibung werde ich nicht so ganz schlau und um das jetzt selber zusammenzubasteln fehlt mir leider die Zeit ...
__________________
Wenn keiner zuschaut, teile ich heimlich durch Null!
Meine Homepage: Planet Metax | meine Bilder: DeviantArt | Twitter
metax. ist offline   Mit Zitat antworten
Alt 24.09.10, 23:06   #6 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard

Ich hab die htmldatei mal angehangen.
Es ist keine Zelle dafür verantwortlich, sondern die Zeile von der hochgezogenen Zelle wird dicker und der Inhalt wird versetzt angeordnet .

Das float und display:table-xxxxx wiedersprüchliche anweisungen sind daran hab ich gar nicht gedacht.

mfg

sw33t
Angehängte Dateien
Dateityp: txt test.txt (1,3 KB, 7x aufgerufen)
  Mit Zitat antworten
Alt 24.09.10, 23:09   #7 (permalink)
 
Benutzerbild von overflow
 
Registriert seit: 17.01.04
overflow Leistung: Z3
overflow eine Nachricht über ICQ schicken overflow eine Nachricht über MSN schicken
Likes: 17
Standard

html   
<div class="table">
<div class="column_plain">
<div class="cell_plain">
<div class="stretchingmenue">
content
</div>
</div>
<div class="cell_plain">
<div class="stretchingmenue">
content
</div>
</div>
</div>
<div class="column_plain">
<div class="cell_plain">
<div class="stretchingmenue">
content
</div>
</div>
<div class="cell_plain">
<div class="stretchingmenue">
content
</div>
</div>
</div>
<div class="column_plain">
<div class="cell_plain">
<div class="stretchingmenue">
content
</div>
</div>
<div class="cell_plain">
<div class="stretchingmenue">
content
</div>
</div>
</div>
<div class="column_plain">
<div class="cell_plain" id="fl">
<div class="stretchingmenue">
content
</div>
</div>
<div class="cell_plain">
<div class="stretchingmenue">
<div id="fr">content</div>
<div id="cf"></div>
</div>
</div>
</div>
</div>
css   
GNU nano 2.2.4 File: basic.css

.cell_plain{
display:table-cell;
}

.column_plain
{
display:table-row;
}


.table
{
display:table;
width:40%;
}
.stretchingmenue{
margin-top:0.25em;
margin-bottom:0.25em;
}

#fr{
float: right;
}

#cf{clear: both;
}

#fl{float: left;}


Meinst du das so ?
Hab dich auch nicht ganz verstanden
overflow ist offline   Mit Zitat antworten
Alt 26.09.10, 22:45   #8 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard

Nein, sowas meine ich leider auch nicht.
Werd mein Design dann wohl komplett auf tables umstellen müssen.

Aber wiso dieser komische Seiteneffekt zustande kommt interessiert mich schon noch.
mfg

sw33t
  Mit Zitat antworten
Alt 27.09.10, 07:48   #9 (permalink)
Member of Honour
 
Benutzerbild von beavisbee
 
Registriert seit: 22.02.07
beavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium IIIbeavisbee Leistung: Pentium III
beavisbee eine Nachricht über ICQ schicken
Likes: 77
Standard

Zitat:
Zitat von sw33tlull4by Beitrag anzeigen
Werd mein Design dann wohl komplett auf tables umstellen müssen.
Wieso wehrst du dich dagegen, in deinem DIV-Design lediglich die Tabelle als Table darzustellen? Du willst jetzt nicht wirklich das komplette Layout auf Tabelle machen, nur dass du keinen table im div-layout hast???


Zitat:
Zitat von sw33tlull4by Beitrag anzeigen
Aber wiso dieser komische Seiteneffekt zustande kommt interessiert mich schon noch.
hast du mal meinen Tipp probiert, jedes DIV anders einzufärben und Rahmen zu geben, um zu sehen, was genau mit den DIVs passiert, wenn du sie floatest?

edit:
oder mal doch einfach mal auf, wie es am Ende aussehen soll, auf dass wir erstmal besser verstehen, was genau du überhaupt willst
beavisbee ist gerade online   Mit Zitat antworten
Alt 27.09.10, 23:24   #10 (permalink)
 
Benutzerbild von overflow
 
Registriert seit: 17.01.04
overflow Leistung: Z3
overflow eine Nachricht über ICQ schicken overflow eine Nachricht über MSN schicken
Likes: 17
Standard

Eine Zeichnung wäre hilfreich
overflow ist offline   Mit Zitat antworten
Alt 30.09.10, 09:58   #11 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard

Hi sorry das es solange gedauert hat.
Test1 ist wie es aussehen sollte.
test2 ist wie es aussieht.

mfg

sw33t
Angehängte Dateien
Dateityp: txt test1.txt (1,4 KB, 9x aufgerufen)
Dateityp: txt test2.txt (1,4 KB, 3x aufgerufen)
  Mit Zitat antworten
Alt 30.09.10, 11:37   #12 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Mal eine blöde Frage, warum benutzt dann nicht einfach text-align wie in deinem Beispiel? Bei einer normalen Table würde man es auch so machen.

Fallst Du aber das ganze Element aus welchem Grund auch immer an der rechten Seite haben möchtest, müsstest Du den linken Zellen Inhalt left-Floaten und den rechten right-Floaten. Da haste aber dann wieder das Problem, wenn das Element größer wird, der Inhalt trotzdem noch links ausgerichtet wird, was bedeutet, dass wenn Dein Element so groß wie die Zelle wird, der Inhalt wieder Links ausgerichtet wird. Was natürlich wiederum dazu führt, dass Du das selbe Problem wieder hast.
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 04.10.10, 16:59   #13 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard

Es geht mir nicht (mehr) um float:right per se sondern um diesen komischen seiteneffekt.
Weil ich es interessant finde das da etwas passiert ist was eigentlich nicht definiert ist, und wiso das so ist.
mfg

sw33t
  Mit Zitat antworten
Alt 05.10.10, 09:04   #14 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 2
Standard

Ok, mach mal folgendes, gib der column_plain und der cell_plain ein float: left;, der cell_plain noch z.B. eine width:200px; und Deiner letzten stretchingmenue das style="float: right" und schau was passiert. Dann kommste bestimmt auch drauf, warum der einzelne Layer sich mit dem float:right so verhält wie er sich verhält. Die zugrunde liegenden Elemente sind immer noch Div-Elemente (Block-Elemente). Sobald Du die Elemente floatest, funktionieren auch css-table-styles, wie z.B. border-spacing.
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Alt 07.10.10, 00:15   #15 (permalink)
sw33tlull4by
Guest
 
Likes:
Standard

vielen dank für die Erklärung.
  Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » CSS float macht nicht das was ich will
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61