Chcę ustawić Krycie tła div bez wpływu na element zawarty w IE 8. Mam jakieś rozwiązanie i nie odpowiadam na ustawienie obrazu 1 X 1 .png i ustawienie krycia tego obrazu, ponieważ używam dynamicznego krycia i administratora kolorów może zmienić że
Użyłem tego, ale nie działałem w IE 8
#alpha {
filter: alpha(opacity=30);
-moz-opacity: 0.3;
-khtml-opacity: 0.3;
opacity: 0.3;
}
i
rgba(0,0,0,0.3)
również.
css
internet-explorer-8
opacity
Govind Malviya
źródło
źródło
Odpowiedzi:
opacity
Styl wpływa na cały element, i wszystko, co w jego obrębie. Prawidłową odpowiedzią na to jest użycie zamiast tego koloru tła rgba.CSS jest dość prosty:
... gdzie pierwsze trzy liczby to wartości czerwonego, zielonego i niebieskiego koloru tła, a czwarta to wartość kanału „alfa”, która działa tak samo jak
opacity
wartość.Zobacz tę stronę, aby uzyskać więcej informacji: http://css-tricks.com/rgba-browser-support/
Wadą jest to, że nie działa to w IE8 lub niższych. Strona, do której utworzyłem łącze powyżej, zawiera również listę kilku innych przeglądarek, w których nie działa, ale wszystkie są już bardzo stare; wszystkie obecnie używane przeglądarki oprócz IE6 / 7/8 będą działały z kolorami rgba.
Dobra wiadomość jest taka, że możesz zmusić IE do pracy z tym, używając hacka o nazwie CSS3Pie . CSS3Pie dodaje wiele nowoczesnych funkcji CSS3 do starszych wersji IE, w tym kolory tła rgba.
Aby użyć CSS3Pie jako tła, musisz dodać określoną
-pie-background
deklarację do swojego CSS, a takżebehavior
styl PIE , aby Twój arkusz stylów wyglądał tak:Mam nadzieję, że to pomoże.
[EDYTOWAĆ]
Co jest warte, jak wspominali inni, możesz użyć
filter
stylu IE zegradient
słowem kluczowym. Rozwiązanie CSS3Pie faktycznie wykorzystuje tę samą technikę za kulisami, ale eliminuje potrzebę bezpośredniego majstrowania przy filtrach IE, dzięki czemu arkusze stylów są znacznie czystsze. (dodaje też całą masę innych fajnych funkcji, ale nie ma to znaczenia w tej dyskusji)źródło
to proste, tylko musisz dać
& dla IE użyj tego filtra
możesz wygenerować swój filtr rgba tutaj http://kimili.com/journal/rgba-hsla-css-generator-for-internet-explorer/
źródło
opacity
element nadrzędny ustawia go dla całego subdrzewa DOMNie możesz tak naprawdę ustawić krycia dla określonego elementu, który nie byłby również kaskadowany do elementów podrzędnych.
opacity
Obawiam się, że nie tak działa CSS .To, co możesz zrobić, to mieć dwa elementy rodzeństwa w jednym pojemniku i ustawić przezroczyste położenie:
wtedy musisz ustawić przezroczystość,
position: absolute/relative
aby jego odpowiednik zawartości był nad nim renderowany.rgba
może zrobić przezroczystość tła kolorowego tłargba
ustawienie koloru nabackground-color
woli elementu oczywiście działa, ale ogranicza cię do używania koloru tylko jako tła. Brak obrazów, obawiam się. Możesz oczywiście użyć gradientów CSS3, jeśli zapewnisz kolory stop gradientu wrgba
. To też działa.Należy jednak pamiętać, że
rgba
może to nie być obsługiwane przez wymagane przeglądarki.Modalne okno dialogowe bez alertów
Ale jeśli chcesz zamaskować całą stronę, zwykle robi się to przez dodanie osobnego
div
z tym zestawem stylów:Następnie, gdy wyświetlasz zawartość, powinna mieć wyższą
z-index
. Ale te dwa elementy nie są ze sobą powiązane pod względem rodzeństwa ani niczego. Są po prostu wyświetlane tak, jak powinny. Jeden na drugim.źródło
Spróbuj ustawić indeks z wyżej zawartego elementu.
źródło
A co z tym podejściem:
źródło
Może istnieje prostsza odpowiedź, spróbuj dodać dowolny kolor tła do kodu, na przykład kolor tła: #fff;
źródło
Jeśli używasz funkcji krycia z pozycjami innymi niż bezwzględne, ma to wpływ na całe podrzędne elementy DIV. Innym sposobem na osiągnięcie tego jest nie umieszczanie elementów div wewnątrz siebie, a następnie używanie pozycji absolutnej dla elementów div. Nie używaj żadnego koloru tła dla górnej części DIV.
źródło
Użyj RGBA lub, jeśli masz kod szesnastkowy, zmień go na rgba. Nie ma potrzeby tworzenia css elementu presodu .
css ---------
LUB
źródło