欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WEB_Day02(CSS简介、样式规则、字体样式属性、选择器、注释、外观属性、样式表、标签的显示模式、复合选择器)

程序员文章站 2022-04-27 22:33:37
...

WEB_Day02(CSS简介、样式规则、字体样式属性、选择器、注释、外观属性、样式表、标签的显示模式、复合选择器)

CSS简介

CSS 通常称为CSS样式表或者层叠样式表(级联样式表)。主要用于设置HTML页面中的文本内容(字体 大小 对齐方式) ,图片(宽度、高度、边框、边距等) 版面的布局.
CSS是以HTML为基础,提供丰富的各种功能 ,字体、颜色、背景、的控制,整体的排版,而且还可以针对不同的浏览器设置不同的样式。

CSS样式规则

  <style>
    h1 {
      color: red;
      font-size: 20px;
    }

    body {
      background-color: seagreen;
    }
  </style>

规则:

  1. h1 和body 是选择器 用于指定css样式作用的HTML对象,花括号内部是对该对象设置的具体的样式。
  2. 属性和属性值以键值对的形式出现
  3. 属性是对指定的对象设置样式属性。
  4. 属性和属性值之间以英文的冒号连接
  5. 多个键值对之间按使用英文的分号区分。

CSS字体样式属性

字体的大小 font-size:

设置字号,该属性的值可以使用相对长度单位,也可以使用绝对长度单位,其中相对长度单位比较常见,推荐使用px(像素)
可以使用绝对长度:
px像素,in 英寸,cm 厘米,mm 毫米,pt 点

字体的设置 font-family:

WEB_Day02(CSS简介、样式规则、字体样式属性、选择器、注释、外观属性、样式表、标签的显示模式、复合选择器)
在表示字体的时候,可以使用英文,也可以使用中文字体,如果当我们使用英文字体名称的时候,此时如果字体的名称是由一个单词组成,则可以直接写,如果是由多个单词组成,则需要加双引号或者单引号
中文字体名一般都需要使用单引号或者双引号引起来

      font-family: '华文中宋', Courier, monospace;
  1. 在网页中,普遍使用的字号为14px
  2. 尽量使用偶数的数字字号,因为在ie6中 对奇数的支持有bug
  3. 各种字体之间必须使用英文的逗号分割
  4. 中文字体需要加上英文的引号
  5. 可以同时设置多个字体,多个字体之间是一种备选关系。
  6. 在使用字体的时候尽量使用一些系统默认的常规字体

字体的粗细 font-weight:

  <b>字体的粗细程度</b>
 <strong>这是第二种设置字体的粗细</strong>

使用CSS实现字体的粗细程度的设置可选的值:
WEB_Day02(CSS简介、样式规则、字体样式属性、选择器、注释、外观属性、样式表、标签的显示模式、复合选择器)
数字的范围:100-900
属性值:normal(400) bold(700) bolder lighter

字体的风格 font-style:

主要设置字体是否倾斜,相应的标签 i 和 em

<b><i>字体的粗细程度</i></b>
<strong><em>这是第二种设置字体的粗细</em></strong>

WEB_Day02(CSS简介、样式规则、字体样式属性、选择器、注释、外观属性、样式表、标签的显示模式、复合选择器)
Nomal:默认值,浏览器显示为标准字体
Italic:斜体的字体
Oblique:显示为倾斜

字体的综合设置:

      font: oblique 700 40px "楷体";

具体语法:选择器:{font: font-style font-weight font-size font-family}
在使用的过程中,必须严格遵循上边的语法,顺序不能更换
其中的一些属性是可以省略,省略之后可以取它的默认值,但是必须保留 font-size 和 font-family ,否则font属性将不起作用

选择器(重点)

标签选择器(元素选择器):

使用HTML标签名作为选择器。
语法:
标签名【元素名】{属性:属性值;属性:属性值}

<div>
    <b><i>字体的粗细程度</i></b>
    <strong><em>这是第二种设置字体的粗细</em></strong>
</div>
<div>
    使用CSS来改变字体的粗细程度
</div>
div {
      /* font-size: 35px;
      font-weight: 400;
      font-style: oblique; */
      font: 40px "楷体";
    }

类选择器:

类选择器使用“.”(英文的点号) 进行标识,后面紧跟类名
语法:
.类名{属性:属性值;属性:属性值}
WEB_Day02(CSS简介、样式规则、字体样式属性、选择器、注释、外观属性、样式表、标签的显示模式、复合选择器)
完成上边google样式:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      background-color: cadetblue;
      width: 500px;
      height: 200px;
    }

    span {
      font-size: 100px;
      font-weight: 800;
    }

    .blue {
      color: blue;
      /* color 设置前景色 字体颜色*/
    }

    .red {
      color: red
    }

    .orange {
      color: orange;
    }

    .green {
      color: green;
    }
  </style>
