Наглядный пример iCss файла можно увидеть здесь.

Возможности iCss
Арифметика при объявлении констант можно использовать арифметические выражения (+,-,*,/)
Пример 1. Объявляем новую константу, которая = 10px

  !c_my1: 10px; // объявляем константу
Пример 2. Используем арифметическое выражение

  !c_my1: 10px;
  !c_my2: !c_my1 + 30px; // !c_my2 = 40px;
Внимание: Арифметические выражения работают только при объявлении констант.
Сокращение селекторов т.к. частенько наименования селекторов дублируются, мы решили включить возможность сокращения селекторов следующим образом...
Пример. Сокращение селекторов происходит с помощью символа тире "-"

  .topMenu { width: 693px; }
            
            - a { display:block; float: left; color: black }
            /* вместо "-" будет подставляться селектор ".topMenu",
            т.е. это равно сильно .topMenu a {} */
            
            - a.selected { color: white; background: green; }
            // здесь тоже самое и т.д.
            
            - a:hover { color: white; background: green; }
            - span { width: 12px; height: 52px; background: gray; }
Анимация

Пример 1. При первом нажатии плавное изменение высоты блока до 200px в течении 2000 милисекунд. При втором - изменение высоты блока до 500px в течении 1000 милисекунд (зн-е по-умолчанию)

  div:toggle { animation: "height:200" "during:2000" }
  div:toggle { animation: "height:500" }
Пример 2. Плавное исчезание блока в течении 2000 милисекунд после загрузки страницы

  div { animation: fadeOut 2000 }
Пример 3. Плавное появление блока в течении 2500 милисекунд после загрузки страницы

  div { display: none; animation: fadeIn 2500 }
Углы

Пример 1. У блока с классом "corner" будут закругленные углы с диаметром в 10px.

  div.corner { corner: 10px; }
Пример 2. У блока с классом "corner" будут закругленные углы с диаметром в 10px только с левой стороны.

  div.corner { corner: tl bl 10px; }
Пример 3. У блока с классом "corner" будут закругленные углы с диаметром в 10px, но у нижнего-левого угла будет немного другой вид.

  div.corner { corner: br top 10; corner: bevel bl 20px; }

Более подробно о свойстве можно узнать на странице плагина corners: http://malsup.com/jquery/corner/, т.к. это свойство реализованое на базе этого плагина.
Исправляем баги Internet Explorer .. ох, как он всем надоел
Пример 1. Кроссбраурзерный opacity (прозрачность), который будет работать в IE.

  div.corner { opacity: 0.5; }
Пример 2. Position = fixed работает и в IE 6

  div.corner { position: fixed; top: 10px; left: 20px; }
Пример 3. Все свойства max & min - width & height работают и в IE 6

  div.corner { min-height: 200px;
               min-width: 300px;
               max-height: 400px;
               max-width: 500px; }
Также реализована поддержка полупрозрачности PNG в IE6.
Константы очень удобная вещь, которой не хватает многим разработчикам.
Пример 1. Объявляем новую константу, которая = серому цвету - #E9E9E9

  !c_gray: #E9E9E9;
Пример 2. Применение константы для цвета заднего фона блока, константа = #E9E9E9

  div.gray { background-color: !c_gray; }
Пример 3. Константы как список свойств...

  !my_props: "position: absolute; top: 10px; left: 30px;";
  
  div.props { !my_props;
              color: gray; }
Система событий реализация событий в icss похожа на псевдо стили в css, а сами они реализованы с помощью JavaScript.
Пример 1. Событие click - нажатие курсором на блок, при нажатии блок становится черным

  div { background: white; }
  div:click { background: black; }
Пример 2. На событие можно назначить какую нибудь анимацию например. Наш блок плавно исчезнет в течении 500 милисекунд при нажатии.

  div { background: black; }
  div:click { animation: fadeOut 500; }
Пример 3. Toggle - событие "переключатель", это особое событие. При первом нажатии у нас будет черный блок, при втором - красный, при третьем - белый, а дальше снова по кругу.

  div:toggle { background: black; }
  div:toggle { background: red; }
  div:toggle { background: white; }
Пример 4. Hoverex - событие javascript, аналог css hover. Метод работы похож на toggle. При наведении у нас будет черный блок, а обратно - красный.

  div:hoverex { background: black; }
  div:hoverex { background: red; }
