初识CSS

1.认识css

----早期的网页都是通过HTML来编写的,但是我们希望HTML页面可以更加丰富,这个时候就出现了css

css的出现是为了美化HTML的,并且让结构(HTML)与样式(CSS)分离

美化方式一:为HTML添加各种各样的样式,比如颜色,字体,大小,下划线等等

美化方式二:对HTML进行布局,按照某种结构显示(CSS进行布局-浮动、flex、grid)

1.1使用css 

1.1.1语法规则:

声明(Declaration):一个单独的css规则,如color:red;用来指定添加的css样式

属性名(Property name):要添加的css规则的名称;

属性值(Property value):要添加的css规则的值;

那么会编写格式了,那应该把css样式放到哪里呢?

1.1.2css样式应用到元素上: 

1.内联样式(inline style)

在元素里面直接使用style为元素设置样式,如下

  <!--内联样式-->
  <div style="color:rebeccapurple; font-size: 20px;">我是div元素</div>
  <h1 style="font-size: 100px;">我是标题</h1>

2.内部样式表(internal style sheet)、文档样式表(document style sheet)、内嵌样式表(embed style sheet)

可以给同一个页面里面多个元素设置相同的样式,如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /*选择器*/
    div{
      color: red; 
      font-size: 20px;
       background-color: aquamarine;
    }
    .div-one{
      color:blue;
      background-color: bisque;
    }
  </style>
</head>
<body>
  <div class="div-one">我是div元素</div>
  <div>我是div元素</div>
  <p>我是段落</p>
  <h1>我是标题</h1>
</body>
</html>

3.外部样式表(external style sheet)

也可以让多个页面使用相同的样式,如下

注意:使用link这个元素来引入外部资源css样式文件

           在一个html也可以引入多个css文件

补充:可以在style元素或者CSS文件中可以使用@import导入其他的CSS文件

(例如一:我们进入index页首页,把其他的页面的样式都导入到当前的CSS文件

   例如二:我们可以在style元素的设置背景属性定位到具体的资源)

例子:

03编写规则-外部样式01.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>

  <!--link元素是用来引入资源的-->
  <!--
  <link rel="stylesheet" href="./css/style.css">
  <link rel="stylesheet" href="./css/test.css">
  -->
  <link rel="stylesheet" href="./css/index.css">
</head>
<body>
  <div class="title">我是01中的title</div>
  <h1>我是test文件里面的样式</h1>
</body>
</html>

03编写规则-外部样式02.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="./css/style.css">
</head>
<body>
  <div class="title">我是02中的title</div>
</body>
</html>

 index.csszhel

.title{
  color: red; 
  font-size: 20px;
   background-color: aquamarine;
}

这样就可以html的两个页面中都使用style.css样式啦 

补充:这里我们也可以使用 @import导入其他的CSS文件

/*可以通过@import引入其他的css资源*/
@import url(./style.css);
@import url(./test.css);

@import "./style.css";

/* 这里url()是一个函数
div{
background-color: url();
}
*/

这里我们可以直接引入index.css这个文件也可以把其他文件的样式引入,我们在html文件中导入一个link就可以啦

1.1.3css的注释使用

在使用css注释的时候不用使用<!---->

而是使用/**/

例如:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /*CSS的注释*/
    .box{
      font-size: 30px;/*字体大小*/
      color:red;/*前景色*/
    }
  </style>
</head>
<body>
 <div class="box">我是盒子</div>
</body>
</html>

注意:我们会担心注释过多而导致用户在下载服务的资源的时候过多,这个想法是不必的。

我们将写好的代码使用打包工具(例如webpack)部署到服务器上面,而这里面打包工具会自动帮我们筛选不必要的代码(例如这里的注释),这样我们用户下载的资源就不会很多啦。

对于新手来说就可以多写一些注释啦~

1.1.4css学习文档

css官方文档地址:

W3C standards and drafts | W3Chttps://www.w3.org/TR/

css的推荐文档地址(中文版):

CSS 构建 - 学习 Web 开发 | MDN (mozilla.org)https://developer.mozilla.org/zh-CN/docs/Learn_web_development/Core/Styling_basics由于浏览器版本、css版本等问题、查询某些css是否可用可以到

这个网站在后续的browserlist工具中我们再详细说明:

(现在有很多webpack工具辅助我们,不需要手动的去兼容,提高开发效率)
Can I use... Support tables for HTML5, CSS3, etchttps://caniuse.com/

 1.2常见的css属性

 浏览器也用户提供了一些能查看css样式的地方

在开发者工具里面 ---- 点击下面图标

把鼠标放上去,如下所示:

font-size属性:设置字体大小

在vscode开发工具中,快捷键fz

color属性:设置前景色

background-color属性:设置背景色

在vscode开发工具中,快捷键bgc

补充:这里为什么div会占据一行呢?

本质上:span和div是一样的,只是使用了同一个属性display:block;

width属性和height属性

div元素默认的宽度是一整行,默认的高度是内容的高度

