CSS:你未必知道的@规则

at-rule是一个声明,为CSS提供执行或怎么表现的指令。每个声明以@开头,后紧跟一个可用的关键字,这个关键字充当一个标识符,用于表示CSS该做什么。这是一个通用的语法,尽管每个at-rule有其它语法变体。

常规规则

常规规则遵循下面的语法:

@[KEYWORD] (RULE);

@charset

这个规则定义了浏览器使用的字符集,如果样式表包含非ASCII characters (e.g:UTF-8)。注意,被放在HTTP头部的字符集将会覆盖@charset规则

@charset "UTF-8";

@import

这个规则指示请求样式表,在这一行,如果内容是正确的,就会引入一个外部的CSS文件。

@import ‘global.css‘;

虽然流行的CSS预处理器都支持@import,但是应该指出的是,它们的工作原理不同于原生的CSS:预处理器会抓取CSS文件并将它们处理成一个CSS文件,对原生CSS,每一个@import都是一个独立的HTPP请求。

@namespace

对于将CSS应用在XML HTML(XHTML),这个规则是非常有用的,因为XHTML元素能在CSS中被作为一个选择器使用。

/* Namespace for XHTML */
@namespace url(http://www.w3.org/1999/xhtml);

/* Namespace for SVG embedded in XHTML */
@namespace svg url(http://www.w3.org/2000/svg);

嵌套规则

嵌套规则包含了额外的子集声明,其中一些声明只能用于特定情况。

@[KEYWORD] {
  /* Nested Statements */
}

@document

这个规则为样式表指定了条件:只能应用于特定页面。举个粟子,我们提供一个URL,然后为这个特定的页面自定义样式,在其他页面中,这些样式会被忽略。

@document
  /* Rules for a specific page */
  url(http://css-tricks.com/),

  /* Rules for pages with a URL that begin with... */
  url-prefix(http://css-tricks.com/snippets/),

  /* Rules for any page hosted on a domain */
  domain(css-tricks.com),

  /* Rules for all secure pages */
  regexp("https:.*")
{

  /* Start styling */
  body { font-family: Comic Sans; }

}

@font-face

这个规则允许在web页面上加载自定义字体,对自定义字体有不同程度的支持,但是这个规则接受语句创建和提供这些字体。

@font-face {
  font-family: ‘MyWebFont‘;
  src:  url(‘myfont.woff2‘) format(‘woff2‘),
        url(‘myfont.woff‘) format(‘woff‘);
}

@keyframes

在诸多CSS属性中,这个规则是关键帧  动画的基础,并允许我们标记动画开始和结束的标志。

@keyframes pulse {
  0% {
    background-color: #001f3f;
  }
  100% {
    background-color: #ff4136;
  }
}

@media

这个规则包含条件声明,可用于为特定屏幕指定样式,这些声明可以包含屏幕大小,在适屏样式中会很有用.

/* iPhone in Portrait and Landscape */
@media only screen
  and (min-device-width: 320px)
  and (max-device-width: 480px)
  and (-webkit-min-device-pixel-ratio: 2) {

    .module { width: 100%; }

}

或者只在文档打印时运用样式

@media print {

}

@page

这个规则为将要打印的单独页面定义样式。特别的是,它能为页面伪元素设置外边距::first:left:right

@page :first {
  margin: 1in;
}

@supports

这个规则可测试浏览器知否支持某个特性/功能,如果满足条件,将会为这些元素应用特定样式。有点像Modernizr,但确实是CSS属性。

/* Check one supported condition */
@supports (display: flex) {
  .module { display: flex; }
}

/* Check multiple conditions */
@supports (display: flex) and (-webkit-appearance: checkbox) {
  .module { display: flex; }
}

浏览器对@supports的支持情况:

Chrome Safari FireFox Opera IE Android IOS
28+ No 31+ 12.1+ No 4.4+ No

for more information of @supports,click here:@supports

总结

at-rule可以使CSS做一些疯狂有趣的事情。尽管文章中的示例很基础,但是可以看到,对于特定的条件,它们是如何使用样式的,从而创建匹配特定场景的用户体验和交互。

译文出处:http://www.ido321.com/1595.html

时间: 2024-10-27 19:41:01

CSS:你未必知道的@规则的相关文章

css选择器权重值计算规则

一.样式类型 1.行间 <h1 style="font-size:12px;color:#000;">我的行间CSS样式.</h1> 2.内联 <style type="text/css"> h1{font-size:12px; color:#000; } </style> 3.外部 <link rel="stylesheet" href="css/style.css"&g

CSS选择器的权重计算规则

我们在使用CSS对网页元素定义样式时经常会遇到这种情况:要对一般元素应用一般样式,然后在更特殊的元素上覆盖它们.那么我们怎么样来保证我们所新定义的元素样式能覆盖目标元素上原有的样式呢? 在CSS中,会根据选择器的特殊性来决定所定义的样式规则的次序,具有更特殊选择器的规则优先于具有一般选择器的规则,如果两个规则的特殊性相同,那么后定义的规则优先. 那么,又怎么来计算选择器的特殊性呢?下面这张图介绍了特殊性的计算方法: 我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器

CSS的class、id、css文件名的常用命名规则

(一)常用的CSS命名规则 头:header 内容:content/container 尾:footer 导航:nav 侧栏:sidebar 栏目:column 页面外围控制整体布局宽度:wrapper 左右中:left right center 登录条:loginbar 标志:logo 广告:banner 页面主体:main 热点:hot 新闻:news 下载:download 子导航:subnav精心开发5年的UI前端框架! 菜单:menu 子菜单:submenu 搜索:search 友情链

CSS基础1——CSS样式表及样式规则

1.CSS(Cascading Style Sheets)层叠样式表.用于定义HTMl元素的显示形式,是W3C推出的格式化网页内容的标准技术 2.CSS作为每个网站设计者必须掌握的技术之一,有几个优点: (1)提高页面浏览速度,比传统文本设计方法至少节约50%以上的文件尺寸 (2)缩短改版时间,降低维护费用 (3)结合CSS和DIV,更好的控制页面布局 (4)实现表现和结构.内容相分离 (5)更方便搜索引擎的搜索 3.CSS样式表 (1) 嵌入式样式表 用<style>元素将样式包含在网页内部

CSS 使用id属性的规则

html中的id属性是什么?本篇文章给大家带来的内容是介绍html中的id属性,让大家了解id属性的使用方法,希望对大家有所帮助. html的id属性是什么? html的id属性其实就是一个HTML元素标签的标志,可以用来唯一表示该元素的标识符:它在 HTML 文档中必须是唯一的.例: 1 2 3 <div id="demo">    <p id="p1">PHP中文网!</p> </div> 这里的"dem

浏览器如何加载和解析CSS&mdash;&mdash;CSS样式来源与层叠规则

关于CSS样式首先得理解浏览器如何加载它们,最终的页面样式是如何呈现的? CSS层叠样式表的关键在于"层叠",会根据选择符的使用而将样式相互叠加或者覆盖. CSS样式表之所有有"层叠"的概念,因为有多个样式来源,不同样式设置来源不同权重, 优先顺序为:1到5权重依次降低 1 HTML标签头内的样式             (不建议使用,结构样式分离) 2 <style>中编写的样式代码        (适合不常更新或很少访问的页面) 3 <link

1:CSS中一些@规则的用法小结 2: @media用法详解

第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下 at-rule是一个声明,为CSS提供执行或怎么表现的指令.每个声明以@开头,后紧跟一个可用的关键字,这个关键字充当一个标识符,用于表示CSS该做什么.这是一个通用的语法,尽管每个at-rule有其它语法变体.常规规则 常规规则遵循下面的语法: 复制代码 代码如下: @[KEYWORD] (RULE); @charset

css样式、选择器规则

css:页面样式,美化页面 css样式的三个规则 1内联式:直接写在html标签中 <p style="color:red"> 直接对html标签使用 style属性 语法:style="样式:值 样式:值" 优点:操控精准 缺点:不灵活,代码 2嵌入式:在<style>标签内给标签css样式 在head标签内 <style type=text/css> 优点:代码精简 缺点:控制不灵活 3外部式:建立单独的 .css文件 使用&

【转】10条你不可不知的css规则

10条你不可不知的css规则 Posted on 2006-12-20 10:33 雨中太阳 阅读(343) 评论(1) 编辑 收藏 :[译]10条你不可不知的css规则 正文: Published December 6th, 2004 in CssStaff Tags: No Tags. 原文地址:Ten CSS Tricks You May not Know kelet译后感:这10条中有很多条我认为都非常有用,你平时可能遇到的一些莫名的问题也许会在这里找到解决的方法.一些地方我还是把英文的