Hallo Experten,
ich habe ein CSS Problem im Opera Browser, welches ich absolut nicht verstehe, da es meiner Meinung nach überhaupt nicht auftreten dürfte.
Der Opera ignoriert in 2 Fällen den class tag komplett, interpretiert es aber zumindest im ersten Fall richtig wenn die Parameter als style Angabe gemacht werden.
Andere Browser reagieren ganz normal auf das class Attribut.
Hier mal die Anweisungen aus der separaten CSS Datei:
Code:
.xbtooltip {
border:1px solid #fff;
background-color: #333;
color:#ccc;
text-align:left;
position: absolute;
display:none;
padding:5px;
width:250px;
font-size:11px;
}
Der Code mit dem class Attribut
(funktioniert nur nicht im Opera Browser)
Code:
<div id="<?php echo $b;?>" class="xbtooltip">
<!-- Irgendein Text -->
</div>
Der Code mit dem style Attribut
(funktioniert in allen Browsern, auch im Opera)
Code:
<div id="<?php echo $b;?>" style="background-color: #333; border:1px solid #fff; text-align:left; position: absolute; color:#ccc; padding:5px; width:250px; font-size:11px;">
<!-- Irgendein Text -->
</div>
Der Link welcher beim Mouseover den Tooltip einblendet
Code:
<a onmouseover="XBT(this, {id:'<?php echo $b; ?>'})" href="../p/image_show.php?image_id=<?php echo $data->image_id; ?>">
<!-- Bild -->
</a>
Ich weiß ehrlich gesagt nicht wo da der Unterschied ist, außer das Methode 2 unsauberer aussieht und im Falle einer Veränderung schwerer zu warten ist.
=========================================================
Mein zweites Problem ist genauso mysteriös und sehr ähnlich.
Ich lasse verschiedene Mitteilungsboxen auf meiner Seite ausgeben.
Je nachdem ob es sich bei der Mitteilung um eine Warnung, einen Hinweis, eine Erfolgsmeldung oder einen Fehler handelt, werden die Hintergund- und Schriftfarbe
anders dargestellt.
Hier sind die CSS Anweisungen welche sich in einer separaten Datei befinden
Code:
.error_box {
background-color:#ffbaba;
color:#D8000C;
}
.warn_box {
background-color:#FEEFB3;
color:#9F6000;
}
.ok_box {
background-color:#d7e57c;
color:#4F8A10;
}
.tip_box {
background-color:#333;
color:#ccc;
}
Hier der Codeschnipsel, welcher für die Ausgabe der Meldungen zuständig ist.
PHP-Code:
if (isset($del_img) && $del_img == 1) {
echo "<div class='ok_box text_m'>";
echo "Das Bild <b>(" . $image_id . ")</b> wurde gelöscht!";
echo "</div>";
}
if (isset($del_img) && $del_img == 0) {
echo "<div class='error_box text_m'>";
echo "Das Bild konnte nicht gelöscht werden !";
echo "</div>";
}
if (isset($num) && $num == 0) {
echo "<div class='warn_box text_m'>";
echo "Es wurden noch keine Bilder hochgeladen! ";
echo "</div>";
}
Obiger Code funktioniert in allen Browsern, nur nicht im Opera.
Meldung 1 und 2 werden korrekt ausgegeben, bei Meldung 3 fehlt wieder die Css Formatierung im Opera Browser. Der Inhalt des Divs wird zwar angezeigt aber im Opera unformatiert. Finde den Fehler nicht, es ist mir auch schleierhaft, dass ein solch simpler Code nur im Opera nicht funktionieren soll.
Ich bin für jeden Tipp dankbar.
Gruß
René