CSS选择符补充.docx

上传人:b****3 文档编号:4926537 上传时间:2022-12-11 格式:DOCX 页数:18 大小:2.62MB
下载 相关 举报
CSS选择符补充.docx_第1页
第1页 / 共18页
CSS选择符补充.docx_第2页
第2页 / 共18页
CSS选择符补充.docx_第3页
第3页 / 共18页
CSS选择符补充.docx_第4页
第4页 / 共18页
CSS选择符补充.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

CSS选择符补充.docx

《CSS选择符补充.docx》由会员分享,可在线阅读,更多相关《CSS选择符补充.docx(18页珍藏版)》请在冰豆网上搜索。

CSS选择符补充.docx

CSS选择符补充

选择符补充

1.上下文选择符:

例:

pem{color:

green;}//中间用空格作为分隔符

又例:

articleem{color:

green;}//article与em之间是否还隔着其他元素,都不能影响结果,只要em在整个层次结构中有一个叫article的祖先元素即可。

又例:

articleh1em(color:

green;)//选中的em必须有一个祖先是h1,后进而还要有一个祖先是article。

2.特殊的上下文选择符

显示效果:

图1

(1)子选择符>

标签1>标签2//标签2必须是标签1的子元素

例:

section>h2{font-style:

italic;}

h2是section额子元素,故而被选中。

(2)紧邻同胞选择符+

标签1+标签2//标签2必须紧跟在其同胞标签1的后面

例:

h2+p{font-variant:

small-caps;}

第一个p由于是h2的紧邻同胞而被选中

(3)一般同胞选择符~

标签1~标签2//标签2必须跟(不一定紧跟)在同胞标签1后面

例:

h2~a{color:

red;}

只选中了同胞元素

(4)通用选择符*

*——通用选择符匹配任何元素

例:

*{color:

green;}

又例:

p*{color:

red;}//这样只会把p包含的所有元素的文本变成红色。

这个选择符还有一个非常有意思的用法,即用它构成非子选择符,比如:

section*a{font-size:

1.3em;}

//任何事section孙子元素,而非子元素的a标签都会被选中。

至于a的父元素是什么,都没有关系。

3.继承和上下文选择符能让不同的标签共享样式,从而降低需要编写和维护的CSS量,所以不要过度的设置类。

4.ID与类

最顶级的区域可以使用ID来标记,它能够为我们编写CSS规则提供必要的上下文,排除无关的标记,而只选择该上下文中的标签;

类是可以应用给任意多个页面中的任意多个HTML元素的公共标示符,以便我们为这些元素应用相同的CSS样式。

而且,使用类也让不同标签名的元素应用相同的样式称为可能。

5.属性选择符

6.

在HTML元素处于某个状态时(比如鼠标指针位于连接上),为该元素应用CSS样式

伪类

UI伪类:

在标记中存在某种结构上的关系时(如某个元素是一组元素中的第一个或最后一个),为相应元素应用CSS样式

结构化伪类:

伪类

 

(一)UI伪类

(1)链接伪类:

a:

link;(等待点击)

a:

visited;(曾点击过)

a:

hover;(悬停)

a:

active:

(正在点击,未释放)

注意:

由于这4个伪类的特指度相同,如果不按照这里列出的顺序使用它们,浏览器可能不会显示预期效果。

一般情况下,:

link和:

hover就足够了。

