Pull to refresh

Comments 56

Правый верхний блок глючит в Opera 9.51. Сразу после загрузки текст чёрный, но если прокрутить и вернуть, он становится белым.
P.S. Надеюсь, автор найдёт решение.
Средний блок, у вас просто правый вниз уехал :)
Ну да. У меня 1024x768. Правда, уменьшение масштаба ничего не вылечило.
Да, тоже нарвался на этот глюк недавно, до прерисовки текст внутри прозрачного блока рисуется черным цветом.
filter:alpha(opacity=50); — это для ie?
Интересно, что выделение текста в полупрозрачном блоке №1 тоже полупрозрачное :)
Это что, я в этом месте оби за монитором вижу.
Все нормально, только в Опере 1500 пикселей приводят к вертикальной прокрутке.
Прошу прощения, но вы кажется что-то перемудрили. Вот так тоже работает неплохо :)


.trans
{
opacity:0.5;
filter:alpha(opacity=50);
-moz-opacity:0.5;
background-color:#000000;
width:100%;
height:100%;
position:absolute;
margin:-20px;
}

.container
{
position:relative;
width:200px;
padding:20px;
border:1px solid red;
}

....
....
<div class="container">
<div class="trans">
</div>
vot<br /> kak<br /> to<br /> tak<br />


</div>


Рамка красная для наглядности ;)
Ай, z-index в .trans забыл :(
в демке
anchor "container2" already defined
в опере 9.51 чтобы увидеть текст блока 2 нада его выделить Оо. когда снимаеш выделение - видно нормально...
Проще надо быть:

#container { opacity:0.5; filter:alpha(opacity=50); -moz-opacity:0.5; }
#container * { opacity:1; filter:alpha(opacity=100); -moz-opacity:1; }

При условии, что внутри у вас всё будет в тэгах(скажем нет голому тексту).
на всех потомков, прошу прощения
А Вы это пробовали прежде чем предлагать? Это работать не будет как вы ожидаете. Для первого правила так же нужно добавить что либо (zoom: 1, position: absolute, width/height) чтобы прозрачность начала работать для блока в IE.
Стандартная практика, но лично мне ближе растягивание (или повторение по вертикали и горизонтали для нормальных браузеров) полупрозрачной однопиксельной картинки. Я не люблю лишние несемантичные элементы в коде и скрипты там, где можно обойтись маленькой картинкой и одной строчкой в expression для IE. Но за автоматизацию метода большое спасибо, очень полезно.
-moz-opacity — излишне; так как фф2 уже понимает opacity, то для чего это?
Точно так же alpha(opacity=100) скоро перестанет поддерживаться. А поддерживать IE5 странное занятие.
Ведь фильтр для прозрачности нужен и в IE6, а от него мы ещё не скоро уйдём.
Уже в IE6 конструкция alpha(opacity=100) нежелательна (depricated) и прозрачность следует подключать через progid. В MSDN есть статья.
блажен, кто верует)
ИЕ8 ой как нескоро, так там пока и просто opacity нет. а alpha-filter - это для ИЕ6-7
До конца года мне кажется мало времени. Если там отключат то для IE8 данный код уже будет неработоспособен.
важно указать, что свойство
height:1500px;
определяет максимальную высоту полупрозрачного фона, таким образом какая-нибудь объемная статья, выложенная на такой подложке, вполне незаметно может "перетечь" на основной фон сайта
min-height:1500px; height:auto !important; height:1500px;
всё здорово, за одним маленьким исключением - если внимательно посмотреть на предложенную структуру, то фон лежит отдельно от контента, и резона тянуться больше заданных 1500 пикселей у него нет
да, вы правы =) my bad
UFO just landed and posted this here
согласен что -moz-opacity будет лишним.
решал эту проблему так же, только без jQuery :)
Побаловался в FF2 с <H1> внутри непофикшенной прозрачности.
Получается, что потомки наследуют уровень прозрачности и если им выставить opacity: 0.5 при том, что у парента уже стоит 0.5, реальная opacity у них будет 0.25. Хотя computed style показывает все равно ту, которая установлена для <H1>, т.е. 0.5.
Фон в примере разрывает мозг при попытке читать текст. Но это к делу не относится
в общем, png — это наше все, а кто не умеет — я не виноват
Бред полный. Проще использовать png.
А если необходимо изменения фона блока? Не надоест менять png?
Очередной гениальный веб-девелопер, и поклонник jQuery.

Давайте рассмотрим такую ситуацию:
Высота блоков не фиксированная, а JS отключен(даже если это опустить, неприятно смотреть на любые прыжки после загрузки страницы).

В данном случае нет «правильного» решения, в этом главная ошибка статьи. На мой взгляд, правильное решение — дублировать блок с текстом, и использовать копию как блок с прозрачностью, таким образом он сразу будет иметь нужную высоту, но это ппц с точки зрения семантики, а так же возрастает вес страницы. К тому же, при отключении JS фильтры ИЕ не работают. А использовать jQuery для столь элементарной задачи, и писать об этом статью — это моветон.
Если JS отключен блок просто не будет прозрачен.

Зачем это занудство: «Что же будет если отключить javascript? Что же будет если отключить браузер?»

Я лишь описал как решить возникшую проблему, которую не только я встретил на своем пути.
я критикую только слово "правильная" в заголовке статьи и использование jQuery, не более того.
От критики никуда не деться )
Все это хороше пока вам нужна лишь серая (или скажем там одноцветная) прозрачность... вот у меня например юзеры выбирают фон странички+прозрачность - не нагенерируешь же тут на все цвета радуги пнг-ишки :(

приходится мириться с прозрачностью всех элементов...
Небольшое замечание по части jquery
$("div.transp").wrapInner('<\div class="content">').prepend('<\div class="transparency">');

зы перед тегами слеши убрать надо =)
пффф.. хабр закрывающие дивы съел
В моем коде не одного слэша нет. Или вы предложили более краткое решение?
$("div.transp").wrapInner('<\div class="content"><\/div>').prepend('<\div class="transparency"><\/div>')

Только обратные слеши убрать после '<'
UFO just landed and posted this here
Спасибо :)
Вообщем, если кому еще интересно
$("div.transp").wrapInner('<div class="content"></div>').prepend('<div class="transparency"></div>')
http://www.css3.info/preview/rgba/

таким методом это будет делаться в 1 диве в будущем
примечание - это только для сплошного цвета без картинки
Прошло два года и будущее наступило :)
прошло еще два года — будущее в квадрате, а в сафари так и не работает :=)
Ан-нет, rgba(0,0,0,0.5) работает :=)
#container {
position: relative;
}

#container.transparency {
opacity:0.5;
filter: alpha(opacity=50);
-moz-opacity:0.5;

background-color:#000000;

position: absolute;
left:0px; top:0px; right:0; bottom:0;
z-index:1;

/* for ie6 */
_width: 100%;
_height: expression(this.parentNode.offsetHeight + 'px');
}

.content {
position: relative;
z-index: 2;
}

ps: точно не помню код, и нет возможности в данный момент проверить, но когда создавал тень для безразмерного блока, без использования графики, использовал подобную структуру.
Sign up to leave a comment.

Articles