前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器

简介: 本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。

一、什么是css?

主要用于html页面文本内容、图片外形、版本布局等外观样式的设置

二、css语法规则

语法:
选择器 声明语句;

    div {
   
      width: 200px;
    }

div就是选择器
花括号中属性键值对就是 属性名:属性值

二、css样式的引入方式

1、行内样式–内联式
语法:

<div style="width: 100px;height: 100px;"></div>

适用于:个别元素添加特殊样式时
缺点:作用范围小,尽量不要使用

2.内部样式–嵌入式(内嵌式)

<!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>我的第一个页面</title>
  <style>
    div {
    
      width: 200px;
    }
  </style>
</head>

<body>
  <div>内容</div>
</body>

</html>

在head中单独开启一个style标签,书写 选择器和属性键值对
适用于:单个html文档需要特殊样式时
优点:相对于向内样式,代码能够服用

3.外部样式-外链式,引入的时扩展名为 .css 的文件

<head>
    <link rel="stylesheet" href="css文件的路径" type="text/css">
</head>

在这里插入图片描述

在这里插入图片描述

可以使用相对路径或者绝对路径来引入。
rel 属性:当前文件与被链接文档之间的关系,只有stylesheet得到所 有浏览器的支持,表示外部文件的类型时css文件;
适用于:多个html文档拥有相同样式时

创建步骤
1.新建一个扩展名为.css的文件,把文件保存到网站目录的css文件夹中
2.打开新建的.css文件,设置编码方式 @charset “utf-8”;
3.在html文档中链接后缀名为.css的文件:

<link rel="stylesheet" href="css文件的路径" type="text/css">

三、样式表的优先级

行间样式>内部样式>外部样式
就近原则 离标签样式越近

四、样式选择器

    *    <    div     <   class      <   id
  通配符  < 元素选择器   < class选择器   < id选择器

1.通配符选择器 * :单独使用匹配所有元素(标签) 0

  <style>
    * {
    
      padding: 0;
      margin: 0;
    }
  </style>

2.元素选择器–标签选择器、类型选择器: 1

结构中:<标签名></标签名>

<div>内容</div>

样式中:标签名{css样式}

  <style>
    div {
    
      width: 200px;
      padding:2px;
    }
  </style>

在通配选择器中设置了所以元素的padding和margin都为0,
在元素选择器中设置div的padding为2px,所以现在对于div元素生效的padding为2px。

3.class选择器–类选择器 10

结构中:<标签名 class=”类名”></标签名>
样式中:.类名{css样式}

<!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>我的第一个页面</title>
  <style>
    * {
    
      padding: 0;
      margin: 0;
    }

    div {
    
      width: 200px;
      padding:2px;
      background-color: red;
    }

    .box {
    
      width: 500px;
      padding:5px;
      background-color: blue;
      color: #fff;
    }
  </style>
</head>

<body>
  <div class="box">内容</div>
</body>

</html>

类名的权重为10,所以上方的通配符选择器、元素选择器的相同样式会被类名选择器替换掉
页面:
在这里插入图片描述

选择器的命名规范:
3.1、名称尽量有含义;
3.2名称建议以英文字母开头,字母、数字、连字符(-_);
3.3除了连字符其他字符不能使用(包括空格);
3.4不能纯数字、不能数字、中文开头;
3.5类名区分大小写;

4.id选择器 100

结构中:<标签名 id=”id名”></标签名>
样式中:#id名{css样式}

<!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>我的第一个页面</title>
  <style>
    * {
    
      padding: 0;
      margin: 0;
    }

    div {
    
      width: 200px;
      padding: 2px;
      background-color: red;
    }

    .box {
    
      width: 500px;
      padding: 5px;
      background-color: blue;
      color: #fff;
    }

    #boxId{
    
      width: 100px;
      background-color: #ccc;
      color: #fff;
    }
  </style>
</head>

<body>
  <div class="box" id="boxId">内容</div>
</body>

</html>

id选择器的权重为100,所以上方的通配符选择器、元素选择器、类名选择器的相同样式会被类名选择器替换掉
页面:
在这里插入图片描述

注意:id名字在本页面中只能出现一次;

5.选择器的优先级:一般来说选择器的权值越大,优先级越高;

1.基本选择器的全栈由小到大为:
通配符选择器(0)< 标签选择器(1)< class选择器(10)< id选择器(100)< 行间样式(1000)
2.如果选择器的权值相同,后写的内容会覆盖先写的内容

