4-Spaltige Postübersicht im Galerie Look
Posted in Allgemein, Blogs Inside von LJayam 14. Jul. 2006 um 21:36Für ein Projekt (URL folgt wenns fertig ist) habe ich eine Übersichtsseite gebraucht, die Posts mit Bildern wie eine Galerie aussehen lässt.
Bilderalbum/-verwaltung ohne Galerie PlugIn - sozusagen.
Die Site, wo ihr euch das in Aktion anschauen könnt, folgt sobald sie online geht.
Hier aber schon mal der Quellcode für ein
<?php
/*
Template Name: Galerie Template
*/
?>
<?php get_header(); ?>
<div id="content" class="narrowcolumn">
<?php
//Anzeige der Posts wird beschränkt auf eine spezielle Kategorie - muss aber nicht
query_posts(’cat=2&orderby=title&order=asc’);
$count_main=1;
$count_inner=1;
$allover_post_counter = 0;
if (have_posts()) :
echo ‘<!– Galerie BOX [start] –>’ . "\n" . ‘<div id="galerie_box">’."\n";
while (have_posts()) : the_post();
/* JLo */
$allover_post_counter++;
if($count_main==1 && $count_inner==1)echo ‘ <div class="leftcol_main">’."\n";
if($count_main==2 && $count_inner==1)echo ‘ <div class="rightcol_main">’."\n";
if($count_inner==1)echo ‘ <div class="leftcol_inner">’;
if($count_inner==2)echo ‘ <div class="rightcol_inner">’;
?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><a xhref="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>"><?php the_title(); ?></a></h2>
<div class="entry">
<a xhref="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title(); ?>">
<?php the_content(’weiter…’); ?>
</a>
</div>
</div>
<?php
/* JLo */
echo "</div>\n";
if($count_inner==2)echo ‘ </div>’."\n";
if($count_main==2 && $count_inner==2){
$count_main=0;
echo ‘<div class="breakline"></div>’."\n";
}
if($count_inner==2){
$count_inner=0;
$count_main++;
}
$count_inner++;
endwhile;
//Bei ungrader Anzahl Posts, muss ein fehlender </div> angefügt werden
if (($allover_post_counter/2) != floor($allover_post_counter/2)) echo " </div>"."\n";
echo ‘</div>’.'<!– Galerie BOX [end] –>’."\n";
else : endif;
?>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Und natürlich das wichtigste; die CSS Definitionen:
#galerie_box { width:606px; }
#galerie_box .entry { font-size: 60%; }
#galerie_box .post,
#galerie_box .post h2 {
margin: 0;
}
#galerie_box a { color: #333; }
.leftcol_inner {
width: 142px;
float: left;
border: 1px solid #ccc;
margin: 1px;
padding: 1px;
}
.rightcol_inner {
width: 142px;
float: right;
border: 1px solid #ccc;
margin: 1px;
padding: 1px;
}
.leftcol_inner:hover,
.rightcol_inner:hover { border: 1px solid #06c;
}
.leftcol_main {
width: 300px;
float: left;
margin: 1px;
}
.rightcol_main {
width: 300px;
float: right;
margin: 1px;
}
.breakline { float: none; clear: both; }

Vorsicht bei Angabe von fixen Breiten in Kombination mit padding und border.
Browser ziehen diese Werte von der Gesamtbreite ab, so dass diese gleich bleibt, der Internet-Explorer rechnet die hinzu.
Auch problematisch: margin und floating in die gleiche Richtung - der IE verdoppelt die Werte.
(Da kannste echt manchmal verzweifeln an dem Mist … Wenn man ohne CSS-Hacks arbeiten will, was ich für empfehlenswert halte - kommt man um Hilfs-DIVs eigentlich kaum herum …)