web前端——css

简介: web前端——css

1、样式表

1、内部样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<style>
    h1{
        color: red;
    }
</style>
<h1>内部样式</h1>
</body>
</html>

2、外部样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--    引入外部样式1-->
    <link rel="stylesheet" href="./index.css">
<!--    或者这么写-->
    <style>
        @import "index.css";
    </style>
</head>
<body>
<h1>外部样式</h1>
</body>
</html>

扩展(面试):link和import之间的区别?

差别1:本质的差别:link属于XHTML标签,而@import完全是CSS提供的一种方式。

差别2:加载顺序的差别:当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显。


差别3:兼容性的差别:@import是CSS2.1提出的,所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。


差别4:使用dom(document o bject model文档对象模型 )控制样式时的差别:当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的.

3、行内样式(内联样式、嵌入式样式)

<h1 style="color: red">行内样式</h1>

4、样式的优先级

行内样式 > 内部样式 > 外部样式(就近原则)

如果三种写法都有相同的属性,属性后面加上!important则该样式优先。也就是!important针对的是相同的标签的相同属性。

2、选择器

要使用CSS对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器

1、类/class选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<style>
    .top{
        color: red;
    }
    .foot{
       background-color: blanchedalmond;
    }
</style>
    <h1 class="top">class选择器</h1>
    <h2 class="top foot">一个标签可以起两个或者多个类名</h2>
</body>
</html>

如果标签中存在多个类的时候,是按照style中的选择器的顺序进行覆盖的,不是按照class内的顺序覆盖渲染的。

2、id选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<style>
    #top{
        color: red; 
        width: 200px;
        height: 200px;
        background-color: aqua;
    }
</style>
    <div id="top">id选择器</div>
</body>
</html>

id选择器具有唯一性。一个标签只能有一个id.

3、通配符选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<style>
    *{
        margin: 0;
        padding: 0;
    }
</style>
    <div>通配符选择器</div>
</body>
</html>

4、群组和后代/包含选择器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<style>
    div, p ,h2{
        color: red;
    }
</style>
    <div>群组选择器</div>
    <p>群组选择器</p>
    <h2>群组选择器</h2>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<style>
    div p{
        color: red;
    }
</style>
    <div>
        <p>div中的p标签</p>
    </div>
       <p>div外面的p标签</p>
</body>
</html>

后代选择器的选择实际上是从右到左的选择,也就是先选择p标签再选择div标签。

5、伪类选择器

伪类选择器一般使用在a标签上。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    /*初始状态(未访问之前)*/
    a:link{
        color: black;
    }
    /*访问之后的*/
    a:visited{
        color: yellow;
    }
    /*鼠标悬停*/
    a:hover{
        background-color: red;
    }
    /*点击激活后*/
    a:active{
        color: aqua;
    }
</style>
<body>
<a href="####">a标签</a>
</body>
</html>

必须按照link---visited---hover---active的顺序书写。否则存在覆盖的问题。

伪类选择器小案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
   div{
       width: 300px;
       background-color: darkblue;
   }
  a{
      background-color: darkblue;
      color: white;
  }
   a:hover{
       background-color: red;
   }
</style>
<body>
<div>
    <a href="###">军事</a>
    <a href="###">财经</a>
    <a href="###">科技</a>
    <a href="###">医疗</a>
</div>
</body>
</html>

6、选择器的权重

当多个代码段选择的是相同的元素的,并且都为他们定义了样式。如果属性发生了冲突的话,会选择权重高的来执行。对于相同权重的选择器则会按照就近原则。对于包含选择器,其权重为选择器之和。

id选择器 > class选择器 > 元素选择器

相关文章
|
1天前
|
JavaScript 前端开发 UED
【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
【5月更文挑战第2天】【Web 前端】如何将一个 HTML 元素添加到 DOM 树中的?
|
1天前
|
JavaScript 前端开发 索引
【Web 前端】jQuery 里的 each() 是什么函数?你是如何使用它的?
【5月更文挑战第2天】【Web 前端】jQuery 里的 each() 是什么函数?你是如何使用它的?
|
1天前
|
存储 前端开发 JavaScript
【Web 前端】如何找到所有 HTML select 标签的选中项?
【5月更文挑战第2天】【Web 前端】如何找到所有 HTML select 标签的选中项?
|
1天前
|
JavaScript 前端开发 C++
【Web 前端】JavaScript window.onload 事件和 jQuery ready 函数有何不同?
【5月更文挑战第2天】【Web 前端】JavaScript window.onload 事件和 jQuery ready 函数有何不同?
|
1天前
|
前端开发 JavaScript
【Web 前端】$(document).ready() 是个什么函数?为什么要用它?
【5月更文挑战第2天】【Web 前端】$(document).ready() 是个什么函数?为什么要用它?
|
1天前
|
JavaScript 前端开发
【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
【5月更文挑战第2天】【Web 前端】如何在点击一个按钮时使用 jQuery 隐藏一个图片?
|
2天前
|
JavaScript 前端开发
【Web 前端】 jQuery 里的 ID 选择器和 class 选择器有何不同?
【5月更文挑战第1天】【Web 前端】 jQuery 里的 ID 选择器和 class 选择器有何不同?
|
2天前
|
JavaScript 前端开发
【Web 前端】网页上有 5 个div元素,如何使用JQ来选择它们?
【5月更文挑战第1天】【Web 前端】网页上有 5 个div元素,如何使用JQ来选择它们?
|
2天前
|
JavaScript 前端开发
【Web 前端】jQuery 库中的 $() 是什么?
【5月更文挑战第1天】【Web 前端】jQuery 库中的 $() 是什么?
|
2天前
|
前端开发 JavaScript UED
【Web 前端】异步函数
【5月更文挑战第1天】【Web 前端】异步函数