Для двух браузеров IE и Chrome установленный цвет блока можно и установить и поменять, там использованы два варианта записи цвета:
- #012345
- rgb(0,10,255)

Выделить код

Код:

var k=document.getElementById('kp');
k.style.background='#101010';
alert(typeof(k.style.background));  //  string
alert(k.style.background);               // FF   none repeat scroll 0% 0% rgb(10,10,10)

если после того как цвет все же был хоть как то установлен, то прочитав его получаем еще какие то "none repeat scroll 0% 0%" в строке перед искомым "rgb(10,10,10)"

Как можно поменять цвет фона блока в FF ?

Какая красота ! что браузеров не так уж много, а то задолбаться можно с разновидностями.

И когда стандарты восторжествуют ?

Нет, ну это ж надо так понапридумывать, кто во что горазд,
вместо того чтобы над проектом работать, приходится "кроссбраузерностью" заниматься,
так вот почему оказывается подавляющее большинство сайтов однотипно смотрятся - кому охота заморачиваться с изысками, с новыми идеями дизайна, динамичностью и прочая и прочая. Составителю сайта вполне нормально хочется, чтобы все посетители сайта, его нормально могли видеть, и тут на тебе "кроссбраузерность". Вот и возникло требование именуемое опытом работы, измеряемое в годах, вот так "кроссбраузерность".
В разных движках подходы использованы разные, это хорошо, это разные возможности,
но можно же как то все эти эти возможности подрихтовать в таких пустяках, как содержание строки, привести к нормальному виду хотя бы, и было бы и вовсе счастие :)
Когда то тормозила Опера, но сейчас Опера класс!
Что там в новых версиях FF, "кроссбраузерность" остается ?

Выделить код

Код:

if(color.indexOf('rgb')>-1){
  color=color.substr(color.indexOf('rgb'),2013);  // строка совершенно лишняя и неправильная
}else{
 ...
}

style.backgroundColor ?

Van пишет

И когда стандарты восторжествуют ?

Есть стандарт, требующий запоминать оригинальное значение для каждого свойства? (Я действительно не в курсе. :))

style.background <-> style.backgroundColor =====> style.background  (так типа проще как бы, для запоминания)

Полное разнообразие, куда там запомнить...
тут опыт нужен, многолетний.

style.background <-> style.backgroundColor2
style.background <-> style.backgroundColorType2
style.background <-> style.backgroundColorDrink
...
background-сolor
сolor
style.background <-> style.backgroundColorDrinkDrinkDrink      ^-|-^

24-05-2013 20:53:22
В FF:

style.backgroundColor - работает.

А вот что показывает тогда  style.background ?
или это так, на всякий случай ?

Ну так https://developer.mozilla.org/en-US/doc … background и https://developer.mozilla.org/en-US/doc … ound-color.

24-05-2013 21:36:07
Впрочем, нашлось и вот такое:
https://developer.mozilla.org/en-US/doc … ment.style
=> http://www.w3.org/TR/DOM-Level-2-Style/ … nlineStyle

When dealing with CSS "shorthand" properties, the shorthand properties should be decomposed into their component longhand properties as appropriate, and when querying for their value, the form returned should be the shortest form exactly equivalent to the declarations made in the ruleset. However, if there is no shorthand declaration that could be added to the ruleset without changing in any way the rules already declared in the ruleset (i.e., by adding longhand rules that were previously not declared in the ruleset), then the empty string should be returned for the shorthand property.

For example, querying for the font property should not return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt Arial, sans-serif" suffices. (The normals are initial values, and are implied by use of the longhand property.)

