Πώς λοιπόν μπορούμε να λύσουμε αυτό το πρόβλημα; Χρησιμοποιώντας το ίδιο bug, που ισχύει και για το iframe. Στην ουσία δηλαδή ένα iframe τοποθετείται κάτω από το div και αποκρύπτει το προβληματικό select box. Χρειαζόμαστε όμως ακόμα ένα div το οποίο θα περιέχει το div το οποίο θέλουμε να δείξουμε.
Ακολουθώντας το παράδειγμα της εικόνας, αν έχουμε το:
<div class = "mydiv">
Περιεχόμενο, για να δούμε θα εμφανιστεί από πάνω;
</div>
θα πρέπει να το κάνουμε:
<div class = "wrapper">
<div class = "mydiv">
Περιεχόμενο, για να δούμε θα εμφανιστεί από πάνω;
</div>
<!--[if lte IE 6.5]><iframe></iframe><![endif]-->
</div>
Αυτό που χρήζει προσοχής είναι το conditional include που γίνεται έτσι ώστε το iframe να εμφανίζεται μόνο στον IE 6 και κάτω. Γενικά με αυτόν τον τρόπο μπορεί κανείς να εισάγει κώδικα, όπως css ή οτιδήποτε άλλο, που προορίζεται μόνο για τον IE6 και κάτω.
Τώρα ήρθε η ώρα για να κάνει την δουλειά το css. Έχουμε λοιπόν:
div.wrapper {
position: absolute;
left: 5px;
top: 5px;
z-index: 10;
overflow: hidden;
width: 288px;
height: 108px;
}
div.wrapper iframe {
display: block;
top: 0px;
left: 0px;
z-index: -1;
filter: mask();
width: 288px;
height: 108px;
}
div.mydiv {
position: absolute;
left: 0px;
top: 0px;
background-color: #EEEEEE;
border: 4px outset #004080;
width: 280px;
height: 100px;
}
Αυτό που πρέπει να προσέξει κανείς είναι τo filter:mask(); που είναι συγκεκριμένο για τον internet explorer και ενεργοποιεί την μηχανή rendering του ActiveX, καθώς επίσης και ότι το width & height είναι λίγο μεγαλύτερα για να συμπεριλάβουν το περιθώριο που έχει τεθεί στο αρχικό div.
Αυτά, ελπίζω ο κώδικάς μου να σας βοήθησε να λύσετε γρήγορα το πρόβλημά σας ή να σας έλυσε τυχόν απορίες.
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου