Программирование на Python и Objective-C в Mac OS

Программирование на Python и Objective-C под Mac OS и для iPhone / iPod Touch

Таблица тарифов css: Выбери свой тариф CSS шаблон

Содержание

Css чередование цветов в таблице – Тарифы на сотовую связь

НазваниеЦенаКоличествоИтого
Кружка$10.005$50.00
Рубашка$20.005$100.00
Ножницы$9.004$36.00
Промежуточный итог$186.00
Доставка$12.00
Всего$198.00

НазваниеЦенаКоличествоИтого
Кружка$10.005$50.00
Рубашка$20.005$100.00
Ножницы$9.004$36.00
Промежуточный итог$186.00
Доставка$12.00
Всего$198.00

НазваниеЦенаКоличествоИтого
Кружка$10.005$50.00
Рубашка$20.005$100.00
Ножницы$9.004$36.00
Промежуточный итог$186.00
Доставка$12.00
Всего$198.00

НазваниеЦенаКоличествоИтого
Кружка$10.005$50.00
Рубашка$20.005$100.00
Ножницы$9.004$36.00
Промежуточный итог$186.00
Доставка$12.00
Всего$198.00

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

<table>

  <thead>

    <tr>

      <th>&nbsp;</th>

      <th>Продукт 1</th>

      <th>Продукт 2</th>

      <th>Продукт 3</th>

    </tr>

  </thead>

  <tbody>

    <tr>

      <td>Функция 1</td>

      <td>&#10004;</td>

      <td>&#10004;</td>

      <td>&#10004;</td>

    </tr>

    <tr>

      <td>Функция 2</td>

      <td>&mdash;</td>

      <td>&#10004;</td>

      <td>&#10004;</td>

    </tr>

    <tr>

      <td>Функция 3</td>

      <td>&mdash;</td>

      <td>&mdash;</td>

      <td>&#10004;</td>

    </tr>

    <tr>

      <td>Функция 4</td>

      <td>&mdash;</td>

      <td>&mdash;</td>

      <td>&#10004;</td>

    </tr>

  </tbody>

</table>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

