[Web学习笔记]CSS3 (一)

  • CSS3代码语法
    • CSS注释代码
    • CSS样式
      • 内联式css样式
      • 嵌入式css样式
      • 外部式css样式
      • 权值
    • CSS3选择器
      • 标签选择器
      • 类选择器
      • ID选择器
      • 类与ID选择器的区别
      • 子选择器
      • 后代选择器
      • 通用选择器
      • 伪类选择器
      • 分组选择器
      • 选择器的优先级
      • 选择器的最高层级
    • CSS3的继承
      • 样式的继承

CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要用于定义HTML内容在浏览器内的显示样式,如文字大小、颜色、字体加粗等。如:

p{font-size:12px;color:red;font-weight:bold;
}

CSS3代码语法

css 样式由选择符声明组成,而声明又由属性和值组成,如下图所示:

选择符:又称选择器,指明网页中要应用样式规则的元素,如本例中是网页中所有的段(p)的文字将变成蓝色,而其他的元素(如ol)不会受到影响。
声明:在英文大括号“{}”中的的就是声明,属性和值之间用英文冒号“:”分隔。当有多条声明时,中间可以英文分号“;”分隔,如:p{font-size:12px;color:red;}
注:

  • 最后一条声明可以没有分号,但为了方便修改,一般会加上。

  • 为方便阅读,可以将每条声明单独一行。

CSS注释代码

CSS使用/* 注释语句 */进行注释/*css注释语句*/

CSS样式

CSS样式代码插入的形式基本可以分为三种:内联式,嵌入式和外部式。

内联式css样式

内联式就是将css代码直接写在现有的HTML标签中,要写在style=" "双引号中,多条css样式代码设置可以写在一起,用分号;隔开,如:

<p style="color:red;font-size:10px;">这是一段文字</p>

css代码要写在元素的开始标签中,下面的写法是错误的:

<p>这是一段文字</p style="color:red;">

嵌入式css样式

嵌入式css样式,可以将css样式代码写在< style type=“text/css”>< /style>标签之间。如下:

<style type="text/css">
p{color:red;font-size:12px;
}
</style>

嵌入式css样式必须写在< style>< /style>之间,并写在< head>< /head>之间。

外部式css样式

外部式/外联式css样式即把css代码写一个单独的外部文件中,这个css样式文件以“.css”为扩展名,在< head>< /head>内,而不是在< style>标签内。使用< link>标签将css样式文件链接到HTML文件内,如下面代码:<link href="base.css" rel="stylesheet" type="text/css" />

注:

  • css样式文件名称以有意义的英文字母命名,如 main.css。
  • rel=“stylesheet” type=“text/css” 是固定写法不可修改。
  • 标签位置一般写在标签之内。

这三种链接方式的优先级为:内联式>嵌入式>外部式

但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。如<link href=“style.css” …>代码在< style type=“text/css”>…< /style>代码的前面(实际开发中也是这么写的)。
其实总结来说,就是–就近原则(离被设置元素越近优先级别越高)。

但注意上面所总结的优先级是有一个前提:内联式、嵌入式、外部式样式表中css样式是在的相同权值的情况下。

权值

有时我们为同一个元素设置了不同的CSS样式代码,元素会显示哪一种样式呢?

p{color:red;}
.first{color:green;}
<p class="first">这是一段<span>文字</span></p>

p和.first都匹配到了p这个标签上,那么会显示green绿色,是因为浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式。

下面是权值的规则
标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。
例如下面的代码:

p{color:red;} /*权值为1*/
p span{color:green;} /*权值为1+1=2*/
.warning{color:white;} /*权值为10*/
p span.warning{color:purple;} /*权值为1+1+10=12*/
#footer .note p{color:yellow;} /*权值为100+10+1=111*/

注:还有一个权值比较特殊–继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。

CSS3选择器

每一条css样式声明由两部分组成,形式如下:
选择器{
样式;
}
在{}之前的部分就是“选择器”,“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素。比如下面代码编辑器中第2行代码中的“body”就是选择器。

