1.私有前缀及其用法

  在CSS3模块标准尚未被W3C批准或者标准所提议的特性尚未被浏览器完全实现时,浏览器厂商会使用所谓的私有前缀来测试“试验性的”CSS特性。看看CSS3中实现圆角的代码:

.round{

  -khtml-border-radius:10px;  /* Konqueror */

  -rim-border-radius:10px;  /* RIM */

  -ms-border-radius:10px;  /* Microsoft */

  -o-border-radius:10px;  /* Opera */

  -moz-border-radius:10px;  /* Mozilla (如 Firefox) */

  -webkit-border-radius:10px;  /* Webkit (如 Safari 和 Chrome) */

  border-radius:10px;   /* W3C */

}

在实际开发中可以使用可以为CSS文件自动追加前缀的Javascript方案,网址:http://leaverou.github.com/prefixfree。

也可以只指定自己所期望的浏览器,例如,如果时间和预算都很紧张,你可能决定不对任何在你的网站上使用率小于3%的浏览器提供私有前缀支持。可以查看这个网站:http://caniuse.com,看当前浏览器对特定CSS3和HTML5特性的支持程度。还可以查看:http://gs.statcounter.com查看最近的全球浏览器器的使用率统计。

2.CSS3的多栏布局和文字换行

  1.多栏布局

  曾经有需要将一整段文本显示在多个栏位中,在CSS3出现以前,你必须将内容拆分到不同的标签中,然后分别设定样式。利用CSS3可以让我们将一段或多段内容分布到多列网格中。如下代码:

  <div id="main" role="main">

    <p>lloremipsimLoremipsum dolor sit amet,consectetur

      //任意文字//

    </p>

    <p>lloremipsimLoremipsum dolor sit amet,consectetur

      //任意文字//

    </p>

  </div>

  具体CSS样式如下:

  (1)可以通过设置栏位宽度(栏位宽度不变,栏位数量会根据浏览器自动调整)

  #main{

    column-width:12em;

  }

  (2)通过设置栏位数量(栏位数量不变,栏位宽度根据视口自动调整)

  #main{

  column-count:4;

  }

  (3)也可以增加栏位间隙和分割线让多列布局效果更好

  #main{

  column-gap:2em;

  column-rule:thin dotted #999;

  column-width:12em;

  }

  若想参阅CSS3多列布局模块的标准,请访问:http://www.w3.org/TR/css3-multicol.

  目前,请切记你需要给多列布局声明使用私有前缀,以确保兼容最广泛的浏览器。

  2.文字换行

  解决内容过长超出了浏览器视口而不换行,导致出现横向滚轴。

  word-wrap:break-word;

