css3新增,css3新增background
大家好,今天来为大家分享css3新增的一些知识点,和css3新增background的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
css3 新增选择器有哪些
一、css3之前的选择器
ID选择器,#
类选择器,.
包含选择器(E F)
伪类选择器(:link,visited,hover,active,focus,first-child)
伪元素选择器(::first-line,first-letter,before,after)
通配选择器(.)
属性选择器(foo[name='martin'])
子包含选择器(E>F)
相邻兄弟选择器(E+F)
二、css3新增选择器
新增属性选择器:
E[foo^='bar']匹配E元素,该元素包含foo属性,且foo属性值以bar开头
E[foo$='bar']匹配E元素,该元素包含foo属性,且foo属性值以bar结尾
E[foo*='bar']匹配E元素,该元素包含foo属性,且foo属性值包含bar字符串
新增结构伪类选择器:
E:root匹配文档所在的根元素
E:nth-child(n)匹配E所在父元素第n个匹配E的元素,非E的子元素也参与排序,若第n个子元素不是E元素,则该语句没有效果(注意这里的n从1开始)
E:nth-last-child(n)匹配E所在父元素倒数第n个匹配E的元素
E:nth-of-type(n)匹配E所在父元素第n个匹配E的元素,非E的子元素不参与排序(n同样是从1开始)注意区别nth-child(n)
E:last-child
E:first-of-type
E:last-of-type
E:only-child
E:only-of-type
E:empty
另外,使用前要考虑浏览器版本,新增css3选择器存在兼容性问题。平时多多练习,多动手。
css3有哪些新特性 包含哪些模块
1、CSS3圆角表格圆角表格,对应属性:border-radius。
2、以往对网页上的文字加特效只能用filter这个属性,这次CSS3中专门制订了一个加文字特效的属性,而且不止加阴影这种效果。对应属性:font-effect。
3、丰富了对链接下划线的样式,以往的下划线都是直线,这次可不一样了,有波浪线、点线、虚线等等,更可对下划线的颜色和位置进行任意改变。(还有对应顶线和中横线的样式,效果与下划线类似)对应属性:text-underline-style,text-underline-color,text-underline-mode,text-underline-position。
4、在文字下点几个点或打个圈以示重点,CSS3也开始加入了这项功能,这应该在某些特定网页上很有用。对应属性:font-emphasize-style和font-emphasize-position。
边框(Borders)
border-color:控制边框颜色,并且有了更大的灵活性,可以产生渐变效果
border-image:控制边框图象 CSS3边框border-corner-image:控制边框边角的图象
border-radius:能产生类似圆角矩形的效果
背景(Backgrounds)
background-origin:决定了背景在盒模型中的初始位置,提供了3个值,border, padding和content
border:控制背景起始于左上角的边框
padding:控制背景起始于左上角的留白
content:控制背景起始于左上角的内容 CSS3背景background-clip:决定边框是否覆盖住背景(默认是不覆盖),提供了两个值,border和padding
border:会覆盖住背景
padding:不会覆盖背景
background-size:可以指定背景大小,以象素或百分比显示。当指定为百分比时,大小会由所在区域的宽度、高度,以及background-origin的位置决定
multiple backgrounds:多重背景图象,可以把不同背景图象只放到一个块元素里。
文字效果(Text effects)
text-shadow:文字投影,可能是因为MAC OSX的Safari浏览器开始支持投影才特意增加的。
text-overflow:当文字溢出时,用“…”提示。包 CSS3文字效果括ellipsis、clip、ellipsis-word、inherit,前两个CSS2就有了,目前还是部分支持,但有趣的是IE6居然也支持。ellipsis-word可以省略掉最后一个单词,对中文意义不大,inherit可以继承父级元素。
颜色(Color)
HSL colors:除了支持RGB颜色外,还支持HSL(色相、饱和度、亮度)。以前一般都是作图的时候用HSL色谱,但这样一来会包括更多的颜色。H用度表示,S和L用百分比表示,比如hsl(0,100%, 50%)
HSLA colors:加了个不透明度(Apacity),用0到1之间的数来表示,比如hsla(0,100%,50%,0.2)
opacity:直接控制不透明度,用0到1之间的数来表示
RGBA colors:和HSLA colors类似,加了个不透明度。一直以来,浏览器的透明一直无法实现单纯的颜色透明,每次使用alpha后就会把透明的属性继承到子节点上。换句话说,很难实现背景颜色透明而文字不透明的效果。直到RGBA颜色的出现这一切将成为现实。
实现这样的效果非常简单,设置颜色的时候我们使用标准的rgba()单位即可,例如rgba(255,0,0,0.4)这样就出现了一个红色同时拥有alpha透明为0.4的颜色。
经过测试firefox3.0、safari3.2、opera10都支持了rgba单位。
用户界面(User-interface)
resize:可以由用户自己调整div的大小,有horizontal(水平)vertical(垂直)或者both(同时),或者同时调整。如果再加上max-width或min-width的话还可以防止破坏布局
选择器(Selectors)
CSS3增加了更多的CSS选择器,可以实现更简单但是更强大的功能,比如:nth-child()等。
Attribute selectors:在属性中可以加入通配符,包括^,$,*
[att^=val]:表示开始字符是val的att属性 CSS3选择器[att$=val]:表示结束字符是val的att属性
[att*=val]:表示包含至少有一个val的att属性
其它模块:
(Other modules)
media queries:感觉叫媒体选择比较合适,可以为网页中不同的对象设置不同的浏览设备。比如可以为某一块分别设置屏幕浏览样式和手机浏览样式,以前则只能设置整个网页。
multi-column layout:多列布局,让文字以多列显示,包括column-width、column-count、column-gap三个值
column-width:指定每列宽度
column-count:指定列数
column-gap:指定每列之间的间距
column-rule-color:控制列间的颜色
column-rule-style:控制列间的样式
column-rule-width:控制列间的宽度
column-space-distribution:平均分配列间距
css 长度单位 详解
参考:
开发中主要用到的是 px、em、%。在css3中的vw、vh使用也慢慢多了起来。
相对于当前DOM元素的font-size。
如果设置当前元素的font-size为0.75em,而其父元素的font-size是16px时,则当前元素的font-size是0.75* 16px= 12px;
如果设置当前元素的width是10em,而当前元素的font-size是16px(无论是继承自父容器还是设置的)时,则当前元素的width是10* 16px= 160px;
注意1:任意浏览器的默认字体高都是16px,如果给body元素的font-size设置为62.5%,那body的font-size实际大小是 16px*62.5%=10px,如果所有子元素都以该字体大小使用em作为尺寸单位,相当于1em=10px,这样设置em就非常简单,只要将实际px数值除以10,就是em单位值。
注意2:em相对于px的值并不是固定的,是会随着父元素或者当前元素的font-size不同而变化
em是CSS3新增的一个相对单位(root em,根em),相对于根节点(一般为html节点)的font-size,如果html节点设置font-size= 100px,那么文档中的元素设置为0.3rem,则计算为:0.3* 100px= 30px。
这个单位与em有什么区别呢?区别在于使用rem为元素设定字体大小时,仍然是相对大小,但相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。
目前,除了IE8及更早版本外,所有浏览器均已支持rem。对于不支持它的浏览器,应对方法也很简单,就是多写一个绝对单位的声明(通过下边样式覆盖上边样式原理),这些浏览器会忽略用rem设定的字体大小
相对于父元素的长度高度。
注意1:position:fixed时,无论当前元素放在哪里,将相对于窗口宽度。
注意2:position:absolute时,将相对于其相对的元素宽度(递归父元素直到第一个设置了position的元素)。
CSS3新增样式,部分浏览器(IE8)不支持。
vh、vw:相对于视窗(Viewport)的高度和宽度,而不是父元素的(CSS百分比是相对于包含它的最近的父元素的高度和宽度)。
1vh等于1/100的视窗高度,1vw等于1/100的视窗宽度。
视窗:是指浏览器内部的可视区域大小,即window.innerWidth/window.innerHeight大小,不包含任务栏标题栏以及底部工具栏的浏览器区域大小
CSS3新增样式,部分浏览器(IE8)不支持。
vmin:取视窗高度和宽度的最小值作为基准。
vmax:取视窗高度和宽度的最大值作为基准。
例如:浏览器视窗大小为 window.innerWidth=1000px,window.innerHeight=800px,那么,1vmin=800px/100=8px; 1vmax=1000px/100=10px。
使用场景:做移动页面开发时,如果使用 vw、wh设置字体大小(比如 5vw),在竖屏和横屏状态下显示的字体大小是不一样的。由于 vmin和 vmax是当前较小的 vw和 vh和当前较大的 vw和 vh。这里就可以用到 vmin和 vmax。使得文字大小在横竖屏下保持一致
px是固定的像素,一旦设置了就无法因为适应页面大小而改变。
em和rem相对于px更具有灵活性,他们是相对长度单位,意思是长度不是定死了的,更适用于响应式布局。
对于em和rem的区别一句话概括:em相对于父元素,rem相对于根元素。
rem中的r意思是root(根源),这也就不难理解了。
%是相对于父元素的大小设定的比率,vw、vh是视窗大小决定的。
vw、vh优势在于能够直接获取高度,而用%在没有设置 body高度的情况下,是无法正确获得可视区域的高度的,所以这是挺不错的优势。
做移动页面开发时,如果使用 vw、wh设置字体大小(比如 5vw),在竖屏和横屏状态下显示的字体大小是不一样的。
由于 vmin和 vmax是当前较小的 vw和 vh和当前较大的 vw和 vh。这里就可以用到 vmin和 vmax。使得文字大小在横竖屏下保持一致。
好了,文章到此结束,希望可以帮助到大家。