Answers:
@
自从@import
CSS1 出现以来,它就已经存在了,尽管可以说在最近的@media
CSS2,CSS3和@font-face
CSS3结构中它变得越来越普遍。该@
语法本身,不过,正如我所说,是不是新的。
这些在CSS中都称为at-rules。它们是浏览器的特殊说明,尽管它们在控制样式的应用方面发挥着重要作用,但它们与使用规则和属性对Web文档中的(X)HTML / XML元素的样式没有直接关系。
一些代码示例:
/* Import another stylesheet from within a stylesheet */
@import url(style2.css);
/* Apply this style only for printing */
@media print {
body {
color: #000;
background: #fff;
}
}
/* Embed a custom web font */
@font-face {
font-family: 'DejaVu Sans';
src: local('DejaVu Sans Regular'), url(/fonts/DejaVuSans.ttf);
}
@font-face
规则定义了并非总是在所有计算机上都可用的设计中使用的自定义字体,因此浏览器从服务器下载字体,并以该自定义字体设置文本,就好像用户计算机具有该字体一样。
@media
规则与媒体查询(以前仅是媒体类型)一起,根据显示页面所使用的媒体来控制应用哪种样式,以及哪种样式不是基于该样式。在我的代码示例中,仅当打印文档时,才应设置所有文本黑色,白色(纸张)背景。您可以使用媒体查询来过滤出打印媒体,移动设备等,并为这些页面设置样式。
规则与选择器没有任何关系。由于其性质各异,因此在众多不同模块中以不同方式定义了不同的规则。更多示例包括:
(此列表并非详尽无遗)
您可以在MDN上找到另一个非详尽列表。
@media的一个示例可能对进一步说明它很有用:
@media screen and (max-width: 1440px)
{
span.sizedImage
{
height:135px;
width: 174px;
}
}
@media screen and (min-width: 1441px)
{
span.sizedImage
{
height:150px;
width: 200px;
}
}
在较小的屏幕上使用较小的图像,这将根据屏幕的大小有条件地更改图像的大小。第一块将处理最大宽度为1440px的屏幕;第二个将处理大于1440像素的屏幕。
这很方便,例如选项卡可以在较小的屏幕上浮动或滚动。您通常可以在较小的屏幕上将选项卡标签的字体大小降低到一个点大小,然后将它们放在一起。
ProBoards CSS样式也将这些用作变量。
这是他们的CSS页面中的一小段:
@wrapper_width: 980px;
@link_color: #c06806;
@link_font: 100% @default_forum_text_font_family;
@link_decoration: none;
#wrapper { width: @wrapper_width; margin: 0 auto; overflow-x: hidden; }
table { table-layout: fixed; }
a { cursor: pointer; color: @link_color; font: @link_font; text-decoration: @link_decoration; }
注意:不是本机,请参阅第一个评论。