+ Antworten
Seite 2 von 4 ErsteErste 1 2 3 4 LetzteLetzte
Ergebnis 11 bis 20 von 39

Thema: Frage zu Equal Heights Grids und Linearization

  1. #11
    Neuer Benutzer
    Registriert seit
    10.02.2012
    Beiträge
    9
    Hallo Tinchen,

    ich hatte dasselbe Problem. Sobald man bei Grids ym-equalize und ym-linearize-level-1/2 gleichzeitig verwendet funktioniert die Linearisierung nicht mehr richtig.
    Wenn ich mir den Verlauf hier ansehe, dann müsste das hier eigentlich funktioniere:

    HTML-Code:
    <div class="ym-grid ym-equalize">
    	<div class="ym-grid linearize-level-1 ym-equalize">
    		<div class="ym-g38 ym-gl">
    			<div class="ym-gbox-left"></div>
    		</div>
    		<div class="ym-g62 ym-gr">
    			<div class="ym-gbox-right"></div>
    		</div>
    	</div>
    </div>
    Allerdings funktioniert das bei mir genauso wenig und mir ist auch nicht ganz klar, warum das so funktionieren sollte. Wenn ich mir Dirks Kommentar durchlese, bin ich mir auch nicht so sicher, ob er das bestätigt, da er nur von der Linearisierung spricht.
    Klappt das bei dir so? Ich habe nämlich noch ein wenig nachgeforscht und herausgefunden, dass bei equalize die Klassen ym-gbox-left und ym-gbox-right ein negatives Margin bekommen, das wohl für die Fehldarstellung bei gleichzeitiger Linearisierung verantwortlich ist.
    Sobald ich im Linearisierungs-CSS (z.B. yaml/screen/screen-FULLPAGE-layout.css) folgenden Part um ein margin-bottom: 0; erweitere funktioniert es nämlich:

    HTML-Code:
    .linearize-level-1 > [class*="ym-g"] > [class*="ym-gbox"],
    .linearize-level-1 > [class*="ym-col"] > [class*="ym-cbox"] {
    	overflow: hidden; /* optional for containing floats */
    	padding: 0;
    	margin-bottom: 0; /* ?? behebt Fehler bei Verwendung von equalize + linearize ?? */
    }
    Ich hoffe nur, dass damit jetzt auch alles andere noch so funktioniert wie vorher :-)
    Jedenfalls hat das mein Problem wunderbar gelöst.

    Gruß Andi

  2. #12
    YAML Developer Avatar von djesse
    Registriert seit
    22.11.2005
    Beiträge
    2.891
    @andik
    Entferne den äußersten Container, der ist nämlich doppelt und gehört dort nicht hin. Schau Dir die Doku an, speziell die Quelltextbeispiele zu Equalize und der Linearisierung. Für beide Funktionen ist kein zusätzlicher Markup nötig, es wird lediglich eine Klasse zu dem Grid-Container hinzugefügt.

    Dirk
    Keine Supportanfragen per PN, Fragen bitte nur im Forum stellen!
    • "Yet Another Multicolumn Layout" ist ein modulares CSS Framework zur Erstellung wirklich flexibler, zugänglicher und responsiver Websites.
    • "Thinkin' Tags" Rapid Prototyping on a production-ready code basis with YAML 4
    • "YAML Builder" A tool for visual layout development of YAML based CSS layouts.
    • "YAML Debug" an assistive code diagnostic tool for web developers.

  3. #13
    Benutzer
    Registriert seit
    01.02.2012
    Beiträge
    41
    Moin :)

    @andik: ja, ich hab's jetzt genau so wie du und nach Dirks letzter Antwort hier hab ich den äußeren Container auch noch weggelassen (das war genau der, bei dem ich mir unsicher war, ob der da so hingehört...).

    Funktioniert einwandfrei im IE 9 und im aktuellen Firefox! :) Weitere Browser hab ich noch nicht getestet... Im Firefox kann man mit Firebug ganz prima die Boxen und deren Verschachtelung sehen. Jetzt sieht's irgendwie besser aus :D

    @Dirk:
    Danke nochmal für den Nachtrag. Ich denke, jetzt passt's und so langsam verstehe ich immer mehr, wenn auch in ganz kleinen Schritten... Aber es wird - dank Eurer Hilfe hier!

  4. #14
    Erfahrener Benutzer
    Registriert seit
    09.01.2007
    Beiträge
    861
    Hallo an alle in der Runde,

    wollte schon heute früh einen neuen Beitrag schreiben, inzwischen hat es hier bereits eine lebhafte Diskussion gegeben. Meinen ursprünglichen Beitrag habe ich nunmehr etwas umformuliert.

    Tinchen stellte am 1.2. 2012 folgende Frage:
    Ich experimentiere gerade mit dem neuen YAML4 herum (das ich übrigens ganz großartig finde) und bekomme es irgendwie nicht hin, die Equal Heights Grids-Boxen auf gleiche Höhe zu bringen und gleichzeitig zu linearisieren bei verkleinertem Browserfenster.
    @ Tinchen Du hast Dich am 3.2. 2012 über Deine Lösung gefreut, ich habe inzwischen vermutet, dass Du Dich zu früh gefreut hast.

    Ich habe bisher keine Lösung gefunden. Das Problem kommt mir fast vor wie die Quadratur des Kreises

    Im Beispiel http://www.yaml.de/demos/flexible-grid.html habe ich nach den ersten drei Grids
    Deinen Code (siehe Beitrag vom 3.2.2012) eingesetzt (das zweite div - <div class="ym-grid ym-equalize"> gibt es in meinem Beispiel nicht, es ist überflüssig, was heute auch bestätigt wurde).

    Ich habe verschiedene Varianten getestet:

    1. Variante Equal Height Boxen - <div class="ym-grid ym-equalize ">
    Die gleich hohen Boxen stehen nebeneinander, auch bei Viewportgröße 480x320

    2. Linearisierung der Boxen - <div class="ym-grid linearize-level-2 ">
    Bei Viewportgröße 480x320 stehen die drei Boxen untereinander.

    3. Equal Height Boxen und Linearisierung – <div class="ym-grid ym-equalize linearize-level-2 >
    Die gleich hohen Boxen stehen nebeneinander, auch bei Viewportgröße 480x320; sie werden nicht linearisiert (auch nicht bei level-1).

    Mein derzeitiger Erkenntnisstand:
    Entweder Equal Height Grids oder Linearisierung!
    Beides zusammen funktioniert in meiner dritten Testvariante nicht.

    Warum funktioniert das nicht? Mein erster Gedanke war: könnte das mit Alex Robinson’s Equal Height technique zusammen hängen?

    @ andik Du bist auf das gleiche Problem gestoßen:

    Sobald man bei Grids ym-equalize und ym-linearize-level-1/2 gleichzeitig verwendet funktioniert die Linearisierung nicht mehr richtig.
    Du hast auch nach Ursachen geforscht:
    die negativen margins sind nicht die Ursache. Aber der nachfolgende Text ist interessant:
    Sobald ich im Linearisierungs-CSS (z.B. yaml/screen/screen-FULLPAGE-layout.css) folgenden Part um ein margin-bottom: 0; erweitere funktioniert es nämlich:
    HTML-Code:
    .linearize-level-1 > [class*="ym-g"] > [class*="ym-gbox"],
    .linearize-level-1 > [class*="ym-col"] > [class*="ym-cbox"] {
    overflow: hidden; /* optional for containing floats */
    padding: 0;
    margin-bottom: 0; /* ?? behebt Fehler bei Verwendung von equalize + linearize ?
    Interessant ist für mich, dass Du durch margin-bottom der Fehler bei gleichzeitiger Verwendung von equalize und linearize behoben hast.
    Das bestätigt meine Vermutung, dass Alex Robinson’s Equal Height technique die Linearisierung der Grid-Boxen eventuell verhindert.

    Bestätigt wird meine Auffassung auch, wenn ich mir den im Quellcode für die horizontale Navigation auf der Startseite vom yaml.de ansehe; dazu weiter unter ...

    @ Dirk Ich habe mich in YAML4 umgesehen und habe in der Doku und in den Beispielen keine Lösung für die von Tinchen gestellte Frage gefunden.

    In den YAML4-Beispielen
    http://www.yaml.de/demos/flexible-grid.html
    und
    www.yaml.de/demos/flexible-grid.html
    sind die Grid-Boxen gleich hoch, sodass die Klasse .ym-equalize nicht benötigt wird und nur die Klasse .linearize-level 1 oder .linearize-level-2 eingesetzt wird.

    Für das Docu-Beispiel Equal Heights Grids wird nur die Klasse .ym-equalize verwendet.
    Für diese zwei Grids wird keine spezielle Klasse .linearize-level-1 oder level 2 definiert.
    Die gesamte Seite http://www.yaml.de/docs/index.html wird bei kleineren Viewports linearisiert; die zwei hübsch gestylten Grid-Boxen werden nebeneinander dargestellt - logisch, für diese Boxen wurde keine spezielle Klasse .linearize-level 2 oder level 1 definiert.

    Ich habe allerdings ein Beispiel gefunden, wo sowohl ym-equalize als auch linearize-level - 2 eingesetzt werden: oben auf der Startseite http://www.yaml.de/ bei der Formatierung der horizontalen Navigation:
    <ul class="ym-grid ym-equalize linearize-level-2">
    <li class=“ym-g20 ym-gl“ <a href=“….>…..</a></li>
    ….
    </ul>
    Der Knackpunkt ist hier:
    Es gibt keine ym.gbox!

    Somit gibt es kein padding-bottom: 10000px und kein margin-bottom: -10000px. Mit anderen Worten: Alex Robinson's Equal Height technique kommt nicht zum Einsatz!
    Vermutlich funktioniert deshalb das Beispiel wunschgemäss:
    Die Menü-Tabs mit unterschiedlich viel Inhalt sind gleich hoch, sie stehen zunächst nebeneinander, bei verkleinertem Viewport werden sie linearisiert.

    Meine (derzeitige) Meinung:

    Ein Webseitenersteller sollte sich entscheiden:
    Entweder gleich hohe Boxen oder Linearisierung.

    Ich würde mich für die Linearisierung entscheiden – damit die Webseiten auch bei kleineren Viewportgröße (480x320) ohne horizontalen Scrollbalken lesbar sind. Dann muss man halt in Kauf nehmen, dass die Grid-Boxen nicht gleich hoch sind - das lässt sich oft auch kaschieren und bei verkleinerten Viewports fällt das ohnehin nicht auf.

    Es tut mir leid, ich habe etwas viel geschrieben, aber das Thema ist auch wirklich kompliziert - ich hoffe, dass ich mich nicht auf dem Holzweg befinde. Ich hoffe auch, dass ich mich beim Schreiben nicht verheddert habe

    Ich bedanke mich bei Tinchen, andik und bei Dirk Jesse für die heutigen Beiträge und wünsche Euch allen ein gutes Wochenende.

    Beste Grüße
    makcie
    Geändert von makcie (11.02.2012 um 17:03 Uhr)

  5. #15
    Neuer Benutzer
    Registriert seit
    10.02.2012
    Beiträge
    9
    Hallo zusammen,

    zuerst mal an Dirk, vielen Dank für Deine Antwort. Der von mir gepostet HTML-Code war nur ein Beispiel, was anhand des bisherigen Verlaufs und nach Aussage von Tinchen hätte funktionieren sollen. Dass die doppelte Verschachtelung keinen Vorteil bringt hatte ich mir schon gedacht und in meinem Code verwende ich nur <div class="ym-grid linearize-level-1 ym-equalize">[...]</div> als umschließenden Container. Tinchen hat bei sich den zusätzlichen Container mittlerweile ja auch weggelassen :-)

    Dass der Code trotzdem nicht funktioniert bei gleichzeitiger Anwendung hat makcie jetzt nochmal sehr schön beschrieben. Trotzdem finde ich meine "Lösung" eigentlich ganz gut und nach dem, was Du schreibst, ist ja genau das negative Margin der Knackpunkt. Es ist ja auch so, dass eine Equalisierung in der linearisierten Ansicht keinen Sinn mehr macht. Daher sollte es auch nichts ausmachen, wenn man das CSS, das zur Equalisierung führt innerhalb der Linearisierung wieder aufhebt (dieses CSS wird ja nur bei verkleinertem Viewport geladen).

    Mittlerweile habe ich das CSS auch noch ein wenig optimiert, sodass es ausschließlich bei equalize + linearize angewandt wird:
    HTML-Code:
    .linearize-level-1.ym-equalize > [class*="ym-g"] > [class*="ym-gbox"],
    .linearize-level-1.ym-equalize > [class*="ym-col"] > [class*="ym-cbox"] {
    	margin-bottom: 0;
    }
    @makcie: Oder spricht von Deiner Seite etwas gegen das Zurücksetzen des negativen margin-bottom, welches ja die fehlerhafte Darstellung bei der Linearisierung verursacht?

    Viele Grüße an alle,
    Andi

  6. #16
    Neuer Benutzer
    Registriert seit
    10.02.2012
    Beiträge
    9
    Noch eine Bemerkung zum CSS aus dem vorherigen Beitrag (#15), dieses muss zusätzlich in den Bereich zur Linearisierung dazu und ersetzt nicht das ursprünlich von mir gepostete CSS!

  7. #17
    Erfahrener Benutzer
    Registriert seit
    09.01.2007
    Beiträge
    861
    Nachtrag: ich hatte gestern (am 12.2.2012) geschrieben:

    Meine (derzeitige) Meinung:
    Webseitenersteller sollten sich entscheiden:
    Entweder gleich hohe Boxen oder Linearisierung.
    Ich würde mich für die Linearisierung entscheiden….
    Ich habe über Nacht meine Meinung geändert!

    Diese Formulierung habe ich nicht richtig durchdacht, sie ist falsch.
    Equal Height Grids werden immer nebeneinander positioniert, auch
    bei verkleinertem Viewport, dort werden die Boxen schmaler.

    Bei der Entscheidung, ob man gleich hohe Grid-Boxen linearisiert, sollte man das jeweiligen Screen-Design berücksichtigen. Bei den so hübsch gestylten zwei Equal Height Grids in der Doku würde ich mich nicht für eine Linearisierung entscheiden.
    Auch in meinem Testbeispiel, welches auf dem Quellcode und dem CSS-Code von Tinchen basiert, würde ich mich für gleich hohe Boxen und gegen die Linearisierung entscheiden, damit die drei hübsch gestylten Boxen auch auf größeren Bildschirmen als gleich hohe Boxen dargestellt werden.

    Ich gebe auch Andy zu bedenken, ob in seinem Beispiel wirklich eine Linearisierung der zwei gleich hohen Grid-Boxen erzwungen werden soll.

    Wenn Grid-Boxen auch ohne „Equalisierung“, also ohne .ym-equalize, gleich hoch sind, ist (oft ) eine Linearisierung zweckmäßig. Das kann man sehr schön nachvollziehen, wenn man sich die Startseite yaml.de ansieht.

    Gruß zum Sonntag
    makcie

  8. #18
    Neuer Benutzer
    Registriert seit
    10.02.2012
    Beiträge
    9
    Hi,

    irgendwo stimmt das natürlich, das hatte ich gar nicht bedacht... In meinem Layout verwende ich das Grid-Element für die ganze Breite und ym-equalize macht mir einfach einen schönen Trennstrich zwischen die beiden "Spalten". Insofern ist eine Linearisierung bei verkleinertem Viewport auf jeden Fall erwünscht und sinnvoll. In dem Fall positioniere ich die Trennlinie auch horizontal statt vertikal.
    Aber es ist richtig, je nach Element ist eine Linearisierung vllt. gar nicht erwünscht, aber dann muss man die Klasse dafür ja nicht hinzufügen? Und falls man es doch tut ist es wohl erwünscht, und in dem Fall sollte es eigentlich auch wie gedacht funktionieren.

    Gruß Andi

  9. #19
    Erfahrener Benutzer
    Registriert seit
    09.01.2007
    Beiträge
    861
    Noch ein Nachtrag:

    Gleich hohe Grid-Boxen erstellen und zu gestalten ist relativ leicht.

    Schwieriger ist die Arbeit mit dem neuen Modul Progressive Linearization. Hinweise dazu gibt es in der Doku unter „Responsive Grids“ und „Responsive Columns“.

    In den Demo-Beispielen http://www.yaml.de/demos/flexible-grid.html und http://www.yaml.de/demos/flexible-columns.html wird das Modul Progressive Linearization für die Linearisierung im Grid- und im Spaltenlayout eingesetzt.

    Es gibt keine generelle Regel für die Verwendung des Moduls Progressive Linearization.
    Jeder Webseitenersteller muss bei jedem neuen Projekt unter Berücksichtigung seines jeweiligen Screen-Design entscheiden, wo er im HTML-Quelltext die Markierungen für die Linearisierung setzt. Das sollte man sich in den zwei Demo-Beispielen in aller Ruhe man ansehen, um ein Gespür für den Einsatz dieses Modul zu bekommen.
    Beste Grüße
    makcie

  10. #20
    Benutzer
    Registriert seit
    01.02.2012
    Beiträge
    41
    Hi @all :)

    Danke für Eure Ausführungen! Ich muss gestehen, dass ich mich noch nicht sooo intensiv damit beschäftigt habe, dass ich das jetzt schon alles nachvollziehen könnte, aber ich wollte eigentlich auch im Moment an dieser Stelle nur noch mal einbringen, dass es bei mir weiterhin funktioniert mit linearize und equal heights zugleich (auch ohne den äußeren Container, wie schon gesagt.). Ich hab getestet im IE 9 und aktuellen Firefox. 3 Boxen nebeneinander mit hellgrauem, gleich langen Hintergrund unabhängig von der jeweiligen Textlänge in den Boxen. Schiebe ich das Browserfenster komplett zusammen, stehen die Boxen ganz brav untereinander :)

    Hier das HTML, so wie ich es jetzt habe:

    Code:
    <div class="ym-wrapper">
    
     <div class=ym-wbox>
        
      <header>
          <h1>Header</h1>
      </header>
    
       <nav id="nav">
        <div class="ym-hlist">
    			<ul>
    				<li class="active"><strong>Home</strong></li>
    				<li><a href="#">Link 1</a></li>
    				<li><a href="#">Link 2</a></li>
            <li><a href="#">Link 3</a></li>      
    			</ul>
    		</div>
       </nav>
    
      <div class=ym-grid>
    	
       <div id="main">              
     		
            <h3>Seitenüberschrift</h3>
    
             <div class="ym-grid linearize-level-1 ym-equalize grid-equalheights">
    					<div class="ym-g33 ym-gl">             
    						<div class="ym-gbox-left">       
                   <h6 class="rundblau">Überschrift linke Box</h6>
                   <p>  
                     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
                     eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut 
                     enim ad minim veniam, quis nostrud exercitation ullamco laboris 
                     nisi ut aliquip.
                   </p>
                 </div>
    					</div>
         
    					<div class="ym-g33 ym-gl">
    			      <div class="ym-gbox">      
                   <h6 class="rundgelb">Überschrift mittlere Box</h6>
                   <p>  
                     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
                     eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut 
                     enim ad minim veniam, quis nostrud exercitation ullamco laboris 
                     nisi ut aliquip.
                     Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
                     eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut 
                     enim ad minim veniam, quis nostrud exercitation ullamco laboris 
                     nisi ut aliquip.
                   </p>   
                </div>           
    					</div>
    
    					<div class="ym-g33 ym-gr">
    			      <div class="ym-gbox-right">      
                   <h6 class="rundblau">Überschrift rechte Box</h6>
                     <p>
                      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do 
                      eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut 
                      enim ad minim veniam, quis nostrud exercitation ullamco laboris 
                      nisi ut aliquip.
                    </p>
                </div>           
    					</div>               
             </div>   
    
              
       </div>      <!-- Ende main -->
      </div>       <!-- Ende ym-grid -->
      
      <footer>
      	<div class="ym-wbox">
      		<p>
            Footer
          </p>
      	</div>
      </footer>
    
     </div>  <!-- Ende ym-wbox -->
    
    </div>        <!-- Ende ym-wrapper -->
    Die Klasse "grid-equalheights" ist die aus der Demo (heißt dort grid-demo3). Ich hab daran nichts verändert außer Name und Farben :)

    Im IE8 wird hingegen nichts linearisiert. Die Boxen bleiben nebeneinander stehen und bei extrem schmalen Browserfenster läuft dann halt der Text ineinander. Nun ja, damit kann ich persönlich leben, weil ich denke, dass niemand das Browserfenster zum Surfen soooo schmal zieht. Aber ich bin nach wie vor unsicher, ob das so im Sinne des Erfinders ist, wie ich's gemacht hab.

    Kann leider noch keine Live-Demo bringen, da mein kompletter Webauftritt daran hängt und ich natürlich gerne erstmal alles fertig haben möchte. Aber sobald ich das geschafft hab, gibt's dann den Link zur Seite, so dass man sich das mal live ansehen kann :) Ich hoffe, nächstes Wochenende ist es dann soweit...

    Nochmal 1000 Dank an Euch alle! Ich hatte nicht geahnt, dass es ein so komplexes Thema werden würde... Vielleicht war's doch keine ganz so dumme Frage und ich find's sehr beruhigend, dass andere auf die gleiche Problematik gestoßen sind wie ich :)

    Euch allen noch einen schönen Restsonntag!

    Grüßli,
    Tinchen

+ Antworten
Seite 2 von 4 ErsteErste 1 2 3 4 LetzteLetzte

Stichworte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein