Jump to content
  • 0

Обрезание блока с затемнением


rb88
 Share

Question

Добрый вечер!

Есть задача обрезать контент внутри блока (делаю при помощи overflow: hidden;) далее нужно добавить красоты, плавного(градиентного) ухода текста, т.е. положить сверху див в png с градиентным фоном. Получается, что нужно два дива одинаковой высоты, т.к. контент тянется (что уже напрягает), плюс див с градиентом должен лежать поверх дива с контентом.

Дабы не возникало вопросов по поводу "коммерческого отдела" выкладываю код и изображение.

<style type="text/css">
div.round-box {background: url('i/t.gif') 0 0 repeat-x; height: 100%;}
div.round-box .line-l {background: url('i/l.gif') 0 0 repeat-y;}
div.round-box .line-r {background: url('i/r.gif') 100% 0 repeat-y;}
div.round-box .line-b {background: url('i/b.gif') 0 100% repeat-x;}
div.round-box .tl {background: url('i/tl.gif') 0 0 no-repeat;}
div.round-box .tr {background: url('i/tr.gif') 100% 0 no-repeat;}
div.round-box .bl {background: url('i/bl.gif') 0 100% no-repeat;}
div.round-box .br {background: url('i/br.gif') 100% 100% no-repeat; padding: 20px;}
div.round-box .content {padding: 15px 70px 15px 15px; background: url('i/overflow.png') repeat-y 100% 0;}
div.round-box .content div.l {overflow: hidden;}
</style>


<div class="round-box">
<div class="line-l"><div class="line-r"><div class="line-b">
<div class="tl"><div class="tr"><div class="bl"><div class="br">
<div class="content">
<div class="l">В 2007-м досрочный уход из профессионального тура 4-й ракетки мира Ким Клийстерс стал сенсацией. Или не стал. Уже и не припомнить. Много мячей с тех пор улетело, да и суперзвездой Клийстерс все-таки не была. И кто бы мог подумать, что, вернувшись два года спустя совсем взрослой женщиной, Ким с таким изяществом примерит на себя статус «icon».</div>
</div></div></div></div>
</div></div></div></div>

229977e26a1d8a04c32c66b3a00c5c17.jpg

Буду признателен за помощь!

Link to comment
Share on other sites

20 answers to this question

Recommended Posts

  • 0
А просто сделать правым фоном нельзя? Один блок, фон справа тянется сверху вниз?

В принципе сейчас так и осуществленно, только увы не работает прозрачность png фона, на втором примере в скриншоте это заметно, даже если поставить transparent в background.

div.round-box .content {padding: 15px 70px 15px 15px; background: url('i/overflow.png') repeat-y 100% 0;}

блок с пнг на абсолют. Ему top, right, bottom, для ие6 експрешн который высоту ему будет задавать отсчитывая от родителя.

и он будет тянуться по горизонтали и вертикали в зависимости от контента?

Link to comment
Share on other sites

  • 0
В принципе сейчас так и осуществленно, только увы не работает прозрачность png фона, на втором примере в скриншоте это заметно, даже если поставить transparent в background.

div.round-box .content {padding: 15px 70px 15px 15px; background: url('i/overflow.png') repeat-y 100% 0;}

и он будет тянуться по горизонтали и вертикали в зависимости от контента?

Да, но только нужен экспрешан

height: expression(this.parentNode.offsetHeight+142+'px');}

Такой, тока выстави нужные отступы или без них

Link to comment
Share on other sites

  • 0
и он будет тянуться по горизонтали и вертикали в зависимости от контента?

по вертикали будет. Насчет по горизонтали - я на твоем скрине неувидел что по горизонтале пнг должен тянутся.

Edited by mishka2
Link to comment
Share on other sites

  • 0
по вертикали будет. Насчет по горизонтали - я на твоем скрине неувидел что по горизонтале пнг должен тянутся по горизонтале.

Он наверное это и имел ввиду

Link to comment
Share on other sites

  • 0
Он наверное это и имел ввиду

да, именно это.

не могу врубиться... блок добавил, правило добавил, что не так делаю?