但如果你有一个长长的目录链接,那么用稍浅一点颜色(例:

gray,#eee)显示出那些已经访问过(即点击过)的链接,对用户会很有帮助。

然而,修改导航条visited状态的颜色就没有意义了。

注意:

有些伪类可以应用与任何元素,

例p:

hover{background-color:

gray;}

(2):

focus伪类

e:

focus//其中的e代表任何元素

:

focus——表单中的文本字段在用户点击它时会获得焦点,然后用户才能在其中输入字符。

下面的规则

input:

focus{border:

1pxsolidblue;}

会在光标位于input字段中时,为该字段添加一个蓝色边框。

这样可以让用户明确地知道输入的字符会出现在哪里。

(3):

target伪类

e:

target//其中的e代表任何元素

如果用户点击一个指向页面中其他元素的链接,则那个元素就是目标(target),可以用:

target伪类选中它。

(二)结构化伪类

(1):

first-child和:

last-child

:

first-child——代表一组同胞元素中的第一个元素;

:

last-child——代表一组同胞元素中的最后一个元素;

(2):

nth-child

例:

e:

nth-child(n)//(n表示一个数值)表示一组列表项中的每个第n项。

(三)伪元素

(1):

first-letter伪元素——首字符

例:

p:

:

first-letter{font-size:

300%;}//实现段首字符放大效果

(2):

first-letter伪元素——首行

例:

p:

:

first-line{font-variant:

small-caps;}//将第一行变成小型大写字母

(3):

before和:

after伪元素——用于在特定元素前面或后面添加特殊内容

例:

以下标记

25

和如下样式

p,age:

:

before{content:

”Age:

”;}

p.age:

:

after{content:

”years.”;}

能得到以下结果:

Age:

25years.

如果标签中的内容是通过数据库查询生成结果,那么用这种技巧再合适不过了。

因为所有结果都是数字,使用这两个伪元素可以在把数字呈献给用户时,加上说明性文字。

同时,搜索引擎不会去的伪元素的信息(因为它在标记中不存在),因此,不要通过伪元素添加你想让搜索引擎索引的重要内容。

 

定位元素——盒模型

1.每个元素盒子的属性:

边框(border):

可以设置边框的宽窄、样式和颜色。

内边距(padding):

可以设置盒子内容区和边框的间距。

外边距(margin):

可以设置盒子与相邻元素的间距。

2.叠加外边距(margin)

垂直方向上的外边距会产生叠加,即较宽的外边距决定两个元素最终离多远。

而水平外边距不叠加,对于水平相邻的元素,它们的水平间距是相邻外边距之和。

3.外边距的单位

根据经验,为文本元素设置外边距时通常需要混合使用不用的单位。

比如说,一个段落的左、右外边距可以使用像素,以便该段文本始终与包含元素边界保持固定间距,不受字号变大或变小的影响。

而对于上、下外边距,以em为单位则可以让段间距随字号变化而相应增大或缩小,比如:

/*这里使用了间些属性把上、下外边距设置为.75em,把左、右外边距设置为30像素*/

p{font-size:

1em;margin:

.75em30px;}

这样,段落的垂直间距始终会保持为字体高度的四分之三(上下外边距都是.75em,叠加后还是.75em)。

如果用户增大了字号,那么不仅段落中的文本会变大,段间距也会成比例变大。

这样,页面的整体布局就会比较协调一致。

与此同时,使用像素单位的左、右外边距不会改变。

我想,你应该也不会想让字号变化影响到布局宽度吧。

4.盒模型结论一:

没有(就是没有设置width的)宽度的元素始终会扩展到填满父类元素的宽度为止。

添加水平边框、内边距和外边距,会导致内容宽度减少,减少量等于水平边框、内边距和外边距的和。

显示效果:

5.盒模型结论二:

未设定了宽度的合资添加边框、内边距和外边距,会导致盒子扩展的更宽。

实际上,盒子的width属性设定的只是盒子内容的宽度,而非盒子要占据的水平宽度。

6.根据4.和5.可知:

设定了元素的width属性之后,在给元素添加边框、内边距和外边距,元素的行为与默认的auto状态下会有截然不同的表现。

7.浮动:

把元素从常规文档中拿出来。

意识可以实现传统出版物上那种文字绕排图片的效果,二是可以让原来上下堆叠的会计元素,变成左右并列,从而实现布局中的分栏。

8.如果浮动脱离了常规文档流之后,原来跟随其后的元素就会在空间允许的情况下,向上提升到与浮动元素平起平坐。

如果浮动元素后边有两个段落,而你只想让第一段与浮动元素并列(就算旁边还能放下第二段,也不想让它上来),怎么办?

用clear属性来“清除”第二段,然后它就乖乖地呆在浮动元素下面了。

示例一:

注意:

浮动非图片元素时,必须给它设定宽度,否则后果难以预料。

图片无所谓,因为它本身有默认的宽度。

定位

1.position属性

position属性的4个值:

static、relative、absolute、fixed(默认是static)

(1)静态定位——static

在静态定位的情况下,每个元素处在常规文档流中。

(2)相对定位——relative

相对定位:

相对的是它原来在文档流中的位置(或者默认位置)。

可以用top、right、bottom、left属性来改变它的位置。

此时,这个元素原来占据的空间没有动,其他元素也没有动。

如图所示:

可以给第四段设置一个30像素或更大的margin-top值,让它向下移动,从而避免被重新定位的第三段挡住。

(3)绝对定位——absolute

绝对定位跟静态定位和相对定位相比,绝对不一样。

因为绝对定位会把元素彻底从文档流中拿出来。

如图所示:

可以看到元素之前占据的空间被“回收了”。

在绝对定位下,元素完全脱离了常规文流,它现在是相对于顶级元素body在定位。

即绝对定位元素默认的定位上下文是body元素,所以在页面滚动的时候,为了维护与body元素的相对位置关系,它也会相应地移动。

(4)固定定位——fixed

从完全移出文档流的角度来说,固定定位与绝对定位类似。

但不同之处在于,固定定位元素的定位上下文是视口(浏览器窗口或手持设备的屏幕),因此它不会随页面滚动二移动。

固定定位并不常用,最常见的情况是用它创建不随页面滚动而移动的导航元素。

2.定义上下文

上一级:

relative;下一级:

absolute;

显示属性

1.display属性

Ødisplay:

inline;

Ødisplay:

block;

Ødisplay:

none;//该元素及所有包含在其中的元素,都不会再页面中显示,它原先占据的所有空间也都会被“回收”,就好像相关的标记根本不存在一样。

2.visibility属性

visibility属性最常用的的两个相对的值是visible(默认值)和hidden。

把元素的visibility属性设定为hidden,元素会隐藏,但它占据的页面空间仍然“虚位以待”。

背景

3.CSS背景属性:

Øbackground-color

Øbackground-image

Øbackground-repeat

Øbackground-position

Øbackground-size

Øbackground-attachment

Øbackground(简写属性)

Øbackground-clip、background-origin、background-break(目前尚未得到广泛支持)

2.color定义前景色,及影响文本,也影响边框

3.background-image:

url(图片路径/图片文件名)

图片地址两边不用引号,但加了也没问题。

要改变默认的水平和垂直重复效果,可以修改background-repeat属性;要改变背景图片的起点,可以修改background-position属性

(1)背景重复——background-repeat

background-repeat值:

repeat(默认)、repeat-X、repeat-Y、no-repeat

补充:

CSS3还规定了另外两个background-repeat值(但尚未得到浏览器支持),以控制背景图片重复确切的次数,即所有图片都是完整的,不会出现半张图片的现象。

background-repeat:

round;为确保图片不被剪切,通过调整图片大小适应背景区域。

background-repeat:

space;为确保图片不被剪切,通过在图片间添加空白来适应背景区域。

(2)背景位置——background-position

background-position有五个关键字值:

top、left、bottom、right、center

例:

background-position:

rightbottom;

background-position:

centercenter;(也可只写center)

background-position:

50%50%;

补充:

通过把background-position设定为50%50%,把background-repeat设定为no-repeat,实现了图片在背景区域内居中的效果。

文本在元素中居中,可将line-height设定为元素的高度,而行高是在文本行上下平均分配的,再将text-align设定为center,把文本水平居中。

(3)背景位置的值

设定背景位置时可以使用三种值:

关键字、百分比、绝对或相对单位的数值。

可以使用两个值分别设定水平和垂直位置。

关键字指的顺序不重要,leftbottom和bottomleft意思相同。

为了设定的值在所有浏览器中都有效,最好不要混用关键字值和数字值。

使用数值(比如40%30%)时,第一个值表示水平位置,第二个值表示垂直位置。

要是只设定一个值,则将其用来设定水平位置,而垂直位置会被设为center。

在使用关键字和百分比值的情况下,设定的值同时应用于元素和图片。

换句话说,如果设定了33%33%,则图片水平33%的位置和元素水平33%的位置对齐,垂直方面也一样。

例如,通过centercenter把图片的中心点定义在了元素的中心点。

像素之类的绝对单位数值就不一样了,要是用像素单位来设定位置,那么图片的左上角会被放在距离元素左上角指定位置的地方。

有意思的是,还可以使用负值。

这样就可以把图片的左上角定义到元素外部,从而在元素中只能看到部分图片。

当然,给图片设定足够大的正值,也可以把图片的右下角推到元素外部,从而在元素中也只能看到部分图片。

位于元素外部的那部分图片不会显示。

4.背景尺寸——background-size

background-size属性用来控制背景图片的尺寸,可以给它设定的值及含义如下:

Ø50%:

缩放图片,使其填充背景区的一半

Ø100px50px:

把图片调整到100像素宽,50像素高

Øcover:

大大图片,使其完全填满背景区;保持宽高比

Øcontain:

缩放图片,时期恰好适合背景区;保持宽高比

应注意,不要将原本很小的图片拉得太大,那样会导致图片质量失真。

5.背景粘附——background-attachment

background-attachment属性控制滚动元素内的背景图片是否随元素滚动而移动。

这个属性的默认值是scroll,及背景图片随元素移动。

如果把它的值改为fixed,那么背景图片不会随元素滚动而移动。

background-attachment:

fixed;最常用于给body元素中心位置添加淡色水印,让水印不随页面滚动而移动。

实现这种效果的CSS规则如下:

body{

background-image:

url(watermark.png);

background-position:

center;

background-color:

#fff;

background-repeat:

no-repeat;

background-size:

contain;

background-attachment:

fixed;

}

简写背景属性:

如上述可写为:

body{background:

url(watermark.png)center#fffno-repeatcontainfixed;}

6.其他CSS背景属性(浏览器不一定支持)

Øbackground-clip:

控制背景绘制区域的范围,比如可以让背景颜色和背景图片只出现在内容区,而不出现在内边距区域。

默认情况下,背景绘制区是扩展到边框外边界的。

Øbackground-origin:

控制背景定位区域的原点,可以设定为元素盒子左上角以外的位置。

比如,可以设定以内容区左上角作为原点。

Øbackground-break:

控制分离元素(比如跨越多行的行内盒子)的显示效果。

7.背景渐变

渐变就是在一定长度内两种或多种颜色之间自然的过渡。

渐变分两种:

一种是线性渐变,一种是放射性渐变。

线性渐变从元素的一端延伸到另一端,放射性渐变则从元素内一点向四周发散。

 

 

 

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1