{"id":1769,"date":"2010-04-10T20:44:20","date_gmt":"2010-04-10T18:44:20","guid":{"rendered":"http:\/\/www.frische-zitronen.de\/?p=1769"},"modified":"2018-02-24T18:10:35","modified_gmt":"2018-02-24T16:10:35","slug":"transparenzen-auf-unterschiedliche-weise-erzeugen","status":"publish","type":"post","link":"https:\/\/www.jukemedia.de\/blog\/2010\/04\/transparenzen-auf-unterschiedliche-weise-erzeugen\/","title":{"rendered":"Transparenzen auf unterschiedliche Weise erzeugen"},"content":{"rendered":"<p>Am einfachsten kann man transparente Effekte mit der Trickkiste des Grafikprogramms als so genannte Pseudotransparenzen erstellen. Und in den meisten F\u00e4llen ist das auch ausreichend. Wenn jedoch Texte auf transparentem Hintergrund st\u00e4ndig wechseln oder man ganze Hintergrundbereiche transparent erstellen will, muss man sich anderer Methoden bedienen:<\/p>\n<p>Drei M\u00f6glichkeiten habe ich hier zusammengetragen:<\/p>\n<ol>\n<li><a href=\"#ueberschrift1\">Transparenz mit einem transparentem PNG<\/a><\/li>\n<li><a href=\"#ueberschrift2\">Transparenz mit der CSS3 Eigenschaft &#8222;opacity&#8220;<\/a><\/li>\n<li><a href=\"#ueberschrift3\">Transparenz mit rgba<\/a><\/li>\n<\/ol>\n<hr \/>\n<h3><a name=\"ueberschrift1\"><\/a>Transparenz mit einem transparentem PNG<\/h3>\n<p>PNG ist ein Bildformat, in welchem Alpha-Transparenzen (Verlaufstransparenzen) gespeichert werden k\u00f6nnen. F\u00fcgt man ein solches Bild als Hintergrundgrafik ein, erscheint der Hintergrund transparent ohne dass man daf\u00fcr CSS benutzen m\u00fcsste.<\/p>\n<p>Der Nachteil dieser Methode ist allerdings, dass nur der Internet-Explorer 7 und 8 diese Transparenz anzeigen kann. Kann auf eine ad\u00e4quate Darstellung im IE6 nicht verzichtet werden, muss ein workaround via <a href=\"http:\/\/bueltge.de\/conditional-comments-effizient-nutzen\/632\/\">conditionel comments<\/a> eingef\u00fcgt werden.<br \/>\n<code>#wrapper {<br \/>\nbackground-image: none;\/*png entfernen*\/<br \/>\nfilter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images\/transparent.png',sizingMethod='scale');<br \/>\nzoom:1;}<\/code><\/p>\n<h4>Beispiele<\/h4>\n<p><a href=\"http:\/\/www.showcase.jukemedia.de\/transparenz\/trans-1\">Beispiel mit einem transparentem PNG<\/a><br \/>\n<a href=\"http:\/\/www.showcase.jukemedia.de\/transparenz\/trans-1a\">Variation mit 2 transparenten Bildern \u00fcbereinandergelegt<\/a><\/p>\n<hr \/>\n<h3><a name=\"ueberschrift2\"><\/a>Transparenz mit CSS3 opacity<\/h3>\n<p>IN CSS3 kann mit der Eigenschaft &#8222;opacity&#8220; die Transparenz eines Objekte bestimmt werden. Dazu weist man dem Element die Eigenschaft &#8222;opacity&#8220; zu und einen Wert zwischen 0 und 1.<br \/>\n<code>.transparent {opacity: 0.5;}<\/code><br \/>\nDa jedoch auch hier der InternetExplorer in der Umsetzung von CSS3 noch nicht so weit ist, muss via conditionel comments ein workaround eingef\u00fcgt werden.<br \/>\n<code><br \/>\n.transparent {<br \/>\n-ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)\";<br \/>\nfilter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);<br \/>\nopacity:0.5;<br \/>\nzoom:1;}<br \/>\n<\/code><br \/>\nDer Nachteil dieser Methode ist jedoch, dass die Eigenschaft &#8222;opacity&#8220; auf die Kindelemente vererbt wird. Im Ergebnis wir dadurch Text, der sich in dem Element befindet, ebenfalls transparent. Umgehen kann man dieses Problem mit einer \u00c4nderung im Markup. Hier ist ein text, der nicht transparent werden soll.<\/p>\n<h4>Positionierung via css :<\/h4>\n<p><code><br \/>\n#wrapper {<br \/>\nmin-height: 100%;<br \/>\nwidth: 960px;<br \/>\nmargin: 0 auto 0 auto;<br \/>\npadding: 30px 0  30px 0;<br \/>\n<span style=\"color: #339966;\">position: relative;<\/span><br \/>\n}<br \/>\n.transparent {<br \/>\nbackground: transparent url(images\/background.png) repeat-y;<br \/>\nopacity: 0.5;<br \/>\n<span style=\"color: #339966;\">position: absolute;<\/span><br \/>\ntop:0;<br \/>\nwidth: 100%;<br \/>\nheight: 100%;<br \/>\n}<br \/>\n.opak {<br \/>\n<span style=\"color: #339966;\">position: relative;<\/span><br \/>\ncolor: #000;<br \/>\nmargin: 20px;<br \/>\n}<\/code><br \/>\nDer umgebende container &#8222;wrapper&#8220; wird relativ positioniert. Dadurch ist es m\u00f6glich das Element &#8222;transparent&#8220; absolut zu positionieren und den transparenten Hintergrund vom Inhalt zu trennen. Das div &#8222;opak&#8220; ist damit kein Kindelement von &#8222;transparent&#8220;, die Transparenz bleibt so auf das div &#8222;transparent&#8220; begrenzt und greift nicht auf die Textinhalte von &#8222;opak&#8220; \u00fcber. Der Text bleibt frei von Transparenz.<\/p>\n<p>Derzeit wird ja gemunkelt, dass der IE9 mit vollst\u00e4ndiger Umsetzung von CSS3 in Arbeit ist, alle Versionen darunter k\u00f6nnen jedoch noch nicht damit umgehen. Deswegen muss auch hier ein workaround mit den propiet\u00e4ren IE-Filtern und conditionel comments installiert werden:<\/p>\n<p><code><br \/>\n.transparent {<br \/>\n-ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)\";<br \/>\nfilter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);<br \/>\nopacity:0.5;<br \/>\n}<br \/>\n.opak {<br \/>\nzoom:1;\/*has layout Bug*\/<br \/>\nleft: 20px;<br \/>\n}<br \/>\n<\/code><\/p>\n<p>Wer jetzt auch noch den IE6 zur gew\u00fcnschten Darstellung \u00fcberreden m\u00f6chte, muss die Gr\u00f6\u00dfenangaben des Containers in Pixel statt in Prozent angeben und die ConditionelComments erweitern. Die jeweiligen Werte sind so zu w\u00e4hlen, dass die Abmessungen in jedem Fall ausreichen. Durch die Eigenschaft overflow:hidden wird der Anzeigebereich auf die gew\u00fcnschte Gr\u00f6\u00dfe begrenzt.<\/p>\n<p><code><br \/>\n#wrapper {<br \/>\noverflow: hidden;<br \/>\n}<br \/>\n.transparent {<br \/>\nwidth: 1000px;<br \/>\nheight: 10000px;<br \/>\n}<br \/>\n<\/code><\/p>\n<h4>Beispiel<\/h4>\n<p><a href=\"http:\/\/www.showcase.jukemedia.de\/transparenz\/trans-2\">Beispiel mit CSS3 opacity<\/a><\/p>\n<hr \/>\n<h3><a name=\"ueberschrift3\"><\/a>Transparenz mit rgba<\/h3>\n<p>Nicht ganz so neu, aber dennoch nicht so gel\u00e4ufig ist, dass man im CSS-Stylesheet die Farbangaben statt hexadezimal auch mit RGB angeben kann.<br \/>\nF\u00fcr ein div &#8222;wrapper&#8220;, dessen Hinergrundfarbe transparent erscheinen soll, notiert man in der .css Datei:<br \/>\n<code><br \/>\n#wrapper {<br \/>\n...<br \/>\nbackground-color: rgba(102,204,255,0.5);<br \/>\n}<br \/>\n<\/code><\/p>\n<p>Aber auch hier muss der Internet-Explorer eine Sonderbehandlung via conditionel-comments erfahren, sieht dann so aus:<br \/>\n<code><br \/>\n#wrapper {<br \/>\nbackground-color: rgb(102,204,255);<br \/>\n-ms-filter: \"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)\";<br \/>\nfilter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);<br \/>\nopacity:0.5;<br \/>\n}<br \/>\n<\/code><\/p>\n<h4>Beispiel<\/h4>\n<p><a href=\"http:\/\/www.showcase.jukemedia.de\/transparenz\/trans-3\">Beispiel mit CSS3 opacity<\/a><\/p>\n<p><strong>Hier noch einige weiterf\u00fchrende Links:<\/strong><br \/>\nPeter Kr\u00f6ner: <a href=\"http:\/\/www.peterkroener.de\/schoenes-neues-css-rgba-und-hsla\/\">Schoenes-neues-css-rgba-und-hsla<\/a> zu lesen.<br \/>\n24way.org: <a href=\"http:\/\/24ways.org\/2009\/working-with-rgba-colour\">working-with-rgba-colour<\/a><br \/>\nDirk Jesse: <a href=\"http:\/\/www.highresolution.info\/weblog\/entry\/transparente_hintergruende_mit_css\/\">Transparente Hintergruende mit css\/<\/a><br \/>\nEric Eggert : <a href=\"http:\/\/yatil.de\/Weblog\/cross-browser-rgba\">Cross Browser rgba<\/a><\/p>\n<h3>Einsatz<\/h3>\n<p>Alle drei L\u00f6sungen sind verwendbar. Wenn es um dekorative Gestaltung geht, hat man den gr\u00f6\u00dften Spielraum, wenn man mit transparenten PNG arbeitet. Allerdings muss man in Kauf nehmen, dass Bilder, die ganze Hintergrundfl\u00e4chen ausf\u00fcllen u.U. zu Lasten der Ladezeit einer Seite gehen k\u00f6nnen. Wenn man also nicht unbedingt Muster braucht, w\u00fcrden sich CSS3 opacity oder RGBa anbieten. Solange aber die alten IE noch im Einsatz sind, m\u00fcsste bei der L\u00f6sung mit opacity ein div aus rein dekorativen Gr\u00fcnden eingef\u00fcgt werden. Arbeitet man mit einem Framework, kann man davon ausgehen, dass dann das Template modifiziert werden muss. Ja, nein, ja, nein &#8211; ich habe sicherlich schon einige Webseiten gemacht, bei denen ich deko-divs eingef\u00fcgt habe &#8211; man sollte aber abw\u00e4gen, ob die Gestaltung es wert ist. Tendenziell w\u00fcrde ich deswegen die rgba L\u00f6sung vorziehen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Man kann sich dar\u00fcber streiten wie viel Dekorationslust der Gestaltung einer Webseite zutr\u00e4glich ist oder auch nicht. Nicht immer gilt: viel hilf viel. Dennoch: Soll es ein Hingucker werden, z\u00e4hlen &#8211; neben Farbverl\u00e4ufen &#8211; transparent erscheinende Objekte oder Hintergrundbilder zu den beliebten Spielerein. In den meisten F\u00e4llen kann man mit grafisch erstellten Pseudotransparenzen arbeiten, wenn jedoch ganze Hintergr\u00fcnde transparent erscheinen sollen oder ein Text auf einem transparentem Hintergrund st\u00e4ndig wechselt, k\u00f6nnen auch andere M\u00f6glichkeiten angewandt werden. In diesem Artikel stelle ich drei Verfahren vor.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[63,1039],"yst_prominent_words":[1051,1052,1053,1054,1055,1056,1057,1058,1059,1044,1060,1045,1061,1046,1062,1047,1063,1048,1049,1050],"class_list":["post-1769","post","type-post","status-publish","format-standard","hentry","category-webdesign","tag-css","tag-webentwicklung"],"_links":{"self":[{"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/posts\/1769","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/comments?post=1769"}],"version-history":[{"count":5,"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/posts\/1769\/revisions"}],"predecessor-version":[{"id":4515,"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/posts\/1769\/revisions\/4515"}],"wp:attachment":[{"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/media?parent=1769"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/categories?post=1769"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/tags?post=1769"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.jukemedia.de\/blog\/wp-json\/wp\/v2\/yst_prominent_words?post=1769"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}