css(cascading style sheet)层叠样式表,网页组成中处于表现层,用于控制页面中的元素样式。css可以用来为网页创建样式表,通过样式表可以对网页进行修饰。所谓层叠,可以将网页想想成一层一层的结构,层次高的覆盖层次低的,而css可以分别给各个层次设置样式。
css引入方式
(1)行内样式,可以直接将样式写到标签内部的style属性中,这样不用编写选择器,直接编写即可。
这种方式比较简单,可以准确定位到标签元素。当时将css样式写到html标签内部,导致网页表现与结构耦合,同时导致样式不能复用。
(2)内部样式表,写在网页内部的样式表,可以直接将样式写到标签中
这种方式使css独立于html代码,而且同事为多个元素设置样式,达到样式的复用。
(3)外部样式表,同过外部样式文件,然后通过标签引入网页中。
这种方式将样式表放到页面外面,可以在多个网页中引入,同事浏览器加载时候可以使用缓存,这是开发中使用最多的方式。
选择器(selector),会告诉浏览器:网页上的哪些元素需要设置什么样的样式
(1)基础选择器
这个是测试 元素/标签选择器
这是测试类选择器
这是测试id选择器
这是测试复合选择器
群组选择器 选择器1
群组选择器 选择器2
(2)后代选择器与子选择器
html是一个结构化语言,很容易从编写的外观上看出元素标签之间的父子兄弟关系。元素之间的关系有祖先元素,父元素,子元素,后代元素,兄弟元素。css选择器中也有针对这种关系的选择器
div的后代1
div的后代2
div的后代3
这是div2的子元素
(3)兄弟元素选择器
这是p1
这是p2
这是p3
这是span
这是p4
这是p5
这是p6
(4)伪类选择器
有时候,你需要选择本身没有标签,但是仍然易于识别的网页部位,比如段落首行或鼠标画过的的链接。css为他们提供给一些选择器:伪类和伪元素。伪类描述为标签所处的状态似乎更让人理解一些。
比如常见的链接标签对应的伪类有:
还有其他的一些伪类:
这是一个链接
这是一段文字
(5)伪元素选择器
使用伪元素表示元素中特殊的位置,比如段落中的第一个字,第一句话等。
比如,给段落定义样式: 首字母 :first-letter 首行 :first-line
窗前明月光,疑是地上霜。举头望明月,低头思故乡
这少年便是闰土。我认识他时,也不过十多岁,离现在将有三十年了;那时我的父亲还在世,家景也好,我正是一个少爷。那一年,我家是一件大祭祀的值年(10)。这祭祀,说是三十多年才能轮到一回,所以很郑重;正月里供祖像,供品很多,祭器很讲究,拜的人也很多,祭器也很要防偷去。我家只有一个忙月(我们这里给人做工的分三种:整年给一定人家做工的叫长工;按日给人做工的叫短工;自己也种地,只在过年过节以及收租时候来给一定人家做工的称忙月),忙不过来,他便对父亲说,可以叫他的儿子闰土来管祭器的。
时间就是生命
(6)其他子元素选择器
之前提到子元素选择器的语法是 父元素 > 子元素 ,这样会选择所有的子元素,然而有时候会有选择第一个子元素,最后一个子元素这种需求,css选择器也是可以做到的,他们是通过伪类来实现的。
:first-child 是父元素的第一个子元素 :last-child 是父元素的最后一个子元素 :nth-child(次数) 是父元素的第几个元素
:first-of-type 是父元素的第一个此类型的元素 :last-of-type 是父元素的最后一个此类型的元素
:nth-of-type(次数) 是父元素的第几个此类型的元素
蜀道难
噫吁嚱,危乎高哉!蜀道之难,难于上青天!
蚕丛及鱼凫,开国何茫然!尔来四万八千岁,不与秦塞通人烟。
西当太白有鸟道,可以横绝峨眉巅。地崩山摧壮士死,然后天梯石栈相钩连。
上有六龙回日之高标,下有冲波逆折之回川。黄鹤之飞尚不得过,猿猱欲度愁攀援。
青泥何盘盘,百步九折萦岩峦。扪参历井仰胁息,以手抚膺坐长叹。
问君西游何时还?畏途巉岩不可攀。但见悲鸟号古木,雄飞雌从绕林间。
又闻子规啼夜月,愁空山。蜀道之难,难于上青天,使人听此凋朱颜。
(7)属性选择器
属性选择器利用标签属性中的内容来选定特定的标签。语法如下:
[属性名]:存在此属性名的标签 [属性名=""]:属性名等于某个字符串的标签
[属性名^=""]:以某个字符串开都的标签 [属性名$=""]:属性名以某个字符串结束的标签
[属性名*=""]:属性名以包含某个字符串的标签
这是一个没有title属性的p标签
这是一个有title属性的标签
这是一个有title属性为bcd的标签
这是一个title属性以s开头的标签
这是一个title属性以m结束的标签
这是一个title属性包含msf的标签
这个还是个伪类,语法:选择器:not(选择器) 表示不包含关系
这是正常的p标签
这是正常的p标签<
这是class为nom的标签<
这是正常的p标签<
这是正常的p标签<
以上及时我们开发中常用的选择器了,具体可见W3CSchool:点击打开链接
这里有一个CSS练习的网站:
点击前往练习
乃们可以试一试