Infocatcher спасибо! и за разъяснение и за ссылки.
Вы явно ближе к FF, чем я,
скажите, а лучше было бы если бы, ну предположим, пропало, исчезло из обихода, и осталось в истории, в архивах, слово "кроссбраузерность" ? Ну вот так не проще ли было бы запомнить, не тратя пол-жизни, минимум годы, на разнообразие браузеров, те несколько свойств, атрибутов, методов, функций.
Сравнимо ли количество программистов, пишущих для браузеров, с количеством программистов пишущих эти браузеры?
Стандарты, так есть же сантиметры, секунды, мир ими пользуется, подход един, все понятно, а с браузерами все наоборот, хотя программистам, пишущим браузеры надо отдать должное, люди они грамотные, но неужели им так нравится слово "кроссбраузерность", или выгодно, или чего не понимают. Похоже выгодно, а то бы все враз стали программистами, с большой буквы, коими сейчас являются только они. Монополия :)

Работа мастера не видна,
вот и с браузерами и с "кроссбраузерностью" должно быть так,
иначе так как сейчас.

Например,
почему у меня достаточно быстро получились варианты с IE, Chrome, и почему застрял с FF, да все от того же, от "кроссбраузерА",
от малого опыта, о котором говорилось, ну и естественно от лени, природной :)

Нет, ну все таки, скажите как установить цвет, например блоку, с помощью style.backgroundColor
не обращаясь к специальным функциям типа navigator.appName  ?

Какое будет самое простое решение этой задачи, если на странице html в body ничего нет кроме js, с помощью которого динамически создается блок, и ему нужен цвет?


При том что
IE и Opera хранят информацию в формате #xxxxxx,
Firefox и Chrome – в формате rgb(xxx, xxx, xxx).

Выделить код

Код:

if(typeof(document.getElementsByTagName("body")[0].getAttribute("className"))==='string')alert('kaleka');
else alert('opa-opa три прихлопа');

При том что:
IE 8 остался один, а
Firefox и Chrome  и теперь и Opera в другой группе, а везде же написано IE и Opera хранят информацию в формате #xxxxxx

Без JQuery ни тпру ни ну.  Ну так влепили бы в свои браузеры в натив этот самый JQuery.

Van
google: javascript rgb to hex -> http://stackoverflow.com/a/4090628

// Писать цвет естественно можно в любом формате.
// У вас всё равно будет несовместимость из-за отсутствия в ie getComputedStyle.

Как перевести rgb to hex, и наоборот, и в по отдельности обработать каждую составляющую все это можно найти, google поможет.
Но вопрос остается.

Какое самое простое решение задачи присвоения цвета блоку,  (КРОССБРАУЗЕРНОЕ)
если на странице html в body ничего нет, и с помощью js динамически создается блок и цвет?

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

Какое самое простое решение задачи

Подождать меньше года пока закончится поддержка xp и забыть про ie8:)

А кроссбраузерное решение, как обычно сводится к костылю для IE8. Костыль и приведён выше.
Можно в принципе создать атрибут, куда прописать цвет в желаемом формате, впрочем это ещё корявей.

задачи присвоения цвета блоку

В этом то как раз проблемы нет. А вот получаемое значение цвета придётся конвертировать.

Итак, в ответ слову "кроссбраузерность" открыть движение

"Охота на дикобраузеров"

и с корявым будет покончено.   Конец дикобраузерам!   :)

2013 !
За 20 есть ли прогресс?

Читаю на "хабре" :
"Сегодня, верстая один макет, я, кажется, изобрел очередной небезынтересный способ вертикального выравнивания блока относительно родительского. Он не основан на превращении блоков в ячейки таблицы и не использует css-свойство position." и т .д.

Так вот меня очень интересует, последние годы образовательный уровень учащегося люда естественно вырос,
но так как и прежде невозможно написать самые элементарные веб-страницы быстро и просто, и так чтобы и кода поменьше, и во всех браузерах css отображался так как и хочется.
С цветом разбирались, прозрачность вообще лучше и не трогать, а вот выравнивание контента посередине,
выравнивание текста внутри блока,
по горизонтали, по вертикали,
центрирование, а если не по центру да еще и в процентах, или в пикселях,
и снова изобретать, или лазить по гуглу и яндексу? А что магистры, маги дикобраузерные, за 20 последних лет ничего не придумали такого единого, стандартного, приемлемого, простого ?

Ну, что-то в этом есть. Давным давно же существуют визуальные редакторы, Делфи тот же и не такой плохой код генерируют, вроде. А вот визуальные редакторы веба такое генерят, что с одного взгляда дыхание прехватывает. И в стандартах до сих пор задница, сплошная семантика и свистоперделки. Правда новую модель flex-box ещё не изучал, может она все проблемы решает, но в любом случае ооооочень долго в вебе одни проблемы костыльные.

о, Вы защитник разнообразия !

Сменить говорите, так вот же и пробую :)
Всегда стороной обходил эти самые стили, оставляя это другим, а теперь любопытно стало, как же там все таки дела обстоят, в этом самом css. Пока вижу, похоже что все довольны положением дел, зубрят кроссбраузерные варианты всевозможных решений то для js, то для css, ИЗОбретают свои костыли то для ie, то для chrome (для него поменьше конечно), или повсеместно пользуют УНИверсальные то jquery, то еще что, не менее УНИверсальное и потому оч многострочное, и настолько универсальное что этому место не в отдельном скрипте, а в самом браузере. Вы не задумывались над этим?
Уровень знаний вырос или наоборот упал - возможно Вы и правы, если смотреть в школьный журнал отметок, а если сравнить
заявки публикуемые на ALLLANCE.COM хотя бы пару лет назад и сейчас, разница есть.

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

Van пишет

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

А где нет таких проблем? С визуальной частью, правда, да, несколько хуже, чем в других сферах программирования.
На своём уютненьком сервере, где ты царь, наверно, лучше, только оно всё не кросс-чего-то там.

okkamas_knife, как Вы скажете, я тут придумал нечто по части css, и слово кроссбраузерный хоть чуточку будет менее значимым:
1. Из html выкидываем строку <link rel="stylesheet" type="text/css" href="style/Moz-ie-Chrome.css" />
2. С помощью js вычисляем размеры доступные для страницы, и все блоки позиционируем в абсолютном формате с учетом их высоты, ширины для начала.
Другими словами выполняем работу ту, что должен делать браузер. Любой браузер. Вот какая сейчас версия FF, Opera, Chrome, а воз и ныне там, это я по поводу вертикального выравнивания, т.е. как выровнять одной строкой по вертикали многострочный текст? вот моя сегодняшняя задачка для поиска в google, пока все найденные мной решения не укладываются в одну строку.

KooL - Вы абсолютно правы, в других сферах программирования нет слова кроссбраузер, правда там нет и слова браузер.
Это все только в css / js, но это же самое интересное :)
Знания, так это же прогресс надо понимать, а кроссбраузерность это что, это мытарства в части приведения к одному и тому же результату того, что было придумаано еще позапозавчера. Пополнять знания, т.е. мудрость человечества, обязательно, а вот обязательны ли мытарства, мученичество и самопожертвование, иначе назвать невозможно т.к. это жизнь. Она одна. Браузеров много.

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

okkamas_knife пишет

веб-дизайнер

Есть.

okkamas_knife пишет

есть дизайнер чья задача нарисовать эскиз сайта в фотошопе с описанием функционала

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

И функционал - это из математики. Правильно функциональность)

okkamas_knife пишет

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

Забавно. Это я такое слышу от человека, который говорит, что в вебе давно всё нужное сделано, ФФ 3, самое оно, ФФ 3.6 просто верх пилотажа всего нужного. Напридумывают вам и будете всё это сидеть под ИЕ 8 делать или лучше под ИЕ 6, узнаете всё свою некомпетентность.

okkamas_knife пишет

математическое значение этого слова это не значит что нет других значений

Нет, увы.

okkamas_knife пишет

пруфлинк плиз где я это говорил.

okkamas_knife пишет

из полезного сейчас уже мало что появляется а вот дурацкого выпендрёжа полно.

А выпендрёж такие "дизайнеры" и будут лепить, это ж так криативна.

Война браузеров,
вовсе не война браузеров между собой за популярность, за право быть первым у юзера,
но война с веб-программистами.
okkamas_knife 6136 сообщений на этом сайте, это сколько ж раз человек сталкивался с тупостью браузеров, что то пояснял людям интересующимся, выручал их. А если бы браузеры не выкидывали коники практически во всех пунктах, правилах, опциях, или если хотя бы сейчас все упорядочилось, и пропало слово кроссбраузерность, думаю настал бы прорыв в вебе. И сайты энергичнее стали бы, и динамичнее, и симпатичнее, и пришло бы кино на страницы, не флеш, но интерактивное, рисованное, без пауз и без секунд перезагрузки, без шаблонов на все страницы, без перегрузки рекламой, без твитов и внешних коунтеров, и т.д. и т.п.

22-06-2013 12:11:08

ага, а потом любуемся на мешанину выдаваемую с отключенным js.

Отключил js, сам себя урезал, убрал то, что для тебя приготовили, для тебя же старались. Ну тогда и получи текст без формата, вместо картинок превьюшки, черно белые, мутные, не четкие, в общем специально плохие, и никакой интерактивности, анимации и прочих вкусностей. Отключил js, так отключи еще и цсс, живи по полной :)
А мешанины не будет, потому что текст на странице изложен последовательно.

Не нужно вам веб лезть с таким отношением, либо почитайте про всё это наконец.

про это ? про что это, про кроссбраузерность что ли ?

Вам ссылочку на мой сайт с абсолютным позиционированием?

Определенно вам нравится кроссбраузерность :lol:

Ну тогда понятно почему все так как сейчас !
Шаблоны в головах, шаблоны на сайтах, статика полнейшая, а Мысль не должна топтаться на месте.

Van пишет

про это ? про что это, про кроссбраузерность что ли ?

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

Van пишет

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

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

KooL рад слышать что и Вам дикобраузеры не импонируют.
Обычный сайт обязан без скриптов работать - так он же будет работать, только оч примитивно, хотя может даже и полностью,
и конечно с массой переходов по страницам. Беготня.
Интересную анимацию без скриптов, без флеша, хотелось бы глянуть...

22-06-2013 14:16:12

невозможно ничего сделать

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

Van пишет

Интересную анимацию без скриптов, без флеша, хотелось бы глянуть...

Тысячи их: http://ruseller.com/lessons.php?rub=2

Van пишет

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

Оно уже есть, чего говорить-то? Если все современные браузеры брать последних версий, то всё очень даже неплохо совместимо.

Анимация то ж мультики,
на ruseller.com что то не нашел пока ничего подобного, наверно не все демо просмотрел :) хотя можно наверно назвать их тоже анимацией. Вот телевизор Вы смотрите, он правда не интерактивный, но все же красиво, правда? почему бы так не создать сайт, да еще и с ajax. Непросто. Но с кросбр. еще сложнее и наверно сегодня вообще невозможно.

А главное ненужно.

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

все современные браузеры брать последних версий, то всё очень даже неплохо совместимо

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

И Вы не пишете что либо подобное:

Выделить код

Код:

var crossbr=function(a,z){
 if(supportsTransforms){
  a.style.transition='transform 0.8s ease';
  a.style.OTransition='-o-transform 0.8s ease';
  a.style.msTransition='-ms-transform 0.8s ease';
  a.style.MozTransition='-moz-transform 0.8s ease';
  a.style.WebkitTransition='-webkit-transform 0.8s ease';
  var t='scale('+z+')';
  a.style.transform=t;
  a.style.OTransform=t;
  a.style.msTransform=t;
  a.style.MozTransform=t;
  a.style.WebkitTransform=t;
 }else 
 a.style.zoom=z
}

Нет чтобы прямо сказать, но родном Вам языке, "Мне не нравится слово кроссбраузерность".

Бросьте вы это дело, раз не нравится, занимайтесь серверами.

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

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

22-06-2013 16:21:52
Сохраняйте спокойствие, прошу Вас!

Мне очень много всего не нравится.