那么试想,如果我要加一个span元素的话,把weith和height的大小设置为100px,那么span会放到div元素的左面吗?

答案是,不会的。div是块级元素,不管width怎么变小,都不会放在一行上面。当然也可以放到一行上面,后续的flex布局再说。

以上属性的代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /*font-size*/
    .title{
      font-size: 24px;
      color:brown;
      background-color: aqua;
      width: 200px;
      height: 200px;
    }

  </style>
</head>
<body>
  <div class="title">Hello World</div>
  <span>我是span元素</span>
</body>
</html>

案例练习:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
     .item{
      width: 500px;

      /*不让div独占一行(单独学习,了解)*/
      display: inline-block;
      vertical-align: top;

      /*方法二:浮动不占一行*/
      /*float: left;*/
     }
     .album{
      width: 100%;
     }
     .keyword{
      font-size: 30px;
      color:aliceblue;
      background-color: orange;
     }
     
  </style>
</head>
<body>
  <h1>星球介绍</h1>
  <!--金星-->
  <div class="item">
    <h2>金星</h2>
    <img class="album" src="../images/jinxing.jpg">
    <p>
      <span class="keyword">太阳系Venus</span>中第六大行星,太阳系中温度最高的行星,中国古代称之为太白或太白金星。它有时是晨星,黎明出现于东方天空,被称为“启明”;有时又是昏星,黄昏后出现于西方天空,被称为“长庚”。
    </p>
  </div>
  <div class="item">
    <h2>地球</h2>
    <img class="album"src="../images/diqiu.jpg">
    <p>
      <span class="keyword">地球Earth</span>是距太阳第三颗,也是太阳系第五大行星,地球是太阳系中密度最大的行星。地球,当然不需要飞行器即可被观测,然而我们直到二十世纪才有了整个行星的地图。由空间拍到的图片应具有合理的重要性;举例来说,它们大大帮助了气象预报及暴风雨跟踪预报。
    </p>
  </div>
</body>
</html>

1.3知识点补充 

1.3.1link元素

是外部资源链接元素,规范了文档与外部资源的关系

link元素通常在head元素中

怎么用?

最常用的链接是样式表css

此外也可以被用来创建站点图标(比如“favicon”图标)

link元素常见的属性

#href:此属性指定被链接资源的URL。URL可以是绝对的,也可以是相对的

#rel:指定链接类型,常见的链接类型:

HTML 属性:rel - HTML(超文本标记语言) | MDN (mozilla.org)https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Attributes/rel

          icon:站点图标

          stylesheet:CSS样式

链接类型的超级补充:

在浏览器去请求服务器中的外部资源的时候,提前进行解析域名,就可以直接找到对应的ip,把资源下载下来。

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!</title>
  <!--引入css-->
  <link rel="stylesheet" href="./css/link_style.css">
  <!--引入icon(站点图标)-->
  <link rel="icon" href="../images/favicon.ico">
</head>
<body>
  
</body>
</html>

1.3.2认识进制 

例如:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    console.log(99)
    console.log(0b11000001)
  </script>
</body>
</html>

1.3.3css颜色的表示方法 

这里我们可以使用rgb函数来表示

例如:

这里的rgb函数与#直接表达的颜色是一样的

rgb函数的取值是十进制范围在0到255

但是#后面是六位的八进制数

所以颜色是一样的。

1.3.4Chrome开发者工具的使用 

打开调试工具:

方法一:快捷键ctrl+shift+i

方法二:右键-检查

其他技巧:

----“ctrl”+“+”可以放大界面

----右击界面上面的元素-检查-可以在开发者工具中定位到具体的元素的html

----也可以在开发者工具中对Elements进行删除元素来检查结构,那么元素就会在界面上直接消失,(这里不用担心,页面元素会消失,点击刷新按钮,元素就会恢复原来的样子)

----可以通过这个选择按钮,图标变蓝后,把鼠标放在界面上面的元素,元素的html会在开发者工具中直接进行定位。

----也可以在元素中的style中的样式直接对元素进行样式修改,会直接反应在页面上。

----可以通过这个按钮,图标变蓝后,会把页面转换成移动端的页面展示

----这个控制台是对js进行代码调试(后续讲解)

1.3.5浏览器的渲染流程 

我们把写好的html和css以及js交给浏览器的时候,浏览器的渲染流程是什么呢?

首先,浏览器从index.html文件中开始解析成dom树,也就是从<!DOCTYPE html>开始解析。

然后,解析到html-head和body在解析到head的外部资源的时候,会去下载。(这里解析好的dom树不会被直接渲染到浏览器中,会先等待css文件解析好,并且css文件样式对应到树节点上才会继续真正渲染)那么此时内部线程会独自开辟一条线程去下载css等外部资源,然后并且去解析。

然后,dom树上面的html元素解析好后并且在css文件解析好之后,css会把对应的元素的样式给解析到dom树上面的元素。

最后,最后这个时候形成的这个完整的Render Tree树会再去真正的渲染到浏览器中。

这里我们先说html和css的解析过程,后续的js会影响dom树,后续再说。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值