# coding: utf-8

4.3.4 Вновь CSS

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

  <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %>
  <%= stylesheet_link_tag 'blueprint/print',  :media => 'print' %>

В настоящее время мы почти в состоянии понять это. Как уже упоминалось вкратце в Разделе 4.1.2, Rails определяет специальную функцию для включения таблиц стилей, и

  stylesheet_link_tag 'blueprint/screen', :media => 'screen'

это вызов этой функции. Но Есть две тайны. Во-первых, где скобки? В Ruby, они не являются обязательными; эти две строки эквивалентны:

  # скобки необязательны для вызова функции.
  stylesheet_link_tag('blueprint/screen', :media => 'screen')
  stylesheet_link_tag 'blueprint/screen', :media => 'screen'

Во-вторых, :media аргумент уверенно выглядит как хэш, но где фигурные скобки? Когда хэш — последний аргумент в вызове функции, фигурные скобки не являются обязательными; эти две строки эквивалентны:

  # фигурные скобки для последнего хэш аргумента не обязательны
  stylesheet_link_tag 'blueprint/screen', { :media => 'screen' }
  stylesheet_link_tag 'blueprint/screen', :media => 'screen'

Таким образом, мы видим теперь, что каждая из строк

  <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %>
  <%= stylesheet_link_tag 'blueprint/print',  :media => 'print' %>

вызывает stylesheet_link_tag функцию с двумя аргументами: строкой, указывающей путь к таблице стилей, и хэшем, с указанием типа носителя ( ’screen’ для экрана компьютера и ’print’ для печатной версии). Из-за <%= %> скобок, результаты вставляются в шаблон ERb-ой, и если вы посмотрите исходный код страницы в браузере, вы должны увидеть HTML, необходимый для включении таблиц стилей (Листинг 4.6).14

Листинг 4.6. Исходный код HTML произведенный включением CSS.
  <link href="/stylesheets/blueprint/screen.css" media="screen" rel="stylesheet"
  type="text/css" />
  <link href="/stylesheets/blueprint/print.css" media="print" rel="stylesheet"
  type="text/css" />
# coding: utf-8