Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   Св-во text-shadow в IE-7,8,9. (https://javascript.ru/forum/xhtml-html-css/30583-sv-vo-text-shadow-v-ie-7-8-9-a.html)

Mike_Kharkov 09.08.2012 08:43

Св-во text-shadow в IE-7,8,9.
 
Здравствуйте. На данный момент нахожусь в стадии изучения сss3 и меня интересует следующий вопрос:
Существуют ли механизмы идеального дублирования(и визуального отображения) св-ва 'text-shadow' для IE ? (со скриптами или без них...)
P.S. Буду благодарен за любые ответы...

Aetae 09.08.2012 10:38

За такой - не будешь, и очень зря, ибо он самый верный для подобных вопросов:
/google text-shadow IE6

Mike_Kharkov 09.08.2012 11:49

Спасибо. Но меня интересовали практические рекомендации верстальщиков...
То есть какие обходные пути, на сегодняшний день, являются наиболее рациональными?
(То есть скрипты, хаки или ещё какие нибудь варианты...)
P.S. Вряд ли гугл мне даст ответы на эти вопросы...
(не говоря уже о том, что для чего то же существует данный форум?)

Aetae 09.08.2012 12:03

Данный форум существует:
1. Для общения.
2. Для решения и обсуждения интересных и нестандартных вопросв и задач.
3. Для того чтобы убить время.
4. Для того чтобы помочь из жалости в простеших вопрсах.
5. Для того чтоб набраться опыта.
6. for lulz

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

Всётаки пройдите по первой ссылке гугла: http://habrahabr.ru/qa/8650/ .

Mike_Kharkov 09.08.2012 12:08

Вы хоть сами то читали ту ссылку, что скинули?
Я прочитал не одну такую. Понял что большинство(если не все) реализации являются некачественными, c точки зрения отображения...
Поэтому и обратился за помощью на форум...
P.S. Если этот форум не предназначен для ответов на столь 'примитивные' вопросы - значит буду искать другие варианты...
(только не стоит помогать мне из жалости... :) )

Aetae 09.08.2012 13:58

Лично моя позиция такова:
Ie не поддерживат?
Обойдуться без %название_свистоперделки%. Естественно с сохранением базового функционала.

Идиеальной реализация не может быть вприципе, просто потому, что делать иначе, чем через жопу - невозможно. И это понятно любому.

melky 09.08.2012 22:10

Цитата:

Сообщение от Aetae
Обойдуться без %название_свистоперделки%. Естественно с сохранением базового функционала.

полностью согласен!

я написал когда-то говнокод, может быть, подойдёт ТС :

помню, что когда тестил его, выглядело сносно - т.е. так же, как и в w3c'шных браузерах.
тут отсутствуют некоторые функции, что делает код незапускаемым ... но Вам ведь понять просто надо, да ?)
// TEXT-SHADOW SUPPORT MODULE 
		textShadow : {
			get: function(element, computed, extra){
				return element.style.textShadow;
			},
			set: function(element, value){

				var $el = $(element),
						blur,
						color,
						zIndex = $el.css("zIndex"),
						progid = "progid:DXImageTransform.Microsoft.",
						filterStr = [],
						alpha,
						valueStr = value;

				value = value.match(/^(\d+)(?:px)? (\d+)(?:px)? (\d+)(?:px)? ([a-z]+|#(?:[a-f0-9]{3}){1,2}|\w+\((?:,?\s*[\d.]{1,3}){3,4}\))$/i);

				if (!value) { // некорректная строка text-shadow.
					return;
				}
				blur = parseFloat(value[3]);
				value[4] = removeSpaces(value[4]);
				color = toHEX(value[4]);
				alpha = getAlpha(value[4]);

				if (!color) { // передан некорректный цвет
					return;
				}

				element.style.textShadow = valueStr;

				if (blur) {
					filterStr.push(progid + "Blur(pixelRadius=" + blur.toFixed(1) + ")");
				}
				if (alpha !== 1.0) {
					filterStr.push(progid + "Alpha(opacity=" + alpha * 100 + ")");
				}

				filterStr = filterStr.join(" ");

				if (zIndex === "auto") {
					zIndex = 0;
				}
				
				$el
					.css({"position": "relative", zIndex: zIndex, color: $el.css("color")})
						.append('<span class="shadowly"></span>').
							find(".shadowly").
								html($el.html()).
									css({
										position: "absolute", 
										zIndex: zIndex - 1, 
										left: toFloat(value[1]) - blur + "px", 
										top: toFloat(value[2]) - blur + "px", 
										paddingLeft: $el.css("paddingLeft"), 
										paddingTop: $el.css("paddingTop"), 
										color: color,
										width: "100%",

										filter: filterStr
									});
			}
		}

похоже, что был написан как плагин для jQuery :) т.е. как хук для $element.css


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