Пример 5. Также можно отлавливать события мышки. При нажатии клавиши мышки блок станет красным, при отжатии - черным.

  div:mousedown { background: red; }
  div:mouseup { background: black; }
Пример 6. В предыдущих примерах при событии стили применялись к селектору события, но можно применять и к другим селекторам с помощью слова from. При нажатии на ссылку наш блок исчезнет, при следующем нажатии - появится.

  a from div:toggle { display: hide; }
  a from div:toggle { display: show; }
Абстрактные классы эти классы используются в качестве хранения списка css свойств, лучше смотрите примеры
Пример 1. Абстрактный класс объявляется с помощью ключевого слова abstract. Здесь мы объявили класс - my_class.

  abstract.my_class { color: white;
                      font-style: italic;
                      width: 500px; }
Пример 2. Чтобы применить абстрактный класс на селекторе необходимо использовать iCss свойство - style. Здесь у нас блоки приобретут все свойства абстрактного класса my_class.

  abstract.my_class { color: white;
                      font-style: italic;
                      width: 500px; }
                      
  div { style: my_class; }
  div.ex { style: my_class; color: red; }
Пример 3. Абстрактные классы сами могу наследовать свойства других абстрактных классов.

  abstract.my_class { color: white;
                      font-style: italic;
                      width: 500px; }
                      
  abstract.my_s { style: my_class; color: red; }
Пример 4. Наследовать свойства можно у нескольких абстрактных классов, т.е это множественное наследование.

  abstract.my_class { color: white;
                      font-style: italic;
                      width: 500px; }      
  abstract.my_s { color: red; height: 200px; }
  
  div {style: my_class; style: my_s; }

Абстрактные классы ничем не ограничены, в них также можно применять константы, несуществующие css свойства (iCss свойства) и т.д. Эти классы видимы во всех css файлах.
Пользовательские свойства это свойства, объявляемые разработчиком и действуют они на том же механизме как и обычные css свойства.
Пример 1. Пользовательские свойства создаются с помощью слова property. Здесь мы объявили новое свойство my-prop. А затем применили его на практике.

  property.my-prop { color: !param1; background: !param2;  }
  
  div { my-prop: red black; }

Пользовательские свойства это мощный механизм, с помощью которого можно с легкостью создавать плагины для iCss без редактирования php скриптов.

В зоне объявления пользовательского свойства доступны некоторые специфичные константы.

!param1, !param2 .. !paramN - параметры, которые передаются в свойство, параметры разделяются пробелом.
!params_str - весь текст, который передается свойству.
!params_arr - создает строку из пареметров, где все параметры перечесляются через запятую.
!params_hash - создает из строки переданной свойству хеш для javascript следующего вида: {!param1:!value!, !param2:!value2, .. !paramN:!value2}.
Причем название параметров и значения разделяются пробелами, а уже название и пробел разделяются двоеточием, это, естественно, при передачи в свойство. Такой же принцип передачи параметров используется в свойстве animation.

Плагины реализуются с помощью JavaScript, CSS файлов и файла, где объявляются все iCss свойства плагина.
Табы Мы предлагаем очень гибкий механизм, с помощью которого можно реализовать табы любого стиля. Кстати, наш раздел "примеры" реализован с помощью этого механизма.

Таб - это список переключателей, где при нажатии на определенный - появляется соответствующей контент.

Пример 1. Для того чтобы создать табы, необоходимо использовать свойство is-tab. Далее на html-странице нужно реализовать соответствующую схему тегов.

  .tabs { is-tab: true; }
  
  в html следующее...
  
  <ul class="tabs">
    <ul class="active"><a href="#tab1">Таб 1</a></ul>
    <ul><a href="#tab2">Таб 2</a></ul>
    ...
    <ul><a href="#tabN">Таб N</a></ul>
  </ul>
  
  <div id="tab1">tab1 text</div>
  <div id="tab2">tab2 text</div>
  ...
  <div id="tabN">tabN text</div>

Чтобы назначить активный таб, необохидом применить класс active. Также, чтобы контейнеры с текстом табов не появлялись все сразу при загрузке страницы, мы рекомендуем их скрыть с помощью css свойства display.




Copyright © 2009 Dmitriy Zaytsev. SoulStream Team.
Разработка сайтов пишите: dr.kirk@rambler.ru  |  Сайт построен на технологии iCss.