</head>

<body>
  <div>
    <span class="blue">G</span>
    <span class="red">o</span>
    <span class="orange">o</span>
    <span class="blue">g</span>
    <span class="green">l</span>
    <span class="red">e</span>
  </div>
</body>
</html>

类名选择器可以实现样式的复用

多类名选择器:

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      background-color: cadetblue;
      width: 500px;
      height: 200px;
    }

    span {
      font-size: 100px;
      font-weight: 800;
    }

    .blue {
      color: blue;
      /* color 设置前景色 字体颜色*/
    }

    .red {
      color: red
    }

    .orange {
      color: orange;
    }

    .green {
      color: green;
    }

    .f {
      font: 200px "楷体"
    }
  </style>
</head>

<body>
  <div>
    <span class="blue f">G</span>
    <span class="red">o</span>
    <span class="orange f">o</span>
    <span class="blue">g</span>
    <span class="green">l</span>
    <span class="red">e</span>
  </div>
</body>
</html>

id选择器:

id选择器是通过元素的id属性来进行选择,同时使用id选择元素的时候,需要使用#来进行标识
语法:
#id{属性:属性值;属性:属性值}
当我们使用id选择器的时候必须保证选择的元素具有id属性,id 属性是唯一的

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    #d1 {
      width: 200px;
      height: 200px;
      background-color: greenyellow;
    }

    #d2 {
      width: 100px;
      height: 100px;
      background-color: hotpink;
    }
  </style>
</head>

<body>
  <div id="d1">

  </div>
  <div id="d2">

  </div>
</body>

</html>

id选择器和类选择器最大的不同在于使用的次数上

通配符选择器:

通配符*来标识,它是所有选择器中作用范围最广的,可以匹配页面中所有的元素

*{属性:属性值;属性:属性值}

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    #d1 {
      width: 200px;
      height: 200px;
      background-color: greenyellow;
      margin-left: 100px;
      margin-top: 50px;
      padding-left: 10px;
    }

    #d2 {
      width: 100px;
      height: 100px;
      background-color: hotpink;
    }

    * {
      margin: 0;
      /*设置外边距*/
      padding: 0;
      /*内边距*/
    }
  </style>
</head>

<body>
  <div id="d1">
    <div id="d2">

    </div>
  </div>

</body>

</html>

使用通配符设置的样式适用于所有的元素

伪类选择器:

伪类选择器:用于向某些选择器添加特殊的效果

连接伪类选择器:

  • :link 未访问的连接
  • :visited 已访问的连接
  • :hover 鼠标移动到连接上
  • :active 选定的连接
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    a {
      font-weight: 700;
      font-size: 25px;
      color: gray;
    }

    a:hover {
      color: red;
    }

    a:visited {
      color: green;
    }
  </style>
</head>

<body>

  <a href="http://www.baidu.com">百度</a>
</body>

</html>

结构(位置)伪类选择器:

  • :first-child 选取属于父元素的首个子元素的指定的选择
  • :last-child 最后一个子元素
  • :nth-child(n) 匹配属于父元素的第n个子元素
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    li {
      font: 100px "楷体"
    }

    ul {
      margin-left: 50px;
    }

    /* li:first-child {
      color: red;
    }

    li:last-child {
      color: green;
    }

    li:nth-child(3) {
      color: orange;
    } */
    li:nth-child(even) {
      /*选择偶数的元素*/
      color: red;
    }

    li:nth-child(odd) {
      /*选择奇数的元素*/
      color: green;
    }

    li:nth-child(2n) {
      /*2的倍数的元素  还可以表示其他的倍数 3的倍数的表示3n  在样式设置中,后边的样式会覆盖掉前边的样式*/
      color: greenyellow;
    }
  </style>

</head>

<body>
  <ul>
    <li>苹果</li>
    <li>香蕉</li>
    <li>橘子</li>
    <li>橙子</li>
    <li>西瓜</li>
  </ul>
</body>

</html>

目标伪类选择器:

  • :target目标伪类选择器,可用于选择当前活动的目标元素
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    #a1:target {
      color: red;
    }
  </style>
</head>
<!-- 
  当点击a标签的时候 a标签此时是连接到h1的。 此时的h1就是a标签的目标  所以我们看到的效果就是h1标签的元素的颜色编变成了红色

 -->
<body>
  <h1 id="a1">山西太原</h1>
  <a id="a2" href="#a1">中北大学</a>
</body>

</html>

注释

/* 
这是css的注释 
*/  
<!--
 这是html的注释
 --> 

CSS外观属性

color 文本颜色:

Color属性的取值方式有三种:

  1. 预定义颜色值,如:red、green、blue、pink等
  2. 十六进制,如 #ffffff 白色,#000000 黑色,对于这种两位十六进制表示RGB中的一种颜色 如果相邻两位的十六进制相同则可以省略,如:#fff #000
  3. RGB表示方式,如红色rgb(255,0,0) 还可以使用百分数 rgb(100%,0%,0%) 当使用rgb表示颜色,且使用百分数的时候即使取值为0百分号也不能省略

行间距 line-height:

行间距在设置的时候一般需要根据字号来设置,一般行间距比字号大7-8个像素即可
行间距的设置可以使用像素 px、百分比 %、em

<style>
    body {
      background-color: burlywood;
    }

    p {
      font: 25px "宋体";
      color: rgb(100%, 0%, 0%);
      line-height: 33px;
    }
  </style>
</head>

<body>
  <p>Color属性的取值方式有3中:
    1 预定义颜色值 如:red green blue pink等
    2 十六进制 如 #ffffff 白色 #000000黑色 对于这种两位十六进制表示RGB中的一种颜色 如果相邻两位的十六进制相同 则可以省略 #fff #000
    3 RGB表示方式 如红色rgb(255,0,0) 还可以使用百分数 rgb(100%,0%,0%) 当使用rgb表示颜色 且使用百分数的时候 即使取值为0 百分号也不能省略
  </p>

水平对齐方式 text-align:

可取值:left、right、center
该属性相当于html中align属性

  text-align: center;

首行缩进text-indent:

设置段落首行缩进,属性值可以为不同的单位的数值,像素、百分比,是一个相对值,em(字符宽度的倍数)
2em就是缩进两个汉字

  text-indent: 2em;

字间距 letter-spacing:

可以使用不同单位的数值,也可以是相对值,对于中文指的是两个汉字之间的空白间隙,而对英文,则是字母之间的间距

letter-spacing: 20px;

单词间距 word-spacing:

主要用于设置英文单词之间的间距,对中文字符无效

  word-spacing: 20px;

颜色的半透明:

Color:rgba(r,g,b,a) a表示透明度,a的取值范围是0-1

color: rgb(100%, 0%, 0%, 0.8);

字体阴影:

Text-shadow:水平位置、垂直位置、模糊距离、阴影颜色
水平位置和垂直位置必须设置,后边模糊距离和阴影颜色可省略

      text-shadow: 10px 10px 20px gray;

CSS样式表的使用(书写位置)

行内样式表(内联式):

通过标签的style属性来设置元素的样式
<标签名 style=“属性名:属性值;属性名:属性值”>
style属性是所有的html元素所共同拥有的一个属性

  <p style="font-size: 20px;font-weight: 700; color: greenyellow;">
    全球最大的中文搜索引擎、致力于让网民更便捷地获取信息,找到所求。百度超过千亿的中文网页数据库,可以瞬间找到相关的搜索结果
  </p>

该方式一般不推荐使用,导致html代码和css代码混合,不好维护

内部样式表(内嵌式):

是在head中使用style标签来定义样式
之前我们的使用都是内部样式表

<style>
    body {
      background-color: burlywood;
    }

    p {
      font: 25px "宋体";
      color: rgb(100%, 0%, 0%, 0.8);
      line-height: 33px;
      text-align: left;
      text-indent: 2em;
      /* letter-spacing: 20px; */
      word-spacing: 20px;
    }

    div {
      font: 200px "楷体";
      text-shadow: 10px 10px 20px gray;
    }
  </style>

一般位于head,也可以写在其他位置

外部样式表(外联式)推荐方式:

将样式单独定义在一个css文件中,在需要使用的时候引入该样式文件即可

  1. 创建一个样式文件,该文的扩展名为.css

  2. 在样式文件中编写相应的样式
    WEB_Day02(CSS简介、样式规则、字体样式属性、选择器、注释、外观属性、样式表、标签的显示模式、复合选择器)

  3. 在需要使用该样式的html文件中使用link标签连接到该样式文件

  <!-- 
     href :指定连接的外部样式文件的路径
     type 定义连接文档的类型 如果式css文件 改值只能为txt/css
     rel 定义当前文档与被连接文档的之间的一个关系 这里取值只能为stylesheet

   -->
  <link href="css/index.css" type="text/css" rel="stylesheet" />

三种方式的比较:

样式表 优点 缺点 优先级
行内样式表 书写方便 没有分离代码 不便于维护
内嵌样式表 内部实现了分离 没有完全分离 次之
外部样式表 实现了彻底分离 需要单独引入 最低

