CSS第一节:认识CSS

作者: 显然2017 | 来源:发表于2017-04-23 00:05 被阅读128次

CSS定义:

CSS 指层叠样式表 (Cascading Style Sheets)

CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局等外观显示样式。

CSS以HTML为基础,提供了丰富的功能,如字体、颜色、背景的控制及整体排版等,而且还可以针对不同的浏览器设置不同的样式。

CSS就是控制页面布局和样式。

CSS的版本:到了3.0版本。(目前还是用2.1版本)


HTML和CSS的关系:

HTML结构层负责从语义的角度搭建页面结构。(HTML:页面结构)

CSS样式层负责从审美的角度美化页面。(CSS:页面样式表现)

JavaScript行为层负责从交互的角度提升用户体验。(JavaScript:交互行为)


引入CSS的方式:

所有的标签都有一个默认样式,我们称为浏览器样式,或者默认样式。

缺省样式(浏览器样式):

可以通过设置修改浏览器的样式 ; 所有的标签都有默认的样式:h1,h2,p,div,span,ul等。

缺省样式(浏览器样式)的优先级是最低的。

所有级的标签都有自己的默认的样式(但是可以通过设置修改浏览器的样式,比如字体的大小……)

补充快捷键:看上图。

行内样式:

行内样式,是通过在标签中设置style属性来达到实现控制标签的样式的效果。(下图){red后面少了个;}

style="color: red"  是设置字体变红色  (color为属性名,red为属性值)

Style属性中,可以设置多条的CSS样式。(下图)

此处是两个CSS样式

嵌入样式:

嵌入样式又叫:内嵌样式、内部样式。

head标签中,嵌套一个style标签,在style标签中可以书写CSS的样式内容。

Style标签有一个属性type属性,默认值就是text/css,可以省略。

外部样式(外联样式):

通过link标签引入css样式文件。

type属性:只有一个选项,“text/css",指定当前为css文本文件。()

rel:指定当前HTML文件与CSS文件的关系是样式表。href:指定外联样式表的路径。

导入样式:@import,导入样式会导致,css文件不能并行下载。不推荐使用。

导入样式的书写必须在所有的css规则书写之前。

接着看下图变化 这里的main.css文件我理解成标准件,可重复使用

导入样式:

@import,导入样式会导致,css文件不能并行下载。不推荐使用。

导入样式的书写必须在所有的css规则书写之前。

main.css文件用上图的

CSS语法:

选择符、属性声明、括号。

换行不敏感、空格不敏感

这个是常见的CSS案例

CSS简单属性:

width:设置宽度,单位px像素。

height:高度。

color:前景色,也就是文字的颜色。

background-color:背景色。

font-size:字体的大小。

CSS案例:


CSS注释:

CSS的注释语法:   /*注释的内容*/

注释不能嵌套,比如:  /*注释的*/内容*/  (中间多了*/,是错误的)

多行注释:

/*

放多行的注释内容1

放多行的注释内容2

*/

一般用于模块的 注释:

文件头的注释:

例如:


CSS选择器:

标签选择器:

标签选择器就是选择当前页面中相同名字的标签

可以单独设置页面上所有P标签、h1标签、span标签,没个设置度可以不一样

通配符选择器

通配符选择器用“*”号表示,他是所有选择器中作用范围最广的,能匹配页面中所有的元素。

基本语法格式:  *{属性1:属性值1;属性2:属性值2; 属性3:属性值3;}

使用通配符选择器定义CSS样式,清除所有HTML标记的默认边距。

通配符的穿透力很强,优先级高于继承的样式,会覆盖继承的样式。一般不用


ID选择器

HTML标签中ID的属性值在一个页面中必须是唯一的。

id一般用于css的选择器和js的钩子。

ID选择器是可以帮助我们选择当前页面中唯一id值的标签,也就是根据标签的id属性值进行选取设置样式。

id选择器使用“#”进行标识,后面紧跟id名

语法:  #id名{属性1:属性值1; 属性2:属性值2; 属性3:属性值3; }


类选择器:

类选择器就是选取页面中所有标签的class属性值相同的一类标签。

类选择器的符号是:   ()

标签可以包含多个类选择器,在class标签中用空格隔开。

P标签中加多一个demo

ID选择器和class选择器的区别

相同的Class属性值,可以在HTML中出现多次。ID属性值在页面中只能出现一次。

一个class的属性可以有多个值,也就是说一个标签可以有多个类。

尽量使用类选择器。使用ID时候情况:当确实能唯一确定当前页面中标签只会出现一次,这时候可以使用ID选择器。

如果不能保证相同的作用的标签在页面中只出现一次,那么这时候就选择使用类选择器。


选择器综合案例


CSS复合选择器

复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的。

标签指定式选择器(即....又....)

标签指定式选择器又称交集选择器,由两个选择器构成,其中第一个为标记选择器,第二个为class选择器或id选择器,两个选择器之间不能有空格,如h3.special或p#one。

比如:h3.demo {} ,需要同时满足既是标签h3又拥有demo类才能被选择到。

注意:使用非常少,一般不用。要么直接用id选择器,要么直接用类选择器。

指定h3

后代选择器:

后代选择器用来选择元素或元素组的后代,其写法就是把外层标记写在前面,内层标记写在后面,中间用空格分隔。当标记发生嵌套时,内层标记就成为外层标记的后代。

注意:后代选择器可以从左向右理解。但是真正浏览器在执行的时候是从右向左进行执行过滤的。(工作原理的注释)

并集选择器:

并集选择器是各个选择器通过逗号连接而成的,任何形式的选择器(包括标记选择器、class类选择器id选择器等),都可以作为并集选择器的一部分。如果某些选择器定义的样式完全相同,或部分相同,就可以利用并集选择器为它们定义相同的CSS样式。

h1, h2,  p 标签可以并在一起设置

子元素选择器:

子代选择器,是让CSS选择器智能选择儿子辈的元素。

尖括号和选择器之间可以有空格也可以没有,没有限制。

建议:选择器和尖括号间有空格。

红圈中的两个 p 标签可以理解成是 div 儿子(div > p)

属性选择器:

属性选择器就是根据html标签的属性进行过滤选择。


CSS伪类 伪元素:

状态是动态变化的,当一个元素达到一个特定状态时,它可能得到一个样式,当状态改变时,又失去这个样式。

它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。

CSS伪类:

:link        伪类将应用于未被访问过的链接。IE6不兼容,解决此问题,直接使用a标签。

:hover        伪类将应用于有鼠标指针悬停于其上的元素。在IE6只能应用于a连接,IE7+所有元素都兼容。

:active        伪类将应用于被激活的元素,如被点击的链接、被按下的按钮等。

:visited        伪类将应用于已经被访问过的链接

:focus        伪类将应用于拥有键盘输入焦点的元素。

顺序问题:LoVeHAte原则。看下图(顺序不要乱了)

页面效果需要查看电脑文件: 11 Pseudo class case.html

伪元素选择器

伪元素 是控制内容。

:first-line伪元素。

:first-letter伪元素。

注释:以上两个伪元素只能用于块级元素。

:first-child伪元素,选择属于第一个子元素的元素。

例如:span:first-child{ }  (选择属于第一个子元素的所有span标签。)

:before与:after伪元素,可以设置元素之前后之后的内容,并且配合content设置相关内容。比如:#demo:after,#demo:before{content:"--";display:block;}

重点,圈起来,会考

下面两图有不同效果:


CSS的层叠性:

CSS的层叠性,也就是说后来设置的样式会层叠(覆盖)之前的样式,层叠性的前提是CSS的选择器的优先级相同

例如,当使用内嵌式CSS样式表定义标记字号大小为12像素,链入式定义标记颜色为红色,那么段落文本将显示为12像素红色,即这两种样式产生了叠加。

效果找文件:  14 Lamination.html  (可以留下要的颜色层,把其他层颜色设置注释掉,进行查看)

�CSS继承性:

所谓继承性是指书写CSS样式表时,子标记会继承父标记的某些样式(子容器的样式会继承父容器的样式),如文本颜色和字号。想要设置一个可继承的属性,只需将它应用于父元素即可。

恰当地使用继承可以简化代码,降低CSS样式的复杂性。但是,如果在网页中所有的元素都大量继承样式,那么判断样式的来源就会很困难,所以对于字体、文本属性等网页中通用的样式可以使用继承。例如,字体、字号、颜色、行距等可以在body元素中统一设置,然后通过继承影响文档中所有文本。

所有字相关的都可以继承,比如:color、text-系列、font-系列、line-系列、cursor

并不是所有的CSS属性都可以继承,例如,下面的属性就不具有继承性:边框、外边距、内边距、背景、定位、元素宽高属性。

所有盒子相关的属性都不能继承。

当我给div标签设置样式的时候,作为孩子的P标签中的字体也受父容器中设置的字体样式影响。

CSS的特殊性(优先级):

CSS的特殊性,定义CSS样式时,经常出现两个或更多规则应用在同一元素上,那么谁的优先级更高呢,这就是CSS的特殊性。

内联样式最大,内联样式的优先级最高。>     ID选择器的优先级,仅次于内联样式。>    类选择器优先级低于ID选择器。>    标签选择器低于类选择器。

256个标签选择器相加大于 一个类选择器 ,  256个类选择器相加大于 一个ID选择器。

id选择器比类选择器优先级高,

在考虑权重时,还需要注意一些特殊的情况,具体如下:

继承样式的权重为0。即在嵌套结构中,不管父元素样式的权重多大,被子元素继承时,他的权重都为0,也就是说子元素定义的样式会覆盖继承来的样式。

行内样式优先。应用style属性的元素,其行内样式的权重非常高,可以理解为远大于100。总之,他拥有比上面提高的选择器都大的优先级。

权重相同时,CSS遵循就近原则。也就是说靠近元素的样式具有最大的优先级,或者说排在最后的样式优先级最大。

所有都相同时,声明靠后的优先级大。

CSS定义了一个!important命令,该命令被赋予最大的优先级。也就是说不管权重如何以及样式位置的远近,!important都具有最大优先级。

综述:行内样式 > 页内样式 > 外部引用样式 >浏览器默认样式。

•important > 内联 >ID > 伪类|类 | 属性选择> 标签> 伪对象 >通配符 > 继承。

结论一:继承的样式要大于默认的样式 结论2: 通配符选择器的样式的优先级比继承样式的优先级要高 结论三:标签的选择器的优先级要高于通配符选择器的优先级 结论四:类选择器的样式的优先级要大于标签选择器的样式的优先级 结论五:id选择器的优先级高于类选择器的优先级 结论六: 行内样式的选择器的优先级大于id选择器的优先级

复合选择器的样式优先级核算:

代码文件找回:17 CSS Priority case.html

相关文章

网友评论

    本文标题:CSS第一节:认识CSS

    本文链接:https://www.haomeiwen.com/subject/kserzttx.html