<!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>我的第一个页面</title>
  <style>
    * {
    
      padding: 0;
      margin: 0;
    }

    div {
    
      width: 200px;
      padding: 2px;
      background-color: red;
    }

    .box {
    
      width: 500px;
      padding: 5px;
      background-color: blue;
      color: #fff;
    }

    #boxId {
    
      width: 100px;
      background-color: #ccc;
      color: #fff;
    }

    #boxId {
    
      width: 100px;
      background-color: pink;
      color: #fff;
    }
  </style>
</head>

<body>
  <div class="box" id="boxId">内容</div>
</body>

</html>

在这里插入图片描述

上面 对于id为boxId 的元素,使用id选择器写了两套样式,后面和前面有相同的样式,后面的会替换前面css样式。

6.行间样式拥有最高优先级但高不过 !Important

<!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>我的第一个页面</title>
  <style>
    * {
    
      padding: 0;
      margin: 0;
    }

    div {
    
      width: 200px;
      padding: 2px;
      background-color: red;
    }

    .box {
    
      width: 500px;
      padding: 5px;
      background-color: blue;
      color: #fff;
    }

    #boxId {
    
      width: 100px;
      background-color: #ccc;
      color: #fff;
    }

    #boxId {
    
      width: 100px;
      background-color: pink;
      color: #fff;
      font-size: 12px !important;
    }
  </style>
</head>

<body>
  <div class="box" id="boxId" style="font-size: 26px;">内容</div>
</body>

</html>

在这里插入图片描述
行内样式虽然拥有最大的权重,但是也没有!important猛。

五、优先级

选择器的权值越大,优先级越高,权值相同时,谁在后面显示谁
基本选择器权值:
通配符选择器0、标签选择器1、类选择器10、id选择器100
复合选择器权值计算方式:组成复合选择器的所有单一算账去的权值累加
.box div{} 10+1 =11

box .box p{} 100+10+1=111

行间样式的优先级高于id选择器的优先级;
继承央视的权值为0;子元素中设置的样式,会覆盖继承到的样式;
在样式中定义!important,优先级高于行内样式

目录
相关文章
|
7月前
|
前端开发 JavaScript 算法
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
transform变形 css3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的 功能。 CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件 呈现出丰富的外观。 借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了transition动画。 transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画时间,就可保证动画播放。 比transitio
366 0
|
7月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
Flex 布局 布局的传统解决方案,基于盒状模型,依赖 display 属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。 2009年,W3C 提出了一种新的方案----Flex 布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。 一、Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。
483 0
|
7月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
盒模型 盒模型: 所谓盒模型,就是浏览器为页面中的每个HTML元素生成的矩形盒子。 这些盒子们都要按照可见板式模型在页面上排布。 可见的板式模型主要由三个属性控制:position 属性、display 属性和 float属性。 position属性控制页面上元素间的位置关系。 display属性控制元素是堆叠、并排或者不在页面上显示。 float属性提供控制的方法,以便于把元素组成成多栏布局。 盒模型讲解: 在默认的情况下,每个盒子的边框是不可见的,背景也是透明的。 所以我们 不能直接的看到页面中的盒
1080 1
|
7月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
490 3
|
7月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
position定位(核心) 我们讲盒模型的时候,提到了3个属性可以用来控制页面排版。 三大属性:position属性,display属性,float属性。 position 属性控制页面上元素间的位置关系。 display 属性控制页面元素是否显示或者是堆叠还是并排显示。 float 属性提供控制方法。 通过float这种控制方法,可以实现多栏布局,导航菜单等等。 position属性是干嘛用的?怎么用?有哪些属性值? position属性控制页面上元素间的位置关系,也就是排版。 怎么用?要知道怎么用
659 0
|
前端开发 JavaScript 算法
CSS【详解】样式选择器的优先级(含提升优先级的方法)
CSS【详解】样式选择器的优先级(含提升优先级的方法)
942 0
CSS【详解】样式选择器的优先级(含提升优先级的方法)
|
前端开发 JavaScript
【BUG】【CSS】【JS】JavaScript动态添加CSS的class类样式不生效,原因是css样式优先级在加载css文件的时候就确定下来的.
【BUG】【CSS】【JS】JavaScript动态添加CSS的class类样式不生效,原因是css样式优先级在加载css文件的时候就确定下来的.
785 0
【BUG】【CSS】【JS】JavaScript动态添加CSS的class类样式不生效,原因是css样式优先级在加载css文件的时候就确定下来的.
|
前端开发
css样式的优先级+ 伪类选择器:hover+选择器
css样式的优先级+ 伪类选择器:hover+选择器
257 0
|
前端开发 开发者