将来在开发中,如果拿到前端人员做出来的页面,觉得样式有不合适的地方,需要修改,此时最好不要取改变原来的样式文件, 可以采用选择优先级高的样式表来修改当前你需要修改的样式

标签的显示模式

HTML中的标签一般分为块标签和行内标签,它们也称为块元素和行内元素

块级元素:

每一个块级元素通常都独占一行或者多行,可以对其设置宽度、高度、对齐方式等属性,常用于网页布局和网页结构的搭建
常见的块级元素:
标题标签<h1>~<h6> <p> <div> <ul> <ol> <li>
div是块级元素的典型代表
块级元素的特点:

  1. 总是从新行开始
  2. 宽、高、边距都是可控的
  3. 宽度默认是100%
  4. 可以容纳内联元素和其他的块元素

行内元素:

行内元素不独占一行,该元素所占有的空间大小仅仅只是依靠其本身的内容来支撑。一般不可以设置宽度、高度、对齐方式等属性 。常用于控制页面中文本的样式
常见的行内元素: a strong b em I del s ins u span
span是行内元素的代表
Del s 删除线 ins u 下划线
行内元素的特点:

  1. 和相邻元素位于同一行
  2. 宽高的设置是无效的,但内边距是可以设置,外边距设置时只能设置水平方向
  3. 默认的宽度就是本身所容纳的内容的宽度
  4. 行内元素只能容纳文本或者其他的行内元素(a特殊)

行内块元素:

行内元素中有几个特殊的标签 img input td 可以对他们设置宽度和对齐方式 。有些地方将其称为行内块元素
行内块元素的特点 :

  1. 相邻元素在一行但是之间会存在缝隙
  2. 默认的宽度也是内容的宽度
  3. 宽度、行高、外边距以及内边距都可以控制
  <img src="imgs/timg.jfif" width="200" height="200" />
  <img src="imgs/timg.jfif" width="200" height="200" />

转换标签的显示模式Display:

  • 块级标签转换为行内标签 display:inline
  • 行内标签可以转换为块级标签 display : block
  • 转换为行内块标签 display inline-block
 <ul>
    <li><a href="#">首页</a></li> |
    <li><a href="#">简介</a> </li> |
    <li>关于我们</li>
  </ul>

可以将ul转换为导航栏

  li {
      display: inline;
    }

CSS复合选择器

复合选择器就是由两个或两个以上的基础选择器,通过不同的方式组合而成,目的是为了可以选择更准确的目标元素。

交集选择器:

由两个选择器构成,其中第一个为标签选择器,第二个为class选择器,两个选择器之间不能有空格

  <style>
    h1.c1 {
      color: red;
      font-size: 50px;
    }
  </style>
<h1 class="c1">交集选择器</h1>

并集选择器:

使用多个选择器,多个选择器之间使用逗号分割,可以是任意基础选择器

<style>
    h1,
    .c1 {
      color: red;
      font-size: 50px;
    }
  </style>
<h1 class="c1">交集选择器</h1>
<h2 class="c1">并集选择器</h2>

后代选择器:

后代选择器又称为包含选择器,用来选择元素或元素组的后代,写法把外层标签写在前面 内存标签写在后面,中间使用空格分割

div h3 {
      color: lawngreen;
    }
 <div>
    <h3>
      后代选择器
    </h3>
</div>

子元素选择器:

只能选择作为某元素子元素的元素,写法把父级元素写在前面,子级元素写在后边,中间使用>来进行连接

 ul>li {
      color: lawngreen;
    }
<div>
    <ul>
      <li>公司首页</li>
      <li>公司简介</li>
      <li>公司产品</li>
      <li>联系我们</li>
    </ul>
</div>

属性选择器:

通过元素的属性来选择目标元素

选择器 意义
E[attr] 选择具有attr属性的元素
E[attr=val] 选择具有attr且值为val的元素
E[attr*=val] 选择属性值里包含val字符的且在任意位置
E[attr^=val] 属性值包含val且在开始位置
E[attr$=val] 属性值包含val且在结束位置
 li[type] {
      border: 1px solid gray;
    }

    li[type="vegetable"] {
      background-color: green;
    }
<ul>
    <li type="fruit" color="green">西瓜</li>
    <li type="vegetable" color="greenyellow">西兰花</li>
    <li type="meat">牛肉</li>
    <li type="meat  hot">猪肉</li>
</ul>

伪元素选择器:

  1. E::first-letter 文本的第一个单词或字
  2. E::first-line 文本的第一行
  3. E:: selection 可改变选中的文本的样式
	p::first-letter {
      font-size: 20px;
      color: red;
    }

    p::first-line {
      color: royalblue;
    }

    p::selection {
      color: goldenrod;
    }

可以给元素的开始和结束添加内容,但是必须结合content属性