@media screenand (max-width: 768px) {

  tr {

    display: flex;

    flex-flow: row wrap;

    justify-content: space-around;

  }

  td, th {

    display: block;

    width: 33%;

  }

  th:first-child,

  td:first-child {

    text-align: center;

    background: #efefef;

    width: 100%;

  }

  th:first-child {

    display: none;

  }

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

<table>

  <thead>

    <tr>

      <th>&nbsp;</th>

      <th>Продукт 1</th>

      <th>Продукт 2</th>

      <th>Продукт 3</th>

    </tr>

  </thead>

  <tbody>

    <tr aria-hidden=»true»>

      <td>&nbsp;</td>

      <tdcolspan=»3″>Функция 1</td>

    </tr>

    <tr>

      <td>Функция 1</td>

      <td>&#10004;</td>

      <td>&#10004;</td>

      <td>&#10004;</td>

    </tr>

    <tr aria-hidden=»true»>

      <td>&nbsp;</td>

      <tdcolspan=»3″>Функция 2</td>

    </tr>

    <tr>

      <td>Функция 2</td>

      <td>&mdash;</td>

      <td>&#10004;</td>

      <td>&#10004;</td>

    </tr>

    <tr aria-hidden=»true»>

      <td>&nbsp;</td>

      <tdcolspan=»3″>Функция 3</td>

    </tr>

    <tr>

      <td>Функция 3</td>

      <td>&mdash;</td>

      <td>&mdash;</td>

      <td>&#10004;</td>

    </tr>

    <tr aria-hidden=»true»>

      <td>&nbsp;</td>

      <td colspan=»3″>Функция 4</td>

    </tr>

    <tr>

      <td>Функция 4</td>

      <td>&mdash;</td>

      <td>&mdash;</td>

      <td>&#10004;</td>

    </tr>

  </tbody>

</table>

.visible-xs {

  display: none;

}

@media screenand (max-width: 768px) {

  .visible-xs {

    display: table-row;

  }

  td:first-child,

  th:first-child {

    display: none;

  }

}

Стилевые
таблицы XSL

В
предыдущем разделе для
вывода элементов XML-
документа на экран
броузера мы применяли Java
Script-
сценарии Однако,
как уже отмечалось, для
этих целей
предпочтительней
использование специально
предназначенного для
этого средства — стилевых
таблиц XSL(Extensible
Stylesheet Language).

Стилевыми
таблицами (стилевыми
листами) принято называть
специальные инструкции,
управляющие процессом
отображения элемента в
окне
программы-клиента(например,
в окне броузера).
Предложенные в качестве
рекомендация W3C,
каскадные стилевые
таблицы(CSS- Cascading Style Sheets
) уже
больше года используются
Web- разработчиками для
оформления Web- страниц.
Поддержка CSS
наиболее известными на
сегодняшний день
броузерами Netscape Navigator(начиная
с версии 4.0) и Microsoft
Explorer
(начиная с версии
3.0), позволила использовать
стилевые таблицы для
решения самого широкого
спектра задач — от
оформления домашней
странички до создания
крупного корпоративного
Web-узла. Слово каскадные в
определении CSS
означает возможность
объединения отдельных
элементов форматирования
путем вложенных описаний
стиля. Например, атрибуты
текста, заданные в тэге <body>, будут
распространяться на
вложенные тэги до тех пор,
пока в них не встретятся
стилевые описания,
отменяющие или
дополняющие текущие
параметры. Таким образом,
использование таблиц CSS
в HTML было весьма
эффективно — отпадала
необходимость явного
задания тэгов
форматирования для
каждого из элементов
документа.

Являясь
очень мощным средством
оформления HTML-
страниц, CSS-
таблицы, тем не менее, не
могут применяться в XML-документах,
т.к. набор тэгов в этом
языке не ограничен и
использование статических
ссылок на форматируемые
объекты документа в этом
случае невозможно.

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

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

Во-вторых, языком, лежащем
в основе XSL,
является XML, а это
означает, что XSL
более гибок, универсален и
у разработчиков
появляется возможность
использования средства
для контроля за
корректностью составления
таких стилевых
списков(используя DTD
или схемы данных)

В-третьих, таблицы XSL не
являются каскадными,
подобно CSS, т.к.
чрезвычайно сложно
обеспечить
«каскадируемость»
стилевых описаний, или,
другими словами,
возможность объединения
отдельных элементов
форматирования путем
вложенных описаний стиля,
в ситуации, когда
структура выходного
документа заранее
неизвестна и он создается
в процессе самого разбора.
Однако в XSL существует
возможность задавать
правила для стилей, при
помощи которых можно
изменять свойства
стилевого оформления, что
позволяет использовать
довольно сложные приемы
форматирования

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

В этом
разделе мы рассмотрим
упрощенную объектную
модель XSL-
документа, используемую в
текущей версии XSL-конвертора
Microsoft msxsl, и
поэтому информацию,
изложенную далее, нельзя
считать описанием
стандарта языка.

Все
примеры, приводимые далее,
могут быть проверены при
помощи XSL-
конвертора, свободно
доступного на странице
Microsoft [ www.microsoft.com/xml/xsl/ ]

С
чего начать

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

Принцип
обработки XML-
документов стилевыми
таблицами

Рис 1

 

В общем
случае, XSL
позволяет автору задавать
параметры отображения
элемента XML,
используя любые языки,
предназначенные для
форматирования — HTML,
RTF и т.д. В этом
разделе мы будем
использовать в качестве
такого языка HTML,
т.к. документы, созданные
при помощи этого языка
разметки могут
просматриваться любой
подходящей программой
просмотра Web-страниц

Структура
XSL- таблиц

Рассмотрим
основные структурные
элементы XSL,
используемые, в частности,
в конверторе msxsl, для
создания оформления XML-документов.

Правила
XSL

XSL-
документ представляет
собой совокупность правил
построения, каждое из
которых выделено в
отдельный блок,
ограниченный тэгами <rule>
и </rule>;. Правила
определяют шаблоны, по
которым каждому элементу XML
ставится в соответствие
последовательность HTML-
тэгов, т.е. внутри них
содержатся инструкции,
определяющие элементы XML-
документа и тэги
форматирования,
применяемые к ним.

Элементы XML,
к которым будет
применяться
форматирование,
обозначаются в XSL
дескриптором <target-element/>;.
Для указания элемента с
конкретным названием
(название элемента
определяется тэгами, его
обозначающими), т.е.
определения класса
элемента, можно
использовать атрибут type=»<имя_элемента>»

Вот
пример простейшего XSL-документа,
определяющего
форматирование для
фрагмента <flower>rose</flower>
:

<xsl>
<rule>
<target-element type="flower"/>
<p color="red" font-size="12">
<children/>
</p>
</rule>
</xsl> 

Уже на
этом примере можно
проследить особенность
использования стилевых
таблиц: в любых правилах
при помощи
соответствующих элементов
декларативно задается
область, которая
определяет фрагмент XML-документа,
как мы чуть позже увидим,
программа-анализатор
заново проходит все
элементы, начиная с
текущего, всякий раз, когда
в структуре XML-
документа обнаруживаются
новые вложенные элементы.

Инструкция
<target-element> указывает на
то, что данное правило
определяет элемент.
Параметром type=»flower» задается
название XML-элемента,
для которого будет
использоваться это
правило.
Программа-конвертор будет
использовать HTML-тэги,
помещенные внутри блока <rule></rule> для
форматирования XML-элемента,
которому
«предназначался»
текущий блок. В том случае,
если для какого-то
элемента XML
шаблон не определяется, в
выходной документ будут
добавлены тэги
форматирования по
умолчанию (например, <DIV></DIV> )

Процесс
разбора XSL-правил
является рекурсивным, т.е.
если у элемента есть
дочерние элементы, то
программа будет искать
определения этих
элементов, расположенных
«глубже» в дереве
документа. Указанием на то,
что необходимо повторить
процесс разбора XML
документа, теперь уже для
дочерних элементов,
является инструкция <children/>. Дойдя до
нее, анализатор выберет из
иерархического дерева XML-
элементов нужную ветвь и
найдет в XSL-шаблонах
правила, определяющие
форматирование этих
нижележащих элементов. В
том случае, если вместо <children> мы укажем
инструкцию <empty/>;, программа
закончит движение по
данной ветви и возвратится
назад, в родительское
правило. При этом текущее
правило никакой
информации в выходном HTML-документе
изменять не будет, т.к. <empty/> в данном
случае означает, что
содержимое элемента
отсутствует.

Если в
одном правиле <target-element> используется
несколько раз, то
инструкции по
форматированию будут
распространены на все
описываемые внутри него XML-элементы,
т.е. можно задавать единый
шаблон форматирования для
нескольких элементов
одновременно:

<xsl>
<rule>
<target-element type="item1"/>
<target-element type="item2"/>
<target-element type="item3"/>
<hr>
<children/>
<hr>
</rule>
</xsl> 

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

XML-документ:

<?XML Version="1.0"?>
<documents>
<books>
<book>
<title>Макроэномические показатели экономики Римской Империи в период ее расцвета</title>
<author>Иван Петров</author>
<date>21.08.98</date>
</book>
<book>
<title>Цветоводство и животноводство. Практические советы</title>
<author>Петр Сидоров</author>
<date>10.10.98</date>
</book>
</books>
<articles>
<article>
<author>Петр Иванов</author>
<title>Влияние повышения тарифов оплаты за телефон на продолжительность жизни населения</title>
<date>12.09.98</date>
</article>
</articles>
</documents>

Содержимое
XSL-документа:

<xsl>
  <rule>
    <root/>      
    <HTML>       
    <BODY bgcolor="white">
    <center><hr/><b>Library</b><hr/><br/> 
    <table border="2">
    <children/>  
    </table></center>
    </BODY>
    </HTML>	   
  </rule>
    <rule>
	 <element type="book">
	    <target-element type="author"/>
             </element>
            <td align="center">
	    <p color="red" font-size="14"> <b> 
<children/> 
</b></p></td>
    </rule>
    <rule>
	 <element type="article">
	    <target-element type="author"/>
         </element>
            <td align="center">
	    <p color="red" font-size="14" font-style="italic"><children/></p></td>
    </rule>
    <rule>
	    <target-element type="book"/>
            <tr><children/></tr>
    </rule>
    <rule>
	    <target-element type="article"/>
            <tr><children/></tr>
    </rule>
    <rule>
	    <target-element/>
            <td align="center"><p><children/></p></td>
    </rule>
    <rule>
	    <target-element type="books"/>
            <tr><td colspan="3" bgcolor="silver" >Books</td></tr>
            <children/>
    </rule>
    <rule>
	    <target-element type="articles"/>
            <tr><td colspan="3" bgcolor="silver" >Articles</td></tr>
            <children/>
    </rule>
</xsl>            
                

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

<table>

<thead>

<tr>

<th></th>

<th scope=»col» abbr=»Starter»>Smart Starter</th>

<th scope=»col» abbr=»Medium»>Smart Medium</th>

<th scope=»col» abbr=»Business»>Smart Business</th>

<th scope=»col» abbr=»Deluxe»>Smart Deluxe</th>

</tr>

</thead>

<tfoot>

<tr>

<th scope=»row»>Price per month</th>

<td>$ 2.90</td>

<td>$ 5.90</td>

<td>$ 9.90</td>

<td>$ 14.90</td>

</tr>

</tfoot>

<tbody>

<tr>

<th scope=»row»>Storage Space</th>

<td>512 MB</td>

<td>1 GB</td>

<td>2 GB</td>

<td>4 GB</td>

</tr>

<tr>

<th scope=»row»>Bandwidth</th>

<td>50 GB</td>

<td>100 GB</td>

<td>150 GB</td>

<td>Unlimited</td>

</tr>

<tr>

<th scope=»row»>MySQL Databases</th>

<td>Unlimited</td>

<td>Unlimited</td>

<td>Unlimited</td>

<td>Unlimited</td>

</tr>

<tr>

<th scope=»row»>Setup</th>

<td>19.90 $</td>

<td>12.90 $</td>

<td>free</td>

<td>free</td>

</tr>

<tr>

<th scope=»row»>PHP 5</th>

<td><span></span></td>

<td><span></span></td>

<td><span></span></td>

<td><span></span></td>

</tr>

<tr>

<th scope=»row»>Ruby on Rails</th>

<td><span></span></td>

<td><span></span></td>

<td><span></span></td>

<td><span></span></td>

</tr>

</tbody>

</table


table.table1{

    font-family: «Trebuchet MS», sans-serif;

    font-size: 16px;

    font-weight: bold;

    line-height: 1.4em;

    font-style: normal;

    border-collapse:separate;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

.table1 thead th{

    padding:15px;

    color:#fff;

    text-shadow:1px 1px 1px #568F23;

    border:1px solid #93CE37;

    border-bottom:3px solid #9ED929;

    background-color:#9DD929;

    background:-webkit-gradient(

        linear,

        left bottom,

        left top,

        color-stop(0.02, rgb(123,192,67)),

        color-stop(0.51, rgb(139,198,66)),

        color-stop(0.87, rgb(158,217,41))

        );

    background: -moz-linear-gradient(

        center bottom,

        rgb(123,192,67) 2%,

        rgb(139,198,66) 51%,

        rgb(158,217,41) 87%

        );

    -webkit-border-top-left-radius:5px;

    -webkit-border-top-right-radius:5px;

    -moz-border-radius:5px 5px 0px 0px;

    border-top-left-radius:5px;

    border-top-right-radius:5px;

}


.table1 thead th:empty{

    background:transparent;

    border:none;

}


.table1 tfoot td{

    color: #9CD009;

    font-size:32px;

    text-align:center;

    padding:10px 0px;

    text-shadow:1px 1px 1px #444;

}

.table1 tfoot th{

    color:#666;

}


.table1 tbody td{

    padding:10px;

    text-align:center;

    background-color:#DEF3CA;

    border: 2px solid #E7EFE0;

    -moz-border-radius:2px;

    -webkit-border-radius:2px;

    border-radius:2px;

    color:#666;

    text-shadow:1px 1px 1px #fff;

}


.table1 tbody span.check::before{

    content : url(../images/check0.png)

}


table.table2{

    font-family: Georgia, serif;

    font-size: 18px;

    font-style: normal;

    font-weight: normal;

    letter-spacing: -1px;

    line-height: 1.2em;

    border-collapse:collapse;

    text-align:center;

}


.table2 thead th, .table2 tfoot td{

    padding:20px 10px 40px 10px;

    color:#fff;

    font-size: 26px;

    background-color:#222;

    font-weight:normal;

    border-right:1px dotted #666;

    border-top:3px solid #666;

    -moz-box-shadow:0px -1px 4px #000;

    -webkit-box-shadow:0px -1px 4px #000;

    box-shadow:0px -1px 4px #000;

    text-shadow:0px 0px 1px #fff;

    text-shadow:1px 1px 1px #000;

}


.table2 tfoot th{

    padding:10px;

    font-size:18px;

    text-transform:uppercase;

    color:#888;

}


.table2 tfoot td{

    font-size:36px;

    color:#EF870E;

    border-top:none;

    border-bottom:3px solid #666;

    -moz-box-shadow:0px 1px 4px #000;

    -webkit-box-shadow:0px 1px 4px #000;

    box-shadow:0px 1px 4px #000;

}


.table2 thead th:empty{

    background:transparent;

    -moz-box-shadow:none;

    -webkit-box-shadow:none;

    box-shadow:none;

}


.table2 thead :nth-last-child(1){

    border-right:none;

}


.table2 thead :first-child,

.table2 tbody :nth-last-child(1){

    border:none;

}


.table2 tbody th{

    text-align:right;

    padding:10px;

    color:#333;

    text-shadow:1px 1px 1px #ccc;

    background-color:#f9f9f9;

}


.table2 tbody td{

    padding:10px;

    background-color:#f0f0f0;

    border-right:1px dotted #999;

    text-shadow:-1px 1px 1px #fff;

    text-transform:uppercase;

    color:#333;

}


.table2 tbody span.check::before{

    content : url(../images/check1.png)

}


table.table3{

    font-family:Arial;

    font-size: 18px;

    font-style: normal;

    font-weight: normal;

    text-transform: uppercase;

    letter-spacing: -1px;

    line-height: 1.7em;

    text-align:center;

    border-collapse:collapse;

}


.table3 thead th{

    padding:6px 10px;

    text-transform:uppercase;

    color:#444;

    font-weight:bold;

    text-shadow:1px 1px 1px #fff;

    border-bottom:5px solid #444;

}


.table3 thead th:empty{

    background:transparent;

    border:none;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

.table3 thead :nth-child(2),

.table3 tfoot :nth-child(2){

    background-color: #7FD2FF;

}

.table3 tfoot :nth-child(2){

    -moz-border-radius:0px 0px 0px 5px;

    -webkit-border-bottom-left-radius:5px;

    border-bottom-left-radius:5px;

}

.table3 thead :nth-child(2){

    -moz-border-radius:5px 0px 0px 0px;

    -webkit-border-top-left-radius:5px;

    border-top-left-radius:5px;

}

.table3 thead :nth-child(3),

.table3 tfoot :nth-child(3){

    background-color: #45A8DF;

}

.table3 thead :nth-child(4),

.table3 tfoot :nth-child(4){

    background-color: #2388BF;

}

.table3 thead :nth-child(5),

.table3 tfoot :nth-child(5){

    background-color: #096A9F;

}

.table3 thead :nth-child(5){

    -moz-border-radius:0px 5px 0px 0px;

    -webkit-border-top-right-radius:5px;

    border-top-right-radius:5px;

}

.table3 tfoot :nth-child(5){

    -moz-border-radius:0px 0px 5px 0px;

    -webkit-border-bottom-right-radius:5px;

    border-bottom-right-radius:5px;

}


.table3 tfoot td{

    font-size:38px;

    font-weight:bold;

    padding:15px 0px;

    text-shadow:1px 1px 1px #fff;

}


.table3 tbody td{

    padding:10px;

}


.table3 tbody tr:nth-child(4) td{

    font-size:26px;

    font-weight:bold;

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

.table3 tbody td:nth-child(even){

    background-color:#444;

    color:#444;

    border-bottom:1px solid #444;

    background:-webkit-gradient(

        linear,

        left bottom,

        left top,

        color-stop(0.39, rgb(189,189,189)),

        color-stop(0.7, rgb(224,224,224))

        );

    background:-moz-linear-gradient(

        center bottom,

        rgb(189,189,189) 39%,

        rgb(224,224,224) 70%

        );

    text-shadow:1px 1px 1px #fff;

}

.table3 tbody td:nth-child(odd){

    background-color:#555;

    color:#f0f0f0;

    border-bottom:1px solid #444;

    background:-webkit-gradient(

        linear,

        left bottom,

        left top,

        color-stop(0.39, rgb(85,85,85)),

        color-stop(0.7, rgb(105,105,105))

        );

    background:-moz-linear-gradient(

        center bottom,

        rgb(85,85,85) 39%,

        rgb(105,105,105) 70%

        );

    text-shadow:1px 1px 1px #000;

}


.table3 tbody td:nth-last-child(1){

    border-right:1px solid #222;

}


.table3 tbody th{

    color:#696969;

    text-align:right;

    padding:0px 10px;

    border-right:1px solid #aaa;

}


.table3 tbody span.check::before{

    content : url(../images/check2.png)

}