Schräges CSS3 Menü mit oldIE Fallback

morgenland

Das Bild unterliegt keinen urheberrechtlichen Beschränkungen

Die Umsetzung grafischer Vorlagen finde ich besonders reizvoll, weil ich mich dabei voll und ganz auf die Technik konzentrieren kann. Das Morgenland-Festival Theme (Design von screenlounge, technisch umgesetzt 2010, Event fand statt im Mai 2011) für Drupal brachte ein paar grafische Besonderheiten mit sich, unter anderem die schrägen Streifen in der rechten Seitenleiste. Das war ein Fall für CSS3.

CSS3 Stilanweisungen haben einiges an grafischer Arbeit aus der Gestaltung genommen, können jedoch von älteren Internet Explorern nicht umgesetzt werden. Daher sehen manche Designs in modernen Browsern anders (üblicherweise besser) aus als in oldIEs. Für die Wiedergabe der schrägen Streifen gibt es hingegen eine adäquate Filterlösung für ältere Internet-Explorer-Modelle. Die eigentliche Herausforderung liegt jedoch nicht im CSS3 oder der Anwendung des IE-Filters, sondern in der Positionierung der Elemente und der Justierung von Abständen. Hier unterscheiden sich nicht nur alte IEs und moderne Browser (Abstand der Liste von oben), sondern auch IE7 und IE8 (Abstand der Listenpunkte voneinander).

Als erster Internet Explorer interpretiert Version 9 die eingesetzte CSS3-Transformation (mit -ms Präfix). In Firefox kommt es (immer noch) zu einem “zusätzlichen” Hovereffekt (die Buchstaben wackeln), offenbar weil die Buchstaben beim Farbwechsel neu gerendert werden (ohne Farbänderunge bei Hover passiert das nämlich nicht).

Die Grafiken

Für den rechts vertikal abschließenden Rand setze ich in den Listenelementen Grafiken als Hintergrundbilder ein. Diese werden ebenfalls um -45 Grad gedreht. Es sollten GIF-Dateien sein, da der IE-Filter halbtransparente Pixel von PNG-Dateien durch den Filter schwarz färbt.

greenblueroseyellos

post731.html

<!DOCTYPE html>
<!--[if lt IE 7 ]><html lang="de" class="no-js oldie msie6"><![endif]-->
<!--[if IE 7 ]><html lang="de" class="no-js oldie msie7"><![endif]-->
<!--[if IE 8 ]><html lang="de" class="no-js oldie msie8"><![endif]-->
<!--[if IE 9 ]><html lang="de" class="no-js msie9"><![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html lang="de"><!--<![endif]-->
<head>
<meta charset="utf-8" />
<meta content="Gabriele Lässer" name="author">
<title>
	Schräges CSS-Menü mit oldIE Fallback
</title>
<link rel="stylesheet" type="text/css" media="all" href="style-731.css" />
<!--[if lte IE 8]>
	<link rel="stylesheet" type="text/css" media="all" href="styleie-731.css" />
<![endif]-->

</head>
<body class="default">
<header id="branding"> 
		<h1 id="pageheader">Stripes</h1>
</header>

<div id="pptwrapper">
	<ul class="placeevent">
		<li class="stripe green"><a href="#">Musik- und Kunstprogramm</a> </li>
		<li class="stripe green spaceafter"><a href="#">Forumsprogramm</a></li>
		<li class="stripe blue"><a href="#">Anmeldung Workshops</a> 	</li>
		<li class="stripe blue spaceafter"><a href="#">Anmeldung Workshops</a> </li>
		<li class="stripe rose"><a href="#">Mittwoch, 18. Mai 2011</a> </li>
		<li class="stripe rose"><a href="#">Donnerstag, 19. Mai 2011 </a> </li>
		<li class="stripe rose spaceafter"><a href="#">Freitag, 20. Mai 2011</a> </li>
		<li class="stripe yellow"><a href="#">Samstag, 21. Mai 2011</a> </li>
		<li class="stripe yellow"><a href="#">Sonntag, 22. Mai 2011</a> </li>
		<li class="stripe yellow"><a href="#">Download Programm 2011</a></li>
	</ul>
</div>

</body>
</html>

style-731.css

/* Start of Place Event Styles */

#pptwrapper {
background-color:#eee;
width:100%;
padding:120px 0 50px 0;
margin:20px 0;
overflow:hidden;
}

.placeevent {
list-style-type:none !important;
margin:120px 0 70px 0;
overflow:visible !important;
float:right;
border:solid 0px #999; /* set to 1px to see a border */
}

.placeevent li {
list-style:none !important;
border:solid 0px #ccc; /* set to 1px to see a border */
clear:right;
float:right;
width:320px;  /* variieren breite und rechter Abstand */
margin-right:-59px;  /* variieren breite und rechter Abstand */
}

.placeevent a {
font-family:Tahoma;
letter-spacing:1px;
font-size:15px;
white-space:nowrap;
margin-right:23px;
text-transform:uppercase;
display:block;
float:right;
text-align:right;
text-decoration:none;
height:22px;
padding:0px 10px;
color:#333;
}

.placeevent .stripe {
-webkit-transform:rotate(-45deg);
-moz-transform:rotate(-45deg);
-ms-transform:rotate(-45deg);
-o-transform:rotate(-45deg);
transform:rotate(-45deg);
height:30px;
margin-bottom:5px;
}

.placeevent .spaceafter {
margin-bottom:20px;
}

.placeevent a:hover {
color:#666;
}

.placeevent .stripe {
background-repeat:no-repeat;
background-position:top right;
}

.green {
background-image:url('http://www.xisign.com/wp-content/uploads/examples/post731/c3e7b7.gif');
}

.green a {
background-color:#c3e7b7;
}

.blue {
background-image:url('http://www.xisign.com/wp-content/uploads/examples/post731/c8d9ed.gif');
}

.blue a {
background-color:#c8d9ed;
}

.rose {
background-image:url('http://www.xisign.com/wp-content/uploads/examples/post731/e6b5b5.gif');
}

.rose a {
background-color:#e6b5b5;
}

.yellow {
background-image:url('http://www.xisign.com/wp-content/uploads/examples/post731/eae4c1.gif');
}

.yellow a {
background-color:#eae4c1;
}

styleie-731.css

/* IE 7 and IE 8 */
.oldie #pptwrapper {
padding:20px 0 180px 0;
}

.oldie .placeevent li {
filter: progid:DXImageTransform.Microsoft.Matrix( 
M11=0.7071067811865476, M12=0.7071067811865475, M21=-0.7071067811865475, M22=0.7071067811865476, sizingMethod='auto expand');
margin-bottom:15px;
font-weight:600;
}

.oldie .placeevent {
margin-top:0px;
margin-bottom:190px;
}

/* msie 7 */
.msie7 .placeevent li {
margin-bottom:-210px;
cursor:pointer;
margin-right:0px;
}

.msie7 .placeevent .spaceafter {
margin-bottom:-200px;
}
Download

example-731

(3 kB)

Das könnte Dich auch interessieren

Eine Antwort auf Schräges CSS3 Menü mit oldIE Fallback

  1. Sacha Schlegel schrieb:

    Grosses Kompliment an Gabriele für diese wunderschöne Drupal Theme Umsetzung der MorgenLand Festival Vorlage unserer Designer! Toll war es!

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>