2011-01-26 2 views
1

Я хочу знать, могу ли я поставить фильтр css на целую страницу, чтобы вы могли видеть страницу, но на ней есть слегка серый фильтр, и ничто не может щелкнуть по странице, потому что фильтр находится сверху.Фильтр CSS на всей странице

ответ

6

Это может быть достигнуто путем размещения пустого наложения DIV (<div id="overlay"></div>) в нижней части DOM, со следующим стилем:

#overlay { 
    position: absolute; 
    top: 0; 
    right: 0; 
    bottom: 0; 
    left: 0; 
    background: #000; 
    opacity: .6; 
    filter: alpha(opacity=60); 
} 

Вы должны быть осторожны, если вы объявили любой Z- индексов. Кроме того, оверлейному div может потребоваться обработка JavaScript, если высота документа больше, чем область просмотра.

+0

Я просто положил его на дно DOM без индекса z? или я устанавливаю его непосредственно между тегами, чтобы он охватывал всю страницу? – DonJuma

+0

z-index может потребоваться, если существуют другие элементы с абсолютным позиционированием. – Spliffster

+0

@Matthew: Bottom of DOM, перед закрытием '' тег. – Chris

0

HTML (поместить это в нижней части страницы):

<div id="overlay"></div> 

CSS:

#overlay { 
    position:fixed; 
    z-index: 100; 
    top:0; 
    left:0; 
    bottom:0; 
    right:0; 
    background-color:rgba(0,0,0,0.2); 
} 

Если вы хотите поддерживать отсталые браузеры (IE8 и ниже), вы должны будете скорректируйте код. Например, RGBA не поддерживается в IE.

+0

IE6 не поддерживает позицию: исправлено, для всех вас, бедных парней, которые все еще должны его поддерживать. – Spliffster

+0

Проверьте rgba(), выше. ;-) – Chris

+0

@lofto Yea, я знаю. Вот как я это делал раньше. Но я больше не поддерживаю IE ';)' –

Смежные вопросы