<style>
div.round-box {background: url('i/t.gif') 0 0 repeat-x; height: 100%; border: 0px solid red;}
div.round-box .line-l {background: url('i/l.gif') 0 0 repeat-y;}
div.round-box .line-r {background: url('i/r.gif') 100% 0 repeat-y;}
div.round-box .line-b {background: url('i/b.gif') 0 100% repeat-x;}
div.round-box .tl {background: url('i/tl.gif') 0 0 no-repeat;}
div.round-box .tr {background: url('i/tr.gif') 100% 0 no-repeat;}
div.round-box .bl {background: url('i/bl.gif') 0 100% no-repeat;}
div.round-box .br {background: url('i/br.gif') 100% 100% no-repeat; padding: 20px;}

div#test {position: absolute; width: 70px; height: 100%; top: 0; right: 0; bottom: 0; background: transparent url('i/overflow.png') repeat-y 100% 0;}

div.round-box .content {padding: 15px 70px 15px 15px; background: transparent url('i/overflow.png') repeat-y 100% 0;}
div.round-box .content div.l {overflow: hidden;}
</style>

<div class="round-box">
<div class="line-l"><div class="line-r"><div class="line-b">
<div class="tl"><div class="tr"><div class="bl"><div class="br">

<div id="test"></div>

<div class="content">
<div class="l">В 2007-м досрочный уход из профессионального тура 4-й ракетки мира Ким Клийстерс стал сенсацией. Или не стал. Уже и не припомнить. Много мячей с тех пор улетело, да и суперзвездой Клийстерс все-таки не была. И кто бы мог подумать, что, вернувшись два года спустя совсем взрослой женщиной, Ким с таким изяществом примерит на себя статус «icon».</div>
</div></div></div></div>
</div></div></div></div>

Вобщет смотрю на задумку... Чтото мне вообще ненравится идея обрезать текст да еще и пнгешкой закрывать.

это достаточно стандартно, с помощью таблиц легко осуществить, как в новой почте Яндекса, например.

Edited by rb88
Link to comment
Share on other sites

  • 0
это достаточно стандартно, с помощью таблиц легко осуществить, как в новой почте Яндекса, например.

Я не про реализацию говорю. Блоками это тоже легко сделать. Я говорю вообще про саму идею обрезать и скрыть кусок текста.

Link to comment
Share on other sites

  • 0

Разобрался! Спасибо большое, парни!

Я не про реализацию говорю. Блоками это тоже легко сделать. Я говорю вообще про саму идею обрезать и скрыть кусок текста.

А чем смущает, в принципе?

Link to comment
Share on other sites

  • 0
Разобрался! Спасибо большое, парни!

А чем смущает, в принципе?

Да, если будет возможность, то лучше не прячь текст прям, а сделай тень так, чтобы она плавно уходила под текст, и на крайняк сделай фикс ширину, чтобы этого не нарушить.

Link to comment
Share on other sites

  • 0
Согласен с mishka2, какой-то это отстой - прятать текст под градиент... Как его читать то?

Есть вариант сделать градиент нижним слоем, и зафиксить внизу прям в блоке див. Далее текст просто всегда будет плавно уходить в градиент, вот эта вещь покрасивее. А то что сбоку, это конеш не прикольно.

Link to comment
Share on other sites

  • 0
Я не про реализацию говорю. Блоками это тоже легко сделать. Я говорю вообще про саму идею обрезать и скрыть кусок текста.

Ну если это не основной контент — то почему бы нет.

Хороший пример со списком писем, тут по-моему хуже будет допустить горизонтальный скролл, чем скрыть часть процитированной первой строки письма.

Если блок имеет какую-то разумную высоту, то можно задать высоту «обрезалки» с запасом, абсолютно спозиционировать ее и скрыть лишнее с помощью overflow.

Link to comment
Share on other sites

  • 0
Не, наверна была мысль типа уходит текст в небытие, но не откровенно. а вроде как со смыслом.

Ваще неюзабельный прием, на мой взгляд.

Вот такая тема короче, только по круче надо сделать

http://psywalker.ru/Forum/Shadow_bg_bottom/main.html

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy