Для двух браузеров 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 ?
И когда стандарты восторжествуют ?
Есть стандарт, требующий запоминать оригинальное значение для каждого свойства? (Я действительно не в курсе. )
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
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 ?
или это так, на всякий случай ?
Отредактировано Van (24-05-2013 20:53:22)
Отсутствует
Ну так 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 (24-05-2013 21:36:07)
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
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 (14-06-2013 15:48:21)
Отсутствует
Van
google: javascript rgb to hex -> http://stackoverflow.com/a/4090628
// Писать цвет естественно можно в любом формате.
// У вас всё равно будет несовместимость из-за отсутствия в ie getComputedStyle.
Отсутствует
Как перевести rgb to hex, и наоборот, и в по отдельности обработать каждую составляющую все это можно найти, google поможет.
Но вопрос остается.
Какое самое простое решение задачи присвоения цвета блоку, (КРОССБРАУЗЕРНОЕ)
если на странице html в body ничего нет, и с помощью js динамически создается блок и цвет?
(с тем чтобы далее тем же скриптом, к примеру, красную составляющую уменьшить в 2 раза, через секунду, ну или увеличить)
Отредактировано Van (14-06-2013 17:15:18)
Отсутствует
Какое самое простое решение задачи
Подождать меньше года пока закончится поддержка xp и забыть про ie8:)
А кроссбраузерное решение, как обычно сводится к костылю для IE8. Костыль и приведён выше.
Можно в принципе создать атрибут, куда прописать цвет в желаемом формате, впрочем это ещё корявей.
задачи присвоения цвета блоку
В этом то как раз проблемы нет. А вот получаемое значение цвета придётся конвертировать.
Отсутствует
2013 !
За 20 есть ли прогресс?
Читаю на "хабре" :
"Сегодня, верстая один макет, я, кажется, изобрел очередной небезынтересный способ вертикального выравнивания блока относительно родительского. Он не основан на превращении блоков в ячейки таблицы и не использует css-свойство position." и т .д.
Так вот меня очень интересует, последние годы образовательный уровень учащегося люда естественно вырос,
но так как и прежде невозможно написать самые элементарные веб-страницы быстро и просто, и так чтобы и кода поменьше, и во всех браузерах css отображался так как и хочется.
С цветом разбирались, прозрачность вообще лучше и не трогать, а вот выравнивание контента посередине,
выравнивание текста внутри блока,
по горизонтали, по вертикали,
центрирование, а если не по центру да еще и в процентах, или в пикселях,
и снова изобретать, или лазить по гуглу и яндексу? А что магистры, маги дикобраузерные, за 20 последних лет ничего не придумали такого единого, стандартного, приемлемого, простого ?
Отсутствует
Ну, что-то в этом есть. Давным давно же существуют визуальные редакторы, Делфи тот же и не такой плохой код генерируют, вроде. А вот визуальные редакторы веба такое генерят, что с одного взгляда дыхание прехватывает. И в стандартах до сих пор задница, сплошная семантика и свистоперделки. Правда новую модель flex-box ещё не изучал, может она все проблемы решает, но в любом случае ооооочень долго в вебе одни проблемы костыльные.
Отсутствует
о, Вы защитник разнообразия !
Сменить говорите, так вот же и пробую
Всегда стороной обходил эти самые стили, оставляя это другим, а теперь любопытно стало, как же там все таки дела обстоят, в этом самом css. Пока вижу, похоже что все довольны положением дел, зубрят кроссбраузерные варианты всевозможных решений то для js, то для css, ИЗОбретают свои костыли то для ie, то для chrome (для него поменьше конечно), или повсеместно пользуют УНИверсальные то jquery, то еще что, не менее УНИверсальное и потому оч многострочное, и настолько универсальное что этому место не в отдельном скрипте, а в самом браузере. Вы не задумывались над этим?
Уровень знаний вырос или наоборот упал - возможно Вы и правы, если смотреть в школьный журнал отметок, а если сравнить
заявки публикуемые на ALLLANCE.COM хотя бы пару лет назад и сейчас, разница есть.
Отсутствует
Веб-разработке - тема для самостоятельного обучения, не та стезя, где знания десятилетиями не устаревают. Нужны только мозги, инет и поисковики, этого достаточно для начала.
Пока вижу, похоже что все довольны положением дел, зубрят кроссбраузерные варианты всевозможных решений........
А где нет таких проблем? С визуальной частью, правда, да, несколько хуже, чем в других сферах программирования.
На своём уютненьком сервере, где ты царь, наверно, лучше, только оно всё не кросс-чего-то там.
Отредактировано KooL (22-06-2013 01:22:53)
Отсутствует
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, но это же самое интересное
Знания, так это же прогресс надо понимать, а кроссбраузерность это что, это мытарства в части приведения к одному и тому же результату того, что было придумаано еще позапозавчера. Пополнять знания, т.е. мудрость человечества, обязательно, а вот обязательны ли мытарства, мученичество и самопожертвование, иначе назвать невозможно т.к. это жизнь. Она одна. Браузеров много.
Отсутствует
веб-дизайнер
Есть.
есть дизайнер чья задача нарисовать эскиз сайта в фотошопе с описанием функционала
Вот как раз таких не нужно, они не макет сайта делают, они картину малюют и придумывают для неё свистоперделки, совершенно не думая о технической стороне и удобстве использования.
Нормальный дизайнер сайтов должен знать хотя бы основы хтмл и цсс, понимать, как это работает, какие ограничения имеются...
Должен уметь интерфейс проектировать.
А ваше описание, это не дизайнер даже, это иллюстратор.
И функционал - это из математики. Правильно функциональность)
Отредактировано KooL (22-06-2013 05:09:30)
Отсутствует
а вот кодер должен уметь грамотно реализовать эту задумку и если в результате получилось Г то очень легко понять кто виноват - если всё тормозит то виноват кодер если сам дизайн неудобен то дизайнер.
Забавно. Это я такое слышу от человека, который говорит, что в вебе давно всё нужное сделано, ФФ 3, самое оно, ФФ 3.6 просто верх пилотажа всего нужного. Напридумывают вам и будете всё это сидеть под ИЕ 8 делать или лучше под ИЕ 6, узнаете всё свою некомпетентность.
математическое значение этого слова это не значит что нет других значений
Нет, увы.
Отсутствует
пруфлинк плиз где я это говорил.
из полезного сейчас уже мало что появляется а вот дурацкого выпендрёжа полно.
А выпендрёж такие "дизайнеры" и будут лепить, это ж так криативна.
Отсутствует
Война браузеров,
вовсе не война браузеров между собой за популярность, за право быть первым у юзера,
но война с веб-программистами.
okkamas_knife 6136 сообщений на этом сайте, это сколько ж раз человек сталкивался с тупостью браузеров, что то пояснял людям интересующимся, выручал их. А если бы браузеры не выкидывали коники практически во всех пунктах, правилах, опциях, или если хотя бы сейчас все упорядочилось, и пропало слово кроссбраузерность, думаю настал бы прорыв в вебе. И сайты энергичнее стали бы, и динамичнее, и симпатичнее, и пришло бы кино на страницы, не флеш, но интерактивное, рисованное, без пауз и без секунд перезагрузки, без шаблонов на все страницы, без перегрузки рекламой, без твитов и внешних коунтеров, и т.д. и т.п.
Добавлено 22-06-2013 12:11:08
ага, а потом любуемся на мешанину выдаваемую с отключенным js.
Отключил js, сам себя урезал, убрал то, что для тебя приготовили, для тебя же старались. Ну тогда и получи текст без формата, вместо картинок превьюшки, черно белые, мутные, не четкие, в общем специально плохие, и никакой интерактивности, анимации и прочих вкусностей. Отключил js, так отключи еще и цсс, живи по полной
А мешанины не будет, потому что текст на странице изложен последовательно.
Отредактировано Van (22-06-2013 12:11:08)
Отсутствует