博客列表 >CSS入门(基础概念和相关知识点细说)

CSS入门(基础概念和相关知识点细说)

G
G原创
2020年10月13日 23:16:30652浏览

CSS 基础知识点

1. css 是什么

  • css: cascade style sheet(层叠样式表)
  • css 是编程语言吗? 不是
  • 核心:层叠, 盒模型, 单位(px/em/rem/vh/vw/fr),定位,浮动…

2. 声明、声明块、选择器、规则集

  • 声明:声明是有一个属性和一个值组成;
  1. color: yellow;
  • 声明块:用一个{}将多个声明包裹起来;
  1. {
  2. color:red;
  3. font-weight:normol;
  4. }
  • 选择器:写在声明块前面的一个标识符,用来选择页面中一个或多个元素;
  1. /* 标签选择器selector */
  2. h1{
  3. color:red;
  4. font-size:10px;
  5. }
  6. /* id选择器 */
  7. /* #id{} */
  8. #page-title{
  9. color:green;
  10. }
  11. /* class类选择器 */
  12. /* .class{} */
  13. .title{
  14. colorblue;
  15. }
  • 规则集(规则):选择器和声明块组成
  1. /* 选择器+声明块 */
  2. .class{
  3. color:blue;
  4. font-weight:20px;
  5. }

  • 选择器的优先级
    tag<class<id<style属性<!important

这里的 style 是行内元素的属性!

  1. <p style="color:blue;">这是一个行内元素的设置</p>

important 是最高级的,直接把当前类提升到最高级别。在实际使用过程中尽量不要去使用他,除非特别情况!

  • 例如:
  1. /* #设置类title优先级为最高级。
  2. 页面之中优先显示 而id的css属性将会被覆盖*/
  3. .title{
  4. color:red !important;
  5. }
  6. #page-title{
  7. color:blue;
  8. }

3. 层叠

  1. 层叠的意义

    当一个元素可以被多种选择器匹配时, 层叠可以解决样式设置上的冲突

  2. 层叠解决样式冲突的三种方案

  • 样式表的来源
  • 选择器的优先级
  • 源码的顺序

    源码的顺序越是在后面优先级越是大于前面的,

  1. .title{
  2. color:blue;
  3. }
  4. #page-title{
  5. color:green;
  6. }
  7. /* 根据源码的顺序,#page-title是在后面的,所以要优先于类title */

4. style 样式引入的方式

  1. 行内引入
  • 在标签内添加 style 属性。
  1. <p style="color:blue;">这是一个行内元素的设置</p>
  1. 当前页面引入。
  • 通过 style 标签来实现
  1. <style>
  2. .title {
  3. color: red !important;
  4. }
  5. #page-title {
  6. color: blue;
  7. }
  8. </style>
  1. 引入外部资源(公共样式表)
  • 通过 link 标签引入
  1. <link rel="stylesheet" href="style1.css" />

常见外部样式表:common.css,jQuery.css, layui.css,<link>引入

  • 通过特殊规则引入,搭配 style 标签
  1. <style>
  2. /* url内的引号可加可不加 */
  3. @import url("style样式表的位置");
  4. </style>

选择器的优先级

tag < class < id

5. 用户代理样式

  • 用户代理: 就是浏览器,代理的是用户的 http 请求,请求一个网络资源 URL
  • 浏览器默认样式

    6. 选择器的优先级方案

案例 id class tag 标识
html body header h1 0 0 4 0, 0, 4
body header h1.page-title 0 1 3 0, 1, 3
.header-page .page-title 0 2 0 0, 2, 0
#page-title 1 0 0 1, 0, 0

标识:标识是由(id,class,tag)的个数组成。

  • (0,0,4)
  1. /* (0 , 0, 4) */
  2. html body header h1 {
  3. color: aqua;
  4. }

效果展示:

  • (0,1,3)
  1. /* (0 , 0, 4) */
  2. html body header h1 {
  3. color: aqua;
  4. }
  5. /* (0,1,3) */
  6. body header h1.page-title {
  7. color: rgb(15, 252, 86);
  8. }

为什么不显示(0,0,4)的而显示(0,1,3)的?因为(0,1,3)内含有一个 class,而(0,0,4)之中没有,所以(0,0,4)的优先级小于(0,1,3),所以选择器优先选择优先级高的(0,1,3),所以显示(0,1,3)
效果展示:

  • (0,2,0)
  1. /* (0 , 0, 4) */
  2. html body header h1 {
  3. color: aqua;
  4. }
  5. /* (0,1,3) */
  6. body header h1.page-title {
  7. color: rgb(15, 252, 86);
  8. }
  9. /* (0,2,0) */
  10. .header-title .page-title {
  11. color: darkorchid;
  12. }

最后只显示(0,2,0)的,因为(0,2,0)优先级最大!
效果展示:

  • (1,0,0)
  1. /* (0 , 0, 4) */
  2. html body header h1 {
  3. color: aqua;
  4. }
  5. /* (0,1,3) */
  6. body header h1.page-title {
  7. color: rgb(15, 252, 86);
  8. }
  9. /* (0,2,0) */
  10. .header-title .page-title {
  11. color: darkorchid;
  12. }
  13. /* (1,0,0)id属性最高,优先级高,所以显示 */
  14. #page-title {
  15. color: coral;
  16. }

最后效果:

7. 注意

  • 尽可能不要用!important
  • 尽可能不要用id

  • 为什么要少用或不用 id?

    • 原因是级别太高, 丧失了灵活性
  • 为什么尽可能不用 tag?
    • 因为 css 的本质是为了”样式复用”
  • 尽可能在可用的情况下,使用 class 来完成

8. 继承

  • 有的属性可以被继承,如颜色,字体等文本, 有的则不行, 如盒模型、表格
  • 二个关键字
    • inherit: 继承
    • initail: 初值
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议