Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   необычная тень текста (https://javascript.ru/forum/misc/35687-neobychnaya-ten-teksta.html)

zlodiak 18.02.2013 17:55

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

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

Deff 18.02.2013 19:20

http://www.art-shok.ru/tutorials/6-t...ient/demo.html
http://www.art-shok.ru/css/css-gradient-text/

zlodiak 18.02.2013 21:33

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

Deff 18.02.2013 21:40

zlodiak,
Значит сажайте контекст в теги <p> c фоном отличным от заднего и без узора, а уж затем делайте градиент тексту

zlodiak 18.02.2013 23:50

заказчик не оценит) есть макет, утверждён фон. если его не будет даже всего лишь за символами, то придётся переделывать...

или я неверно понял ваш ответ?..

Deff 18.02.2013 23:57

zlodiak,

Moжно наложить плавно упрозрачненный до нуля фон за буквами на верхнюю часть spanа с буквами (ежели фон темнее букв

danik.js 19.02.2013 00:22

Тут бы в тему http://caniuse.com/#search=masks но поддержка ... Может svg поможет?

рони 19.02.2013 01:09

zlodiak,
Вариант ...
<!DOCTYPE HTML>
<html>
<head>
  <title></title>
  <meta charset="utf-8" />
  <style type="text/css">
 div{
   padding: 15px 15px;
   background-color: #030D46;
   text-align: center;
   font: 24px;
   height: 50px;
   width: 700px
 }
   </style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script language="JavaScript" src="http://www.mrnix.ru/pxgradient/pxgradient-1.0.2.jquery.js" type="text/javascript"></script>
</head>
<body>
<div class="text">ВЕДУЩИЙ&nbsp;НА&nbsp;ВАШУ&nbsp;СВАДЬБУ</div>
<script type="text/javascript">
jQuery(function( $ ){
 $(".text").pxgradient({
   step: 10,
  colors: ["#3366CC","#CCCCFF","#FFFFFF"],
   dir: "y"
});});
</script>
</body>
</html>

Deff 19.02.2013 01:13

рони, + (Плусы не ставятся

megaupload 19.02.2013 02:34

Цитата:

Сообщение от Deff
http://www.art-shok.ru/tutorials/6-t...ient/demo.html
http://www.art-shok.ru/css/css-gradient-text/

это чо за бред???????

background:url(gradient_1.png) repeat-x;

какой нах gradient_1.png ??

дальше не читал

zlodiak 19.02.2013 10:54

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

tadjik1 19.02.2013 10:55

а если так попробовать?
http://css-tricks.com/snippets/css/gradient-text/
а для блока текста устанавливаете background-color: transparent.
http://htmlbook.ru/css/background-color


я правда сам не пробовал, и в цсс полный ноль, только осваиваю, но может же заработать?

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

tadjik1 19.02.2013 11:04

<style>
h1#demo {
font-size: 60px;
background: -webkit-linear-gradient(top, #DDD 30%,#000 100%);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>

<h1 id="demo">
Example</h1>


upd. только картинкой :)

zlodiak 19.02.2013 11:15

вот кстати нашёл http://dgreeze.ru/jscript/14-gradienty-dlya-teksta.html

может кому-нибудь тоже пригодится

всем спасибо за помощь

vashurin 19.02.2013 11:25

Цитата:

Сообщение от zlodiak (Сообщение 235459)
вот кстати нашёл http://dgreeze.ru/jscript/14-gradienty-dlya-teksta.html

может кому-нибудь тоже пригодится

всем спасибо за помощь

В принципе, задачу можно решить как то так:
<!DOCTYPE HTML>
<html>
<head>
  <title></title>
  <meta charset="utf-8" />
  <style type="text/css">
 body{
   background-color: #030D46;
   text-align: center;
   font-size: 24px;
   height: 50px;
   width: 700px
 }
 div {
	overflow:hidden;
	position:absolute;
	left: 5px;
	white-space:nowrap;
 }
 .text {
	color: #999;
	height: 17px;
	top:5px;
 }
 .text2 {
	color: #fff;
	height: 9px;
	top:22px
 }
 .text2 span {
	display: block;
	position:relative;
	left:0;
	top:-17px;
	height: 18px;
 }
   </style>
</head>
<body>
<div class="text"><span>Привет мир!</span></div>
<div class="text2"><span>Привет мир!</span></div>
</body>
</html>

Хотя, за ссылку спасибо, вдруг пригодится :)

danik.js 19.02.2013 11:38

Цитата:

Сообщение от vashurin
В принципе, задачу можно решить как то так:

Такой способ уже предлагал рони. Только у него все проще - подключил скрипт, задал опции - и готово :)

vashurin 19.02.2013 11:42

Цитата:

Сообщение от danik.js (Сообщение 235466)
Такой способ уже предлагал рони. Только у него все проще - подключил скрипт, задал опции - и готово :)

Ну автора топика, тот скрипт не устроил (почему то zlodiak не смог задавать цвета без переходов). А тут и скриптов не надо, чистая верстка HTML :).
Хотя, кому, что интереснее.

danik.js 19.02.2013 12:30

Цитата:

Сообщение от vashurin
Хотя, кому, что интереснее.

Я верстальщик. Но я бы выбрал вариант со скриптом. Зачем вручную проделывать всю эту рутинную работу, когда есть готовый скрипт? Да и с точки зрения семантики со скриптом предпочтительней. Еще более предпочтителен вариант с css-mask, но его пока рано применять.

zlodiak 21.02.2013 22:26

к сожалению, уважаемая общественность, ни один из предложенных способов не подходит

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

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

danik.js 21.02.2013 22:52

Цитата:

Сообщение от zlodiak
невозможно количественно регулировать градиент

Всмысле плавный градиент? Да, там только шагами. Да и то, задавать неудобно - там задается не в процентах, а в шагах


Часовой пояс GMT +3, время: 18:41.