@
开头后面跟随一个关键字的形式构成,也被称为“AT规则”,根据使用方法的不同又可以分为“常规规则”与“嵌套规则”两种。@[KEYWORD] (RULE);
@charset "<charset>";
其中 <charset> 为具体的字符编码,默认值为“utf-8”。 ""
包裹起来;/* 设置 CSS 的编码格式为 Unicode UTF-8 */ @charset "UTF-8"; @charset "utf-8"; /*大小写不敏感*/ /*错误演示*/ @charset 'iso-8859-15'; /* 无效的, 使用了错误的引号 */ @charset 'UTF-8'; /* 无效的, 使用了错误的引号 */ @charset "UTF-8"; /* 无效的, @charset 与字符编码之间多用了一个空格 */ @charset "UTF-8"; /* 无效的, @规则之前多了一个空格 */ @charset UTF-8; /* 无效的, 字符编码需要使用双引号包裹 */
@import <url> <media_query_list>
其中,<url> 为使用绝对或相对路径指定的要导入的外部样式表文件路径,也可以使用 url() 函数来指定文件路径;<media_query_list> 为可选参数,用来指定媒体查询的条件,多个条件之间使用逗号,
分隔。@import url("global.css"); @import url(global.css); @import "global.css"; @import url("fineprint.css") print; @import url("bluish.css") projection, tv; @import 'custom.css'; @import url("chrome://communicator/skin/"); @import "common.css" screen, projection; @import url('landscape.css') screen and (orientation:landscape);以上几种定义方式都是有效的,当使用 url() 来设置样式表文件的路径时,包裹路径的引号可有可无;当直接使用具体路径来设置样式表文件的路径时,包裹路径的引号则必须保留。
/* 默认命名空间 */ @namespace url(XML-namespace-URL); @namespace "XML-namespace-URL"; /* 命名空间前缀 */ @namespace prefix url(XML-namespace-URL); @namespace prefix "XML-namespace-URL";
{ }
,其中包含了一些其它的规则声明,类似于下面这样:
@[KEYWORD] {
/* 嵌套语句 */
}
媒体查询是用于判断设备信息的一组条件,如设备的宽高值,宽高比,颜色,分辨率等,当条件匹配时,才会执行其内嵌套的样式信息。
@media 可以放置在样式表中的任意位置,也可以放置于其它 @规则中,示例代码如下:@media all and (min-width: 1280px) { /* 宽度大于1280 */ } @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 2dppx) { /* Retina屏幕 */ } @media print { /* 打印 */ } @media \0screen\,screen\9 { /* IE7,IE8 */ } @media screen\9 { /* IE7*/ }
/* 表示打印时 第一页的上、左外边距均为 50% */ @page :first { margin-left: 50%; margin-top: 50%; }
@supports (rule)[operator (rule)]* { sRules };
其中,rule 为某个具体的 CSS 样式,必须使用括号包裹;operator 的可选值为 or、and、not,通过 operator 参数可以指定多条 CSS 样式。/* 当浏览器支持 display: grid 属性时要使用的 CSS 样式 */ @supports (display: grid) { div { display: grid; } } /* 当浏览器不支持 display: grid 属性时要使用的 CSS 样式 */ @supports not (display: grid) { div { float: right; } } /* 同时检查多个条件 */ @supports (display: flex) and (-webkit-appearance: checkbox) { .module { display: flex; } }
@font-face {
font-family: <identifier>;
src: <url> [format(<string>)] [, <url> [format(<string>)]]*;
<font>;
}
提示:@font-face 可以放在 css 样式表的顶部,也可以放在其它嵌套规则中。如果同时使用 local() 函数和 url() 函数加载字体,则会优先加载 local() 函数中定义的本地字体,如果没有找到则会加载 url() 函数中定义的远程字体。
下面示例中演示了 @font-face 的使用:/* 定义 @font-face 规则 */ @font-face { /* 指定字体名称 */ font-family: "Open Sans"; /* 指定字体文件的路径 */ src: url("/fonts/OpenSans-Regular-webfont.woff2") format("woff2"), url("/fonts/OpenSans-Regular-webfont.woff") format("woff"); } /* 字体的应用 */ p { font-family: "Open Sans"; }
@keyframes <identifier> {
<keyframes-blocks>
}
/* 声明 */ @keyframes slidein { from { margin-left: 100%; width: 300%; } to { margin-left: 0%; width: 100%; } } @keyframes slideout { 0% { top: 0; } 50% { top: 30px; } 100% { top: 60px; } } /* 应用 */ p { animation-name: slidein; animation-duration: 4s; } div { animation-name: slideout; animation-duration: 4s; }
提示:提供给 url()、url-prefix() 和 domain() 函数的参数可以不使用引号包裹,但提供给 regexp() 函数的参数必须使用引号包裹起来。
下面示例中演示了 @document 的使用:@document url(http://www.weixueyuan.net/), url-prefix(http://www.weixueyuan.net/Style/), domain(weixueyuan.net), regexp("https:.*") { /* 该条 CSS 规则会应用在下面的网页: + URL 为"http://www.weixueyuan.net/"的页面. + 任何 URL 以"http://www.weixueyuan.net/Style/"开头的网页 + 域名"weixueyuan.net"下的所有网页 + 任何 URL 以"https:"开头的网页 */ /* 定义样式 */ body { color: purple; background: yellow; } }
本文链接:http://task.lmcjl.com/news/14643.html