Hallo
Dein Vorgehen ist nicht geeignet um float zu üben oder gar kennenzulernen. Aber Puzzle ist ein schönes Spiel. Also denn:
Grundsätzlich werden auch keine Dreiecke sondern Rechtecke gefloatet. Daran ändert sich auch nichts wenn du die Größe der Rechtecke auf 0 setzt und teilweise transparente Rahmen erstellst.
Damit irritierst du nur dich selbst. Darauf deutet zumindest hin das du von Dreiecken schreibst, obwohl es sich um Rechtecke (beziehungsweise in deinem Beispiel um spezielle Rechtecke: Quadrate) handelt.
Um das Verhalten der Rechtecke zu verstehen musst du dich mit dem Dokumentenfluss beschäftigen. Also wie sich Elemente verhalten, die sich im Dokumentenfluss befinden und solche, welche sich durch float nicht im Dokumentenfluss befinden. Bei deinen Spielereien natürlich auch noch, wie sich deren Rahmen verhalten. Die können sich nämlich durchaus vom Inhalt des Elements entfernen.
Suchmaschine: float dokumentenfluss
Erschwerend kommt hinzu, dass die Browser solche eher sinnfreien Anordnungen teilweise auch noch unterschiedlich anzeigen. Das wirst du merken, wenn du dich etwas intensiver mit float und bei dem Verhalten von border beschäftigst.
Mit dem Wissen sollte dir dann auch bewußt werden, dass bei float die Reihenfolge der Elemente im Quelltext entscheidend ist. Die kann durch float nicht beliebig verändert werden.
Deine gesuchte Lösung sollte mit folgendem HTML-Quelltext
<body>
<div id="box">
<div id="submenu1"></div>
<div id="submenu2"></div>
<div id="submenu4"></div>
<div id="submenu3"></div>
</div>
</body>
und folgendem CSS
#box {
width: 800px;
height: 500px;
background-color: #2EFEF7;
}
#box>div {
width: 0;
height: 0;
border-style: solid;
}
#submenu1 {
border-width: 200px 0 0 200px;
border-color: transparent transparent transparent blue;
/*float: left;*/
}
#submenu2 {
border-width: 200px 200px 0 0;
border-color: red transparent transparent transparent;
float: left;
}
#submenu3 {
border-width: 0 0 200px 200px;
border-color: transparent transparent orange transparent;
/*float: left;*/
}
#submenu4 {
border-width: 200px 0 0 200px;
border-color: transparent transparent transparent lime;
float: left;
}
Alles anzeigen
erreicht werden.
Gruss
MrMurphy