3.CSS3的新增选择器及其用法

  1.CSS属性选择器

    img[alt]{

      border:3px dashed #e15f5f;

    } 

    这个选择器会匹配页面标签中任意一个含有alt属性的图片标签。也可以通过设定属性值来缩小匹配范围。如下代码所示:

    <img class="oscarMain" src="img/oscar.jpg" alt="atwi_oscar" /> 

    img[alt="atwi_oscar"]{

      border:3px dashed #el5f5f;

    }

  2.CSS3的子字符串匹配属性选择器

    (1)“匹配开头”的属性选择器。语法如下:

      Element[attribute^="value"]

      在实际使用中,如果我想选择网站中所有alt属性值以film开头的图片,则对应代码如下:

      img[alt^="film"]{

        border:3px dashed #el5f5f;

      }

    (2)“匹配包含内容”的属性选择器。语法如下:

       Element[attribute*="value"]

       在实际使用中,如果我想选择网站中所有alt属性值中包含film字符串的图片,则对应代码如下:

       img[alt*="film"]{

        border:3px dashed #el5f5f;

       }

    (3)“匹配结尾”的属性选择器。语法如下:

      Element[attribute$="value"]

      在实际使用中,如果我想选择网站中所有alt属性值以film结尾的图片,则对应代码如下:

      img[alt$="film"]{

        border:3px dashed #el5f5f;

      }

  3.CSS3结构伪类

    (1):last-child选择器

      CSS2.1已经有一个针对列表中第一项的选择器:li:first-child

      CSS3又增加了一个选择器用以匹配最后一项:li:last-child

      组合使用这两个选择器,当给li标签设置样式时,就不需要在代码中增加额外的类名了。

     (2)nth-child选择器

        *使用整数,如:nth-child(2)-这会选中列表中的第二个选项;

        *使用数值表达式

          a>:nth-child(3n+1)-这样会从第一个元素开始,然后每三个元素选一个。

          b>:nth-child(3n-2)-这样会从倒数第2个开始选,然后每三个元素选择一个。

          c>:nth-last-child(-n+3)-这样会从倒数第3个元素开始,向后选择之后的所有元素。

        *使用奇数,如:nth-child(odd)-这样会选中li标签中的所有奇数元素

        *使用偶数,如:nth-child(even)-这样会选中li标签中的所有偶数元素

        *使用类型选择元素,如:nth-of-type(n)和nth-last-of-type(n)。如下代码
                      <ul>
                          <li class="internal"><a href="#">Why?</a></li>
                          <li><a href="#">Synopsis</a></li>
                          <li class="internal"><a href="#">Stills/Photos</a></li>
                          <li class="internal"><a href="#">Videos/clips</a></li>
                          <li class="internal"><a href="#">Quotes</a></li>
                          <li class="internal"><a href="#">Quiz</a></li>
                      </ul>

          注意上面的第二个列表项没有internal类。看看这个规则:

          nav ul li.internal:nth-of-type(n+2) a{

            color:#fe0208;

          }

          上面的代码告诉浏览器:“从第二个匹配元素开始,选择每一个类名为internal的列表项”。

      注:CSS3的计数方式是从1开始的。

    (3).否定(:not)选择器

      nav ul li:not(.internal) a{

        color:#fe0208;

      }

      表示选择没有internal类的列表项。

      完整的UI元素状态伪类列表(http://www.w3.org/TR/selectors/#UIstates)

  4.对伪元素的修正

    伪元素在CSS2中已经存在。CSS3标准对其语法做了一些细微的修正。举几个例子,p:fist-line会选中<p>标签的第一行内容,p:first-letter会选中其中的第一个字母。CSS3要求对伪元素使用两个冒号以便与伪类进行区别。因此刚才的例子应该改为p::first-letter.但注意Internet Explorer8及更低版本的IE无法识别两个冒号的语法,它们只识别一个冒号。

  ::first-line伪元素非常方便的一个特点是它会根据视口自动变化。

4.自定义网页字体

  1.@font-face

    在Font Squirrel:http://www.fontsquirrel.com/tools/webfont-generator这个网站下载@font-face(这些字体包括Bebas Neue、Bitstream Vera Sans和Collaborate Thin),然后解压。将其放在一个专门的fonts文件夹,该文件夹与css文件夹平级,代码运用如下:

  @font-face{

    font-family:'BebasNeueRegular';

    src:url('../fonts/BebasNeue-webfont.eot');

    src:url('../fonts/BebasNeue-webfont.eot?#iefix');

   format('embedded-opentype').

      url('../fonts/BebasNeue-webfont.woff') format('woff'),

      url('../fonts/BebasNeue-webfont.ttf') format('truetype'),

      url('../fonts/BebasNeue-webfont.svg#BebasNeueRegular')

   format('svg');

      font-weight:normal;

      font-style:normal;

  }

  然后就可以给相关样式设置正确的字体和粗细了。例如,我想将导航链接文字的字体修改为Bebas Neue。代码如下:

  nav ul li a{

    font-family:'BebasNeueRegular';

  }

  替换字体后一般还需要修改字体大小。使用公式:目标元素尺寸÷上下文元素尺寸=百分比尺寸

  但是,使用了@font-face设定网站字体后,有时候会引起字体模糊,导致该原因的是字体粗细。大多数浏览器都会为标题元素应用标准的font-weight(一般都是700)。因此,解决此方案就是始终为应用了@font-face字体的标题元素设定font-weight属性。(例如显示的将font-weight设置为400).

5.新的CSS3颜色格式和透明度

  CSS3允许我们使用新方法如RGB或HSL来声明颜色。另外,我们还能在这两个方法后边追加一个透明通道(分别是RGBA和HSLA)。

  1.在CSS中被定义为一个十六进制值#fe0208:

    nav ul li:nth-child(odd) a{

      color:#fe0208;

    }

  在CSS3中,该值可以使用RGB值来描述:

    nav ul li:nth-child(odd) a{

      color:rgb(254,2,8);

    } 

  2.HSL颜色

    除了 RGB,CSS3还可使用HSL(色相、饱和度、亮度)模式来声明颜色。

    HSL模式基于一个360º的色相环,如hsl(315,100%,60%)。第一个数字代表色相,60º为黄色,120º时为绿色,180º时为青色,240º时为蓝色,300º时为洋红色,360º时为红色。其后的两个值分别表示饱和度和亮度,值为百分比,用于改变基础的色相。如果想要更加饱满的颜色,则第二个值使用高一点的百分比即可。最后一个控制亮度,可在0%的全黑到100%的全白之间变化。

  3.针对IE6、IE7、IE8提供备用颜色值

    nav ul li:nth-child(odd) a{

      color:#fe0208;

      color:hsl(359,99%,50%);

    }

  4.透明通道

    HSL和RGB支持透明通道。CSS3还允许通过opacity声明来设置元素的透明度。该透明度的值也是一个介于0和1之间的小数。但是这种方式设置的透明度会对整个元素产生影响(元素的内容都会透明)。反之,使用HSLA或者RGBA则可以仅让元素的某些部分有透明效果。这样,一个元素可以带有HSLA透明效果,但内部的文字仍然不透明。

    使用语法如下:

    background-color:hsla(0,0%,100%,0.8);

Css3:选择器、字体和颜色样式的更多相关文章

  1. CSS3 更改字体被选中样式

    CSS3  更改字体被选中样式

  2. 增加字体和颜色样式-------CSS

    通过使用CSS,控制文本的字体,风格和颜色 1.基本操作: body{ font-family: Verdana, Geneva, Tahoma, sans-serif } body{ font-si ...

  3. Android 系统字体和颜色样式

    Android 字体和颜色 对于能够显示文字的控件(如TextView EditText RadioButton Button CheckBox Chronometer等等),你有时需要控制字体的大小 ...

  4. CSS3 选择器 修改 整数个样式

    .blogbottom ul li:nth-child(4n){margin-right:0px;} 说明:4n就是每第4个.

  5. css选择器和新增UI样式总结

    经过两天的学习,初步对css3选择器和新增UI样式有了进一步的理解.

  6. css3-2 CSS3选择器和文本字体样式

    css3-2   CSS3选择器和文本字体样式 一.总结 一句话总结:是要记下来的,记下来可以省很多事. 1.css的基本选择器中的:first-letter和:first-line是什么意思? :f ...

  7. 常见CSS3选择器和文本字体样式汇总

    常见的CSS3选择器包含:常用基本.属性.伪类.层级(组合)选择器,具体使用情况建议先阅读css选择器四大类:基本.组合.属性.伪类对于选择器的使用有一个基本了解,选择器的作用在于通过它找到元素,并且 ...

  8. CSS.01 -- 选择器及相关的属性文本、文字、字体、颜色、

    与html相比,Css支持更丰富的文档外观,Css可以为任何元素的文本和背景设置颜色:允许在任何元素外围设置边框:允许改变文本的大小,装饰(如下划线),间隔,甚至可以确定是否显示文本. 什么是CSS? ...

  9. NPOI.dll 用法。单元格,样式,字体,颜色,行高,宽度。读写excel

    NPOI.dll 用法.单元格,样式,字体,颜色,行高,宽度.读写excel 转载:http://yuncode.net/code/c_531e679b3896495 view source prin ...

随机推荐

  1. C/C++ 静态链接库(.a) 与 动态链接库(.so)

    平时我们写程序都必须 include 很多头文件,因为可以避免重复造轮子,软件大厦可不是单靠一个人就能完成的.但是你是否知道引用的那些头文件中的函数是怎么被执行的呢?这就要牵扯到链接库了! 库有两种, ...

  2. Swift3.0P1 语法指南——类和结构体

    原档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programmi ...

  3. .NET导入导出Excel方法总结

    最近,应项目的需求,需要实现Excel的导入导出功能,对于Web架构的Excel导入导出功能,比较传统的实现方式是: 1)导入Excel:将Excel文件上传到服务器的某一文件夹下,然后在服务端完成E ...

  4. 《sqoop实现hdfs中的数据导出至mysql数据库》

    报错Access denied for user 'root'@'localhost' (using password: YES)  参考一  参考二 登陆mysql时,root密码的修改 参考帖子h ...

  5. 进程互斥和fork

    自父进程继承 进程的资格(真实(real)/有效(effective)/已保存(saved) 用户号(UIDs)和组号(GIDs)) 环境(environment) 堆栈 内存 打开文件的描述符(注意 ...

  6. Sass安装(windows版)

    Sass安装(windows版) 在 Windows 平台下安装 Ruby 需要先有 Ruby 安装包,大家可以到 Ruby 的官网(http://rubyinstaller.org/download ...

  7. tp5 中 model 的聚合查询

    方法 说明 Count 统计数量,参数是要统计的字段名(可选) Max 获取最大值,参数是要统计的字段名(必须) Min 获取最小值,参数是要统计的字段名(必须) Avg 获取平均值,参数是要统计的字 ...

  8. 腾讯QQ形象18年变迁史,最早的QQ企鹅形象居然长这样!

    1999年,腾讯创建之初,这是当时QQ的形象,现在看起来很滑稽,又高又瘦.当时公司并没有专职的设计师,所以这个形象就凑合着用了. 后来,腾讯也觉着上一个形象做的不是特别好,于是在2000年的时候,公司 ...

  9. SpringMVC拦截器

    springmvc的拦截器 需求:进行用户的访问控制,判断用户是否登陆,如果登陆进行正常访问,如果没有登陆跳转到登陆页面. 1自定义拦截器类 package org.guangsoft.utils; ...

  10. Centos7设置IP为固定值

    1.进入到系统的IP地址保存文件所在目录 [root@localhost ~]# cd /etc/sysconfig/network-scripts 2.修改保存IP信息的文件 [root@local ...