<style type="text/css">
body {font-size: 12px;color: red;
}
</style>

标签选择器

标签选择器其实就是html代码中的标签。如右侧代码编辑器中的< html>、< body >、< h1 >、< p >、< img >。例如下面代码:p{font-size:12px;line-height:1.6em;}
上面的css样式代码的作用:为p标签设置12px字号,行间距设置1.6em的样式。

类选择器

类选择器在css样式编码中是最常用到的,语法:
.类选器名称{css样式代码;}

注:

  • 英文圆点开头
  • 其中类选器名称可以任意起名(但不要起中文)

使用方法:

  • 使用合适的标签把要修饰的内容标记起来,如下:
    <span>胆小如鼠</span>

  • 使用class="类选择器名称"为标签设置一个类,如下:
    <span class="stress">胆小如鼠</span>

  • 设置类选器css样式,如下: .stress{color:red;}/*类前面要加入一个英文圆点*/

ID选择器

<body><!-- 给元素id属性赋值--><div id='box'>hello</div>
</body>
<style>
/*#加上元素的id值,构成id选择器*/#box{color:red;}
</style>

注:

  • 使用ID选择器,必须给标签添加上id属性,为标签设置id=“ID名称”,而不是class=“类名称”。

  • ID选择符的前面是井号(#)号,而不是英文圆点(.)。

  • id属性的值既为当前标签的id,尽量见名思意,语义化。

类与ID选择器的区别

相同点:可以应用于任何元素
不同点

1.ID选择器只能在文档中使用一次。与类选择器不同,在一个HTML文档中,ID选择器只能使用一次,而且仅一次。而类选择器可以使用多次。
下面代码是正确的:

         <p>与类选择器不同,在一个HTML文档中,ID选择器<span class="stress">只能使用一次,而且仅一次</span>。而类选择器可以<span class="stress">使用多次.</span></p>

而下面代码是错误的:

         <p>与类选择器不同,在一个HTML文档中,ID选择器<span id="stress">只能使用一次,而且仅一次</span>。而类选择器可以<span id="stress">使用多次.</span></p>

2.可以使用类选择器词列表方法为一个元素同时设置多个样式。我们可以为一个元素同时设多个样式,但只可以用类选择器的方法实现,ID选择器是不可以的(不能使用ID 词列表)。
下面的代码是正确的

.stress{color:red; }
.bigsize{font-size:25px; }
<p>ID选择器只能在文档中<span class="stress bigsize">使用一次</span></p>

上面代码的作用是为“三年级”三个文字设置文本颜色为红色并且字号为25px。
下面的代码是不正确的

.stress{color:red; }
.bigsize{font-size:25px; }
<p>ID选择器只能在文档中<span id="stress bigsize">使用一次</span></p>

上面代码不可以实现为“三年级”三个文字设置文本颜色为红色并且字号为25px的作用。

子选择器

还有一个比较有用的选择器:子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素。如:.food>li{border:1px solid red;}
这行代码会使class名为food下的子元素li加入红色实线边框。

后代选择器

包含选择器,即加入空格,用于选择指定标签元素下的后辈元素。如:.first span{color:red;}这行代码会使< span >标签中的内容中字体颜色变为红色。
请注意这个选择器与子选择器的区别,子选择器(child selector)仅是指它的直接后代,或者可以理解为作用于子元素的第一代后代。而后代选择器是作用于所有子后代元素。后代选择器通过空格来进行选择,而子选择器是通过“>”进行选择。
总结:>作用于元素的第一代后代,空格作用于元素的所有后代。

通用选择器

通用选择器是功能最强大的选择器,它使用一个(*)号指定,它的作用是匹配html中所有标签元素,如下使用下面代码使用html中任意标签元素字体颜色全部设置为红色:* {color:red;}

伪类选择器

更有趣的是伪类选择符,为什么叫做伪类选择符,它允许给html不存在的标签(标签的某种状态)设置样式,比如说我们给html中一个标签元素的鼠标滑过的状态来设置字体颜色:a:hover{color:red;}
上面一行代码就是为 a 标签鼠标滑过的状态设置字体颜色变红。这样就会使标签内容加入鼠标滑过字体颜色变为红色特效。

关于伪类选择符,到目前为止,可以兼容所有浏览器的“伪类选择符”就是 a 标签上使用 :hover 了(其实伪类选择符还有很多,尤其是css3 中,但是因为不能兼容所有浏览器,本教程只是讲了这一种最常用的)。其实 :hover 可以放在任意的标签上,比如说p:hover,但是它们的兼容性也是很不好的,所以现在比较常用的还是 a:hover 的组合。

分组选择器

当你想为html中多个标签元素设置同一个样式时,可以使用分组选择符(,),如下代码为右侧代码编辑器中的h1、span标签同时设置字体颜色为红色:h1,span{color:red;}
它相当于下面两行代码:
h1{color:red;}
span{color:red;}

选择器的优先级

为了解选择器的优先级,我们来看一个例子:

<head><meta charset="UTF-8"><title>css3选择器优先级</title><style type="text/css">.d{color:red;}#box{color:blue;}div{color:black;}.{color:green;}</style>
</head>
<body><div id="box" class="d" style="color:orange">我是一个div</div>
</body>

得到的结果为:

关于选择器优先级:

  • 如果一个元素使用了多个选择器,则会按照选择器的优先级来给定样式。
  • 选择器的优先级依次是: 内联样式 > id选择器 > 类选择器 > 标签选择器 > 通配符选择器

选择器的最高层级

我们在做网页代码的时,有些特殊的情况需要为某些样式设置具有最高权值,则可以使用!important来解决。

如下代码:

p{color:red!important;}
p{color:green;}
<p class="first">这是一段<span>文字</span></p>

这时 p 段落中的文本会显示的red红色。

注:!important要写在分号的前面
这里注意当网页制作者不设置css样式时,浏览器会按照自己的一套样式来显示网页。并且用户也可以在浏览器中设置自己习惯的样式,比如有的用户习惯把字号设置为大一些,使其查看网页的文本更加清楚。这时注意样式优先级为:浏览器默认的样式 < 网页制作者样式 < 用户自己设置的样式,但记住!important优先级样式是个例外,权值高于用户自己设置的样式。

CSS3的继承

样式的继承

CSS的某些样式是具有继承性的,继承是一种规则,它允许样式不仅应用于某个特定html标签元素,并应用于其后代。比如下面代码:如某种颜色应用于p标签,这个颜色设置不仅应用p标签,还应用于p标签中的所有子元素文本,这里子元素为span标签。
p{color:red;}
<p>这是一段<span>文字</span></p>
可见下侧最终页面中p中的文本与span中的文本都设置为了红色。

但注意有一些css样式是不具有继承性的。如border:1px solid red;

p{border:1px solid red;}
<p>这是一段<span>文字</span></p>
在上面例子中它代码的作用只是给p标签设置了边框为1像素、红色、实心边框线,而对于子元素span是没用起到作用的。

【慕课网】Web学习笔记———CSS3 (二)

【慕课网】Web学习笔记———CSS3 (一)相关推荐

  1. 慕课网android 学习笔记

    1.android布局原则: (1)将可复用的组件抽出来并通过include标签使用. (2)使用viewstub标签来加载一些不常用的布局. (3)使用merge标签减少布局的嵌套层次. http: ...

  2. web学习笔记-html-html新增

    CCS学习系列笔记 web学习笔记–css(1) web学习笔记–css(2) web学习笔记–css(3) web学习笔记-html-html新增 1.html基本发展 2.h5新增的功能 3.新增 ...

  3. java web学习笔记(持续更新)

    java web学习笔记 一.Java Web简介 二.认识Servlet 1.什么是Servlet? 2.请求路径 3.tomcat 4.Servlet的使用 三.Servlet简单应用 1.创建S ...

  4. 2019年Java Web学习笔记目录

    Java Web学习笔记目录 1.Java Web学习笔记01:动态网站初体验 2.Java Web学习笔记02:在Intellij里创建Web项目 3.Java Web学习笔记03:JSP元素 4. ...

  5. 慕课网 springboot学习记录

    https://www.imooc.com/learn/956 idea ctrl+shift+r全局查找 springboot相关 慕课网知识学习总结 demo项目生成:可以从spring官方生成, ...

  6. 领扣网算法学习笔记 - 215

    领扣网算法学习笔记 本系列的算法题目来自领扣网 数组类算法第六天 题目:数组中的第K个最大元素 在未排序的数组中找到第 k 个最大的元素.请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 ...

  7. 领扣网算法学习笔记 - 80

    领扣网算法学习笔记 本系列的算法题目来自领扣网 数组类算法第一天 题目: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 示例: 给定 nums ...

  8. 移动web——学习笔记整理

    目录 Day1 00.流式布局 00.1目标 00.2目录 01.移动端浏览器 02.视口(layout viewport) 03.meta视口标签(单标签) 04.物理像素&物理像素比 05 ...

  9. 【慕课网实战课程笔记】Vue.js高仿饿了么外卖App

    写在前面:该课程为慕课网付费课程,笔记内容代码居多.内容简略,仅供自己日后翻阅.如有疑问或者不妥,欢迎提出指正,我看到了会回复,谢谢! 第1章:课程简介 第2章:Vuejs介绍 Ctrl+Alt+l ...

最新文章

  1. 洞悉2020年数据团队建设,我们和清华、领英一起搞了个大事情,你也可以参与!...
  2. python读取数据文件-python多种读写excel等数据文件的方式(收藏篇)
  3. 【图像分类】 标签噪声对分类性能会有什么样的影响?
  4. ASP.NET中的AdRotator控件即广告控件的使用
  5. Android中图片优化之webp使用
  6. zookeeper的设计猜想-阶段一:提交事务请求(投票)
  7. 武警五防一体化是什么?五防光端机产品介绍!
  8. 用html代码写出城东早春,网页设计基础 从零开始构建HTML 页面 第2章 从零开始构建HTML页面_补充案例.doc...
  9. java获取上一天数据,java获取日历格式的日期数据
  10. python3 re正则匹配数据获取案例
  11. U2000北向 CORBA客户端代码Java编程示例
  12. 汽车can总线协议c语言,CAN总线自定义协议使用说明.pdf
  13. Deep Mind 团队论文Playing Atari with Deep Reinforcement Learning复现
  14. 目前支持WebGL的浏览器有哪些?
  15. 笔记本电脑什么牌子好 世界笔记本电脑排名
  16. 厉害了!自己动手也能做一个推荐系统!
  17. exit status 145: The directory is not empty,exit status 5: �ܾ����ʡ� ,nvm切换node版本问题汇总
  18. 购置税用计算机怎么算,进口车辆购置税可以通过网络购置税计算器来计算
  19. mysql144,通过phpMyAdmin从MySQL错误144中恢复
  20. OWASP A2 Cryptographic Failures(加密机制失效)

热门文章

  1. python制作神经网络_MicroPython动手做(10)——零基础学MaixPy之神经网络KPU
  2. 如何获取LINUX主机所有的IP
  3. 通过ip查询域名信息
  4. 纯分享 | 全网推荐的 AI 视频教程和书籍分享
  5. 易鑫集团上半年经调整净利润1.23亿元 同比下降53%
  6. 合并BIN文件的两种方法
  7. Caffe学习笔记(二):Caffe前传与反传、损失函数、调优
  8. IIS三种应用程序池回收方法(保姆级教程)
  9. C++字符输入方式详解
  10. Xcode7.3.1中通过最新的CocoaPod安装pop动画引擎