• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

CSS3 Farbverlauf

BDG

Mitglied
Hey Leute .
Ich wollte auf meine Seite einen farbverlauf machen in CSS3.
Bis jetzt sieht das so aus :

Code:
body {
    background: -moz-linear-gradient(top,  #6A96FF,  #12266D);  //für Mozilla Firefox
    background: -o-linear-gradient(top, #6A96FF, #12266D); //für Opera
	background: linear-gradient(top, #6A96FF, #12266D);
	background: -webkit-gradient(linear, left top, left bottom, from(#6A96FF), to(#12266D));
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#6A96FF', endColorstr='#12266D');
    }
Für alle möglichen Browser halt .. In Chrome siehts super aus, in Internet Explorer sieht mans garnicht und in Firefox ist das total die Krise !
eIbvMj5HAV.png

So sieht das aus .. Woran liegt das ? Wie kann ich das wegmachen ? oder meint ihr ich soll die farbverläufe ganz weglassen ?
So siehts in Chrome aus (wunderschön) : http://bdg-coding.tk/
M
fG, bastian
 
Werbung:
Hallo.

Also in meinem Firefox (Firefox Acht) ist auch kein Farbverlauf zu erkennen.

So ist das nunmal wenn man mit neuen Eigenschaften arbeitet.
Wenn du einen Farbverlauf willst der in allen Browser gleich aussieht nimm eine Hintergrundgrafik das klappt immer.

Wenn du mit CSS3 arbeiten willst musst du damit rechnen das nicht alle Browser das so umsetzten wie du es dir vorstellst.
Bei unwichitgen Eigenschaften wie abgerundeten Ecken kann man damit leben, bei diesem Farbverlauf würde ich das vorerst noch mit einer Grafik lösen.

Gruss
Elroy
 
Werbung:
So weit so gut, aber du hast kein Doctype und kein Zeichensatz angegeben. Schreib mal in den header:

HTML:
<!DOCTYPE HTML>
<html>
<head>
    <meta charset=UTF-8>
    <title>BDG's Website</title> 
    <link href="style.css" type="text/css" rel="stylesheet" /> 
</head>
 
Werbung:
Allerdings das 2te geht in Firefox nicht und naja ...
W4EQ+WAawKSlZ4zqAwMpieFcGU9Cb7fp04zGPwACpmKVSa43bNMxUA3DDMsC20SAQA7

Im Firefox geht alles, wenn man es richtig macht. Was ich damit sagen will ist, dass es irgendwo ein Probleme gibt. Teste immer erst im Firefox, der zeigt das richtig an.

Du hast 2 Hintergründe für den Firefox, die werden im Firefox korrekt dargestellt.
 
In deinem CSS, habe mal den relevanten Teil hier eingefügt. Siehst du, 2 x moz-linear.....usw.

Code:
body {     background: -moz-linear-gradient(top,  #6A96FF,  #12266D);  //für Mozilla Firefox     background: -o-linear-gradient(top, #6A96FF, #12266D); //für Opera     background: linear-gradient(top, #6A96FF, #12266D);     background: -webkit-gradient(linear, left top, left bottom, from(#6A96FF), to(#12266D));     filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#6A96FF', endColorstr='#12266D');          
background: -moz-linear-gradient(top, #00CCCC, #00FF99);

Zudem verstehe ich nicht warum du dein Menü mit IDs und zusätzlich Klassen versiehst. Alles was du brauchst ist das hier:
HTML:
<ul id="menue">
    <li><a href="index.html">Home</a></li>
    <li><a href="index.html">News</a></li>
    <li><a href="index.html">Tutorials</a></li>
    <li><a href="index.html">Downloads</a></li>
    <li><a href="index.html">Anderes</a></li>
    <li><a href="index.html">Kontakt</a></li>
</ul>
mehr nicht. Eigentlich kann man auf id="menue" auch verzichten, aber dann wird's evtl. kompliziert. Ich kann dir nur empfehlen die Lektüre zu CSS, Selektoren und Attribute mal zu lesen.
Entweder ein Buch, OK ist antiquiert aber im Netz steht auch eine Menge.

Und hier die Referenz dazu:
Selectors Level 3
 
Werbung:
setze im body eine min-height von 100% für den Firefox

IE: Du hast nur den Filter für IE5.5-7 verwendet, für den IE8 musst du diesen hier verwenden:
Code:
[COLOR=#3E3E3E][FONT=Courier]-ms-filter: "progid:DXImageTransform.Microsoft.gradient [/FONT][/COLOR](GradientType=0, [FONT=monospace]startColorstr=#6A96FF, endColorstr=#12266D[/FONT])";
 
@Wustersoss :Also ich habe das 2te weggemacht aber da kommt das gleiche wie vorher ... Ich dachte mir schon das das nichts damit zutun hat ..

@alogheo : wie setze ich eine min-height von 100 % ?

Zudem verstehe ich nicht warum du dein Menü mit IDs und zusätzlich Klassen versiehst.
ja also ich bin in css und html nicht so gut .. Aber alle Buttons aus meinem Menü haben ja die klasse button ...
Aber in der Klasse button kann ich ja für nicht für jeden button einzeln bestimmen wie groß die sind und deswegen habe ich noch ein .div dingsie gemacht ... Wie soll ich es denn sonst machen ? Mir fällt nichts ein ...
 
Werbung:
ja so habe ich es gemacht aber hat sich nichts geändert.
Vielleicht hat ja sonst nochjemand eine Idee wie das weggeht ?
 
Zuletzt bearbeitet:
ja so habe ich es gemacht aber hat sich nichts geändert.
Sry. Wenn man 100% Höhe festlegt funzt dass. Aber da es nicht mehr funktioniert, wenn man scrollen muss, hab ich einfach gedacht, dass es mit min-height funktionieren müsste - war dann wohl doch nich so.

Also 2. Versuch: display:table in body{}
 
Werbung:
Ich erkläre es dir von Anfang an.

Ein Html Dokument wird mit einem Doctype eingeleitet, damit alle Browser sich gleich verhalten und wissen das jetzt HTML kommt und nicht etwa SVG oder XML oder Kaffeebohnen.

wir schreiben
HTML:
<!DOCTYPE HTML>
Jetzt kommt noch das Tag für das Dokument in dem Fall HTML und das wir einen Header haben. Danach müssen wir den Zeichensatz angeben, warum - nun in China, Thailand und auf dem Mars werden andere Schriften verwendet und manche schrieben auch von rechts nach links, doch das gibt es.

Also schreiben wir
HTML:
<!DOCTYPE HTML>
<head>            
   <meta charset=UTF-8>
Es folgt der Titel der Seite, der uns im Browser oben in der Fensterleiste angezeigt wird.
HTML:
<!DOCTYPE HTML>
<head>            
   <meta charset=UTF-8>
   <title>Seitentitel steht oben im Fenster   </title>

Eine Seitenbeschreibung ist zwar nicht notwendig, wird aber von Suchmaschinen gern gesehen und als Ausschnit bei der Suche angezeigt.
Da es nur Vorteile bringt, schreiben wir das mit rein.
HTML:
<!DOCTYPE HTML>
<head>            
    <meta charset=UTF-8>
   <title>Seitentitel steht oben im Fenster   </title>
   <meta name="description" content="Seitenbeschreibung von dem was man sieht.">

Nun brauchen wir noch Stilangaben für unsere späteren Elemente, damit der Browser nicht für jedes Element sein eigenes Süppchen kocht. Das kann man auslagern und an dieser Stelle den Verweis zur CSS-Datei angeben, aber wir wollen da ja ein wenig mit rumspielen, daher ist es besser alles im Blick zu haben und wir schreiben daher unsere Stilangaben mit ins HTML-Dokument.
HTML:
 <!DOCTYPE HTML>
 <head>            
     <meta charset=UTF-8>
   <title>Seitentitel steht oben im Fenster   </title>
   <meta name="description" content="Seitenbeschreibung von dem was man sieht.">
   <style type="text/css"> 
    </style>

Das waren jetzt alle Angaben die in den Kopfbereich(Head) kommen, jetzt noch zumachen und mit dem Element Body weiter machen.
HTML:
  <!DOCTYPE HTML>
  <head>            
      <meta charset=UTF-8>
    <title>Seitentitel steht oben im Fenster   </title>
   <meta name="description" content="Seitenbeschreibung von dem was man sieht.">
   <style type="text/css"> 
    </style>  
</head>

<body>

Alle Elemente die noch offen sind schliessen und wir haben das Grundgerüst unserer Seite.
HTML:
   <!DOCTYPE HTML>
   <head>            
       <meta charset=UTF-8>
     <title>Seitentitel steht oben im Fenster   </title>
    <meta name="description" content="Seitenbeschreibung von dem was man sieht.">
   <style type="text/css"> 
    </style>  
</head>

<body>
</body>
</html>

Jetzt wird unsere Seite schon angezeigt und alles was wir in das Element body schreiben wird auch irgendwie angezeigt. Warum irgendwie, na weil wir ja noch keine Stilangaben angegeben haben und somit der Browser seine Stilangaben verwendet, von denen wir nicht wissen wie sie ausschauen. soll uns auch nicht interessieren, da wir die Browser durch unsere Angaben einfach zwingen werden, das so anzuzeigen wie wir das wünschen. Also los gehts.
Wir wollen erst mal das der Hintergrund einen schönen Farbverlauf bekommt.
Ich nehme mal deinen Farbverlauf. Also rein ins CSS für das Element body.

HTML:
    <!DOCTYPE HTML>
    <head>            
        <meta charset=UTF-8>
      <title>Seitentitel steht oben im Fenster   </title>
     <meta name="description" content="Seitenbeschreibung von dem was man sieht.">
    <style type="text/css"> 
    body {
        background: -moz-linear-gradient(top,  #6A96FF,  #12266D);  //für Mozilla Firefox
        background: -o-linear-gradient(top, #6A96FF, #12266D); //für Opera
        background: linear-gradient(top, #6A96FF, #12266D);
        background: -webkit-gradient(linear, left top, left bottom, from(#6A96FF), to(#12266D));
        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#6A96FF', endColorstr='#12266D');
    }
     </style>  
</head>

<body>
</body>
</html>

Wenn wir uns das jetzt ansehen, stellen wir fest, dass der Verlauf nicht über die ganze Seite geht und noch schlimmer, jeder Browser was anderes anzeigt. Der IE sogar noch einen Abstand von oben.
Das werden wir denen schon noch abgewöhnen, wo kommen wir hin unseren schönen Verlauf so zu verschandeln.
Wir setzen also erstens alle Abstände auf Nullwert, sind ja nur margin(Aussenabstände) und padding(Innenabstände) und zwar für alle Elemente.
Das machen mir mit dem tollen Universalattribut Stern *.
Ausserdem teilen wir den Browsern mit, dass wir den Verlauf gern über die ganze Seite hätten. Also Seitenhöhe 100% sein soll.

HTML:
    <!DOCTYPE HTML>
    <head>            
        <meta charset=UTF-8>
      <title>Seitentitel steht oben im Fenster   </title>
     <meta name="description" content="Seitenbeschreibung von dem was man sieht.">
    <style type="text/css"> 
    *{
        margin:0; 
        padding:0;
   }    
   body {
        height:100%;
        background: -moz-linear-gradient(top,  #6A96FF,  #12266D);  //für Mozilla Firefox
        background: -o-linear-gradient(top, #6A96FF, #12266D); //für Opera
        background: linear-gradient(top, #6A96FF, #12266D);
        background: -webkit-gradient(linear, left top, left bottom, from(#6A96FF), to(#12266D));
        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#6A96FF', endColorstr='#12266D');
    }
     </style>  
</head>

<body>
</body>
</html>

Schauen wir uns an wie es aussieht. IE8 hat keine Abstände mehr, zeigt aber immer noch keinen Verlauf über die ganze Seite und der FF, sowie die anderen modernen Browser zeigen jetzt gar nichts mehr an.
Was ist passiert. Nun, wir haben zwar dem Element body eine Höhe von 100% zugewiesen, jedoch bezieht sich diese auf das Elternelemt. Ja da muss dann also noch was sein. Und das Element, welches das Element body unter seiner Kontrolle hat ist das Element html, welches ganz am Anfang unseres Dokumentes steht.
Logische Schlussfolgerung: Das erste Elemt ist das html und das nächste Tochterelement ist das Element body.
Das können wir uns zu nutze machen.
Wir verpassen dem Element html aber erst mal die korrekte Höhe von 100%.

HTML:
<!DOCTYPE HTML>
<head>            
   <meta charset=UTF-8>
   <title>Seitentitel steht oben im Fenster   </title>
   <meta name="description" content="Seitenbeschreibung von dem was man sieht.">
   <style type="text/css"> 
    *{
        margin:0; 
        padding:0;
    }
    html {
        height:100%;
    }
    body {
        height:100%;
        background: -moz-linear-gradient(top,  #6A96FF,  #12266D);  //für Mozilla Firefox
        background: -o-linear-gradient(top, #6A96FF, #12266D); //für Opera
        background: linear-gradient(top, #6A96FF, #12266D);
        background: -webkit-gradient(linear, left top, left bottom, from(#6A96FF), to(#12266D));
        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#6A96FF', endColorstr='#12266D');
    }
   </style> 
</head>

<body>
</body>
</html>

Jetzt schaut der Verlauf sahne aus, oder.

ENDE
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Super ! Danke Wustersoss ! Aber ist es wirklich besser das CSS zeug in die HTML-Datei reinzutun ? Wenn die Seite etwas größer wird dann brauche ich ja schon 1ne Minute um ganz nach unten zu scrollen :D Außerdem sieht man wenn man das in der HTML-Datei macht in Notepad garkeine schönen strukturierten Verfärbungen im css code :D
 
Zurück
Oben