前端开发 CSS3 – 颜色 和 盒模型

前端开发 CSS3 – 颜色 和 盒模型

CSS3 颜色 设计Web页面不可缺少的就是颜色,对于颜色的运用是设计方面的事情,但是对于前端开发,合理的使用颜色作出效果也是很重要的。 CSS3在CSS2的基础上增加了RGBA,HSL和HSLA模式,对于所有的样式属性中需要颜色的部分,在CSS3都可以采取如下的方式使用颜色: 色彩名称 rgb(R

CSS3 颜色

设计Web页面不可缺少的就是颜色,对于颜色的运用是设计方面的事情,但是对于前端开发,合理的使用颜色作出效果也是很重要的。

CSS3在CSS2的基础上增加了RGBA,HSL和HSLA模式,对于所有的样式属性中需要颜色的部分,在CSS3都可以采取如下的方式使用颜色:

  • 色彩名称
  • rgb(R,G,B)
  • rgba(R,G,B,alpha)
  • hsl(H,S,L)
  • hsl(H,S,L,alpha)

RGB的颜色已经很熟悉了,就是0-255(也可以使用百分比,没有0-255精确)表示三原色的强度,RGBA在此基础上增加了透明度alpha,用0-1之间的数字代表透明度,越大越透明。

HSL则是用色调,饱和度和亮度来控制色彩,也是广泛使用的色彩之一。其中H指色调,0是红色,120是绿色,240是蓝色;超过360则用数字取360模的余数表示。S是饱和度,取百分数,0表示灰度颜色,100%表示饱和度最高。L是亮度,取值也是0-100%,0为黑色,100%为白色。

opacity

除了色彩之外,这里再介绍一个和色彩紧密相关的属性,就是透明度

opacity的值很简单,就一个数字值,默认为1,可以取0-1的任何浮点数。也可以取inherit表示继承。

这个属性不仅可以用于背景,会将该元素的所有内容都变成透明。使用中要注意。

CSS3 盒模型

CSS2的盒模型已经很熟悉了,CSS2的盒模型最大的问题(或者说特点)在于width指定的只是内容区的宽度,如果加padding和边框,会把盒子的实际在页面中占的宽度改变。由于这个盒模型也是W3C的标准,这么多多年大家也已经很习惯了。

CSS3里针对旧的盒模型,提出了一种新的盒模型。这种模型设置了宽度,就固定了在页面中的总宽度,设置border和padding只会把内容往里边挤,而不会向外增加总宽度。只要在一个盒子元素中增加一个新的属性 box-sizing 然后设置对应的属性,就可以将当前元素改变为CSS3的盒模型

box-sizing

这个属性用来改变盒模型的解析方式,有三个值可以选择:

  • content-box 宽度只作用在内容区域,即W3C的标准盒模型。
  • border-box 宽度包含border,padding和内容区,即CSS新的盒模型
  • inherit 继承

这个属性的兼容性还是不错的,除了IE9以上,其他的现代浏览器都支持。

如果是面向现代浏览器,在排版的时候,使用CSS3盒子可以有效的减少排版的麻烦,可以自如的修改padding和border但不会影响总体布局。

与CSS3盒模型相关的一些属性

与盒模型相关有一些更新的属性:

  • overflow-x 和 overflow-y

    本来CSS2里有overflow属性,CSS3里新增了overflow-x 和 overflow-y属性用于单独控制水平和垂直方向溢出内容的剪切。有五个值:

    • visible 默认值,表示不剪切内容也不增加滚动条
    • auto 超过的时候可以添加滚动条
    • hidden 内容超出容器的时候隐藏
    • scroll 不管是否溢出,overflow-x会添加水平滚动条,overflow-y则会添加垂直滚动条
    • no-display 当内容溢出时整个都不显示元素,类似于display:none
    • no-content 当内容溢出的时候不显示内容,类似于visbility:hidden
  • resize

    这个属性允许用户通过拖动来改变元素的大小,经常用在textarea等表单元素。有五个值可以选一个:

    • none 用户不能修改元素大小
    • both 用户可以同时修改高度和宽度
    • horizontal 用户只能修改宽度,不能修改高度
    • vertical 用户只能修改高度,不能修改宽度
    • inherit 继承父元素的设置
  • outline

    CSS2中就有了outline,outline不会影响布局。outline的属性如下:

    • outline-color 轮廓颜色
    • outline-style 轮廓线样式,省略就是none即无轮廓
    • outline-width 轮廓线的宽度,省略了就是medium即中等程度的轮廓线
    • outline-offset 表示偏移量,正数表示向外偏移,负数表示向内偏移。这个属性是CSS3新增的。
    • inherit 继承父元素的outline
LICENSED UNDER CC BY-NC-SA 4.0
Comment