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; }

  }

  总结

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

时间: 2024-11-02 18:25:04

CSS中一些@规则的用法小结的相关文章

javascript中match函数的用法小结

 本篇文章主要是对javascript中match函数的用法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 javascript中的match函数是使用正则表达式对字符串进行查找,并将查找的结果作为数组返回,在实际开发中非常的有用,使用方法如下:  stringObj.match(rgExp)  其中stringObj是必选项.对其进行查找的 String 对象或字符串文字.  rgExp是必选项.为包含正则表达式模式和可用标志的正则表达式对象.也可以是包含正则表达式模式和可

深入讲解CSS中盒模型的用法

  视觉类型的媒体根据CSS的视觉格式化模型(Visual formatting model)的规则来处理文档树中的元素,从而将(X)HTML转化成制作者设计的样子. 例如: 如何生成元素框; 处理各元素之间的关系; 根据框的尺寸.定位等CSS属性来确定元素的位置等; 因此,要掌握使用CSS控制页面内元素的技巧,就需要深入了解框模型(Box Model)及视觉格式化模型的原理. 文档树中的元素都产生矩形的框(Box),这些框影响了元素内容之间的距离.元素内容的位置.背景图片的位置等等.而浏览器根

详解CSS中的规则声明

  CSS 规则由 选择器 和 声明 两部分组成,本文将要说的是第二部分:声明. 一个声明包含两部分:属性 和 值. 属性 指出要影响元素的哪个方面(颜色.高度,等等),而 值 表示属性设定为什么(绿色.15px,等等). CSS属性值主要分以下三类: 文本值 数字值 颜色值 1.文本值 文本值也叫关键字.所有 CSS 属性都有文本值. 例如,border-style 属性有 solid.dashed 以及 insert 值. 2.数字值 数字值后面都有一个单位,例如英寸或点.在声明 font-

css中margin和padding用法区别介绍

用margin还是用padding这个问题是每个学习CSS进阶时的必经之路. CSS边距属性定义元素周围的空间,通过使用单独的属性,可以对上.右.下.左的外边距进行设置,也可以使用简写的外边距属性同时改变所有的外边距. 边界(margin):元素周围生成额外的空白区,"空白区"通常是指其他元素不能出现且父元素背景可见的区域. padding称呼为内边距,其判断的依据即边框离内容正文的距离,而我喜欢CSS权威指南解释的"补白"(或者叫"留白"),因

css中z-index 属性与用法详解

z-index规范参考 •在 W3C CSS2.1 规范中,每个元素都具有三维的空间位置,除我们所熟悉的水平和垂直位置外,元素还可在 "Z轴" 方向上层层相叠.依次向前排开: •元素在 "Z 轴" 方向上的呈现顺序,由层叠上下文和层叠级别决定.在文档中,每个元素仅属于一个层叠上下文.在给定的层叠上下文中,每个元素都有一个整型的层叠级别,它描述了在相同层叠上下文中元素在 "Z轴" 上的显示顺序: •同一个层叠上下文中,层叠级别大的显示在上,层叠级别

Android应用UI开发中Fragment的常见用法小结_Android

1.Fragment概述在一个Activity中, Fragment代表UI的一个部分或者一个行为.一个Activity可以结合多个Fragment对象,也可以在多个activity中使用相同Fragment字节码对应的不同对象.一个Fragment对象必须被嵌入在一个主Activity对象中,该Fragment的生命周期与主Activity息息相关.比如,当主Activity处于paused状态,其对应的所有Fragment对象均处于paused状态,只有当主Activity处于resumed

VBScript中On Error语句用法小结

  VBScript语言提供了两个语句和一个对象来处理"运行时错误",如下,1.On Error Resume Next语句,2.On Error Goto 0语句,3.Err对象,下面我们就来详细探讨下. 如果不使用 On Error 语句,则任何运行时错误都是致命的;也就是说,结果会导致显示错误信息并中止运行.一个"允许的"错误处理程序是由 On Error 语句打开的一个处理程序;一个"活动的"错误处理程序是处理错误的过程中允许的错误处理程

Linux里awk中split函数的用法小结_linux shell

The awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep. set time = 12:34:56set hr = `echo $time | awk '{split($0,a,":" ); print a[1]}'` # = 12set sec = `echo $time | awk '{split($0,a,":" ); print

VBScript中On Error语句用法小结_vbs

如果不使用 On Error 语句,则任何运行时错误都是致命的:也就是说,结果会导致显示错误信息并中止运行.一个"允许的"错误处理程序是由 On Error 语句打开的一个处理程序:一个"活动的"错误处理程序是处理错误的过程中允许的错误处理程序. On Error GoTo 0 表示禁止当前过程中任何已启动的错误处理程序.  On Error Resume Next 说明当一个运行时错误发生时,控件转到紧接着发生错误的语句之后的语句,并在此继续运行.访问对象时要使用