Показать сообщение отдельно
  #12 (permalink)  
Старый 15.04.2010, 15:48
Аватар для B~Vladi
Модератор Всея Форума
Отправить личное сообщение для B~Vladi Посмотреть профиль Найти все сообщения от B~Vladi
 
Регистрация: 14.05.2009
Сообщений: 4,021

По поводу CSS градиентов.
Opera - не поддерживает. Нужно использовать Canvas+JavaScript.
Firefox - с версии 3.6 (Январь 2010г. - совсем свежая).
IE - нужно создавать 6 блоков и заливать их цветами, т.к. их мегафильтры умеют генерить градиент только из 2 цветов. К тому же последний нужно позиционировать скриптом.
Safari - всё ок.

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

Кому интересно, вот код. Без оперы.

<style type="text/css">
    html, body{
      margin:0;
      padding:0;
    }
    .colorPicker{
      background-image: -moz-linear-gradient(left, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000);
      background: -webkit-gradient(linear, left top, right top, from(#FF0000), to(#FF0800), color-stop(.1666,#FFFF00),color-stop(.333,#00FF00),color-stop(.5,#00FFFF),color-stop(.666,#0000FF),color-stop(.833,#FF00FF));
      overflow:hidden;
      position:relative;
      height: 20px;
      display:block;
      margin:0;
      padding:0;
    }
    .colorPicker .colorItem{
      display:block;
      float:left;
      width:16.66%;
      height:20px;
    }
    .colorItem.color1{
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffff0000, endColorstr=#ffffff00, GradientType=1)";
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffff0000, endColorstr=#ffffff00, GradientType=1);
    }
    .colorItem.color2{
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff00, endColorstr=#ff00ff00, GradientType=1)";
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffffff00, endColorstr=#ff00ff00, GradientType=1);
    }
    .colorItem.color3{
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff00ff00, endColorstr=#ff00ffff, GradientType=1)";
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff00ff00, endColorstr=#ff00ffff, GradientType=1);
    }
    .colorItem.color4{
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff00ffff, endColorstr=#ff0000ff, GradientType=1)";
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff00ffff, endColorstr=#ff0000ff, GradientType=1);
    }
    .colorItem.color5{
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff0000ff, endColorstr=#ffff00ff, GradientType=1)";
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff0000ff, endColorstr=#ffff00ff, GradientType=1);
    }
    .colorItem.color6{
      -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffff00ff, endColorstr=#ffff0000, GradientType=1)";
      filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ffff00ff, endColorstr=#ffff0000, GradientType=1);
    }
  </style>
  <div class="colorPicker">
    <div class="colorItem color1"></div>
    <div class="colorItem color2"></div>
    <div class="colorItem color3"></div>
    <div class="colorItem color4"></div>
    <div class="colorItem color5"></div>
    <div class="colorItem color6"></div>
  </div>

Последний раз редактировалось B~Vladi, 15.04.2010 в 15:52.
Ответить с цитированием