css3学习笔记(一)
@[css|选择器|响应式布局]
1.css3新增选择器
后代级别选择器:
- element element
:选择<div>
元素内部的所有<p>
元素,div p
- element>element
:选择父元素为<div>
元素的所有<p>
元素,div>p
- :only-child
:匹配属于父元素中唯一的<p>
元素,p:only-child
- :nth-child(n)
:匹配父元素中的第2个<p>
子元素(n可以是数字、关键词,odd
和even
是可用于匹配下标是奇数或偶数的子元素的关键词),p:nth-child(2)
- :nth-last-child(n)
:匹配父元素中的倒数第2个<p>
子元素,p:nth-last-child(2)
- :first-child
:选择属于父元素的第一个子元素的每个<p>
元素,p:first-child
- :last-child
:选择属于父元素的最后一个子元素的每个<p>
元素,p:last-child
- :root
:选择文档的根元素,:root
- :empty
:选择没有子元素的每个<p>
元素(包括文本节点),p:empty
辈级别选择器:
- element+element
:选择紧接在<div>
元素之后的所有<p>
元素,div+p
- element1~element2
:选择前面有<p>
元素的每个<ul>
元素,<p>~<ul>
- :first-of-type
:匹配同级兄弟元素中的第一个<p>
元素,p:first-of-type
- :last-of-type
:匹配同级兄弟元素中的最后一个<p>
元素,p:last-of-type
- :only-of-type
:匹配属于同类型中只有唯一兄弟元素的<p>
,p:only-of-type
- :nth-of-type(n)
:匹配同类型中的第n个同级兄弟元素<p>
(n可以是数字、关键词,odd
和even
是可用于匹配下标是奇数或偶数的子元素的关键词),p:nth-of-type
- :nth-last-of-type(n)
:匹配同类型中的倒数第n个同级兄弟元素<p>
,nth-last-of-type(n)
伪类选择器:
- :link
:选择所有未被访问的链接,a:link
- :visited
:选择所有已被访问的链接,a:visited
- :active
:选择活动链接,a:active
- :hover
:选择鼠标指针位于其上的连接,a:hover
- :focus
:选择获得焦点的input
元素,input:focus
- :first-letter
:选择每个<p>
元素的首字母,p:first-letter
- :first-line
:选择每个<p>
元素的首行,p:first-line
- :before
:在每个<p>
元素的内容之前插入内容,p:before
- :after
:在每个<p>
元素的内容之后插入内容,p:after
- :target
:选择当前活动的#news
元素,#news:target
- :root
:选择文档的根元素,:root
属性选择器:
- [attribute]
:选择带有target
属性的所有元素,[target]
- [attribute=value]
:选择target="_blank"
的所有元素,[target=_blank]
- [attribute~=value]
:选择title
属性包含单词flower
的所有元素,[title~=flower]
- [attribute|=value]
:选择lang
属性值以en
开头的所有元素,[lang|=en]
- [attribute^=value]
:选择其src
属性以"http"
开头的每个<a>
元素,a[src^="http"]
- [attribute$=value]
:选择其src
属性以".pdf"
结尾的每个<a>
元素,a[src$=".pdf"]
- [attribute*=value]
:选择其src
属性中包含"abc"
子串的每个<a>
元素,a[src*="abc"]
UI伪类选择器:
- :enabled
:选择每个启用的<input>
元素,input:enabled
- :disabled
:选择每个禁用的<input>
元素,input:disabled
- :checked
:选择每个被选中的<input>
元素,input:checked
- :not(selector)
:选择非<p>
元素的每个元素,:not(p)
- ::selection
:选择被用户选取的元素部分,::selection
2.响应式布局
响应式布局是现在很流行的一个设计理念。一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本。
利用CSS3-Media Query实现响应式布局:
1.在link
中使用@media
:
<link rel="stylesheet" type="text/css" media="screen and (max-width:600px)" href="link.css"/>
2.在样式表中内嵌@media
:
@media screen and (max-width:600px){
selector{
attribute:value;
}
}
媒体类型:
all
:默认,适用于所有设备aural
:语音合成器braille
:盲文反馈装置handheld
:手持设备projection
:投影仪print
:打印预览模式,打印页screen
:计算机屏幕tty
:电传打字机以及类似的使用等宽字符网格的媒介tv
:电视类型设备
可能的操作符:
and
:逻辑与,连接设备名与选择条件not
:排除某种设备only
:限定某种设备类型,
:设备列表
属性值:
- width
:定义输出设备中的页面可见区域宽度(单位一般为px
)
- heigth
:定义输出设备中的页面可见区域高度(单位一般为px
)
- device-width
:定义输出设备的屏幕可见宽度(单位一般为px
)
- device-heigth
:定义输出设备的屏幕可见高度(单位一般为px
)
- orientation
:定义height
是否大于或等于width
,portrait
代表是,landscape
代表否,即设备手持方向,portrait
为横向,landscape
为竖向
- aspect-ratio
:定义width
与height
的比率,即浏览器的长宽比
- device-aspect-ratio
:定义device-width
与device-heigth
的比率,即设备屏幕的长宽比
- color
:定义每一组输出设备的彩色原件个数,如果不是彩色设备,则值等于0
- color-index
:定义在输出设备的彩色查询表中的条目数,如果没有使用彩色设备,则值等于0
- monochrome
:定义在一个单色框架缓冲区中每像素包含的单色原件个数,如果不是单色设备,则值等于0
- resolution
:定义设别的分辨率,如96dpi,300dpi,118dpcm
- scan
:定义电视类设备的扫描工序,progressive
逐行扫描,interlace
隔行扫描
- grid
:用泪查询输出设备是否使用栅格或点阵,只有1
和0
才是有效值,1
代表是,0
代表否