当前位置: 首页 > article >正文

【Javaweb02】初探CSS:网页样式设计的入门指南

在这里插入图片描述

文章目录

    • 🌍一.CSS
      • ❄️ 官方文档
      • ❄️为什么需要 CSS
      • ❄️CSS 语法
    • 🌍二.常用样式
      • ❄️字体颜色
      • ❄️宽度 width/高度 height/边框 border
      • ❄️背景颜色
      • ❄️字体样式
      • ❄️DIV 居中
      • ❄️文本居中
      • ❄️超链接去下划线
      • ❄️表格去细线
      • ❄️列表去修饰
    • 🌍三.CSS的三种使用方式
      • ❄️ 内联样式(Inline Styles)
      • ❄️ 内部样式表(Internal Style Sheet)
      • ❄️外部样式表(External Style Sheet)
    • 🌍四.CSS选择器
      • ❄️1.基本选择器
      • ❄️2.层次选择器
      • ❄️3.属性选择器
      • ❄️4.伪类选择器
      • ❄️5.伪元素选择器
    • 🌍五.选择器优先级规则
      • ❄️基本规则
      • ❄️特殊规则
      • ❄️计算选择器优先级


🙋‍♂️ 作者:@whisperrr.🙋‍♂️

👀 专栏:Javaweb学习👀

💥 标题:【Javaweb02】初探CSS:网页样式设计的入门指南💥

❣️ 寄语:比较是偷走幸福的小偷❣️

🌍一.CSS

❄️ 官方文档

CSS 指的是层叠样式表* (Cascading Style Sheets)
地址: https://www.w3school.com.cn/css/index.asp

❄️为什么需要 CSS

  1. 在没有 CSS 之前,我们想要修改 HTML 元素的样式需要为每个 HTML 元素单独定义样式属性,费心费力。所以 CSS 就出现了。
  2. 使用 CSS 将 HTML 页面的 内容与样式分离提高 web 开发的工作效率(针对前端开发)
  3. CSS 可以让 html 元素(内容) + 样式(CSS)分离,更好的控制页面

❄️CSS 语法

  1. CSS 语法可以分为两部分: (1)选择器 (2)声明
  2. 声明由属性和值组成,多个声明之间用分号分隔

在这里插入图片描述

  1. 最后一条声明可以不加分号(建议加上)

  2. 一般每行只描述一个属性

  3. CSS 注释:/*注释内容*/, 类似 java

  4. 在 head 标签内,出现了 <style type="text/css"></style>表示要写 css 内容

  5. div{} 表示对 div 元素进行样式的指定, div 就是一个选择器(元素/标签选择
    器)

  6. width: 300px(属性); 表示对 div 样式的具体指定, 可以有多个

  7. 如果有多个,使用; 分开即可, 最后属性可以没有; 但是建议写上

  8. 当运行页面时,div 就会被div{}渲染,修饰

  9. 小经验:在调试 css 时,可以通过修改颜色,或者大小来看

  10. css 的注释是/* */ ,快捷键 ctrl+/ -->

🌍二.常用样式

❄️字体颜色

颜色可以写颜色名 比如 green,也可以写 rgb 值 比如 rgb(200,200,200)和十六进制表示值 比如 #708090
在这里插入图片描述
应用实例:改变在浏览器输出的字体颜色为黄色.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>颜色</title>
<style type="text/css">
div {
/*有三种方式,指定颜色
1. 英文
2. 16 进制 #ff7d44 [使用最多]
3. 三原色 rgb(1,1,1)
*/
color: #ff7d44;
}
</style>
</head>
<body>
<div>csdn写博客</div>
</body>
</html>

❄️宽度 width/高度 height/边框 border

width: 300px;宽度/高度像素值:100px; 也可以是百分比值:50%;
height: 100px;
border: 1px dashed blue;

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>边框</title>
<style type="text/css">
div {
width: 300px;
height: 100px;
border: 1px dashed blue;
}
</style>
</head>
<body>
<div>csdn写博客</div>
</body>
</html>

❄️背景颜色

width: 定义宽;
height: 定义高;
background-color: 指定颜色;

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>背景</title>
<style>
div {
width: 200px;
height: 100px;
background-color: #ff7d44;
}
</style>
</head>
<body>
<div>csdn学博客</div>
</body>

❄️字体样式

1.font-size:指定大小,可以按照像素大小
2. font-weight : 指定是否粗体
3.` font-family : 指定类型

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字体样式</title>
<style type="text/css">
/*
说明:
1. font-size: 指定大小,可以按照像素大小
2. font-weight : 指定是否是粗体
3. font-family : 指定字体类型
*/
div {
border: 1px solid black;
width: 300px;
font-size: 40px;
font-weight: bold;
font-family: 华文新魏;
}
</style>
</head>
<body>
<div>csdn写博客</div>
</body>
</html>

❄️DIV 居中

margin-left: auto;
margin-right: auto;
代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>div 居中</title>
<style type="text/css">
div {
border: 1px blue solid; /*顺序不要求*/
width: 300px;
background: aliceblue;
font-size: 40px;
font-weight: bold;
font-family: 新宋体;
margin-left: auto;
margin-right: auto;
}
</style>
</head>
<body>
<div>csdn写博客</div>
</body>
</html>

❄️文本居中

text-align: center;
代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>文本 居中</title>
<style type="text/css">
div {
border: 1px blue solid; /*顺序不要求*/
width: 300px;
background: aliceblue;
font-size: 40px;
font-weight: bold;
font-family: 新宋体;
margin-left: auto;
margin-right: auto;
text-align: center;
}
</style>
</head>
<body>
<div>csdn写博客</div>
</body>
</html>

❄️超链接去下划线

text-decoration: none;
代码演示:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
韩顺平 Java 工程师
<title>超链接去掉下划线</title>
<!-- 1. decoration 修饰
-->
<style type="text/css">
a {
text-decoration: none;
}
</style>
</head>
<body>
<a href="http://www.baidu.com">点击到百度</a>
</body>
</html>

❄️表格去细线

设置边框 : border: 1px solid black
将边框合并: border-collapse: collapse;
指定宽度: width
设置边框: 给 td, th 指定即可 border: 1px solid black;

<style type="text/css">
table, tr, td {
width: 300px;
border: 1px solid black;
border-collapse: collapse;
}
</style>
  1. table, tr, td 表示组合选择器
  2. 就是 table 和 tr 还有 td ,都用统一的样式指定, 可以提高复用性

❄️列表去修饰

在这里插入图片描述
list-style: none;

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>列表去修饰</title>
<style type="text/css">
ul {
/*说明:list-style:none 表示去掉默认的修饰*/
list-style: none;
}
</style>
</head>
<body>
<ul>
<li>三国演义</li>
<li>红楼梦</li>
<li>西游记</li>
<li>水浒传</li>
</ul>
</body>
</html>

🌍三.CSS的三种使用方式

CSS(层叠样式表)有三种主要的使用方式,它们分别是内联样式、内部样式表和外部样式表。以下是这三种使用方式的详细介绍:

❄️ 内联样式(Inline Styles)

内联样式是将CSS样式直接写在HTML元素的style属性中。这种方式简单直接,但并不推荐大量使用,因为它不符合内容与样式分离的原则。

缺点:

  • 标签多了,样式多了,代码量庞大
  • 可读性差
  • CSS 代码没有复用性

示例代码:

<p style="color: blue; font-size: 16px;">这是一个蓝色的段落。</p>

在上面的例子中,<p>元素的样式被直接定义在style属性中,这将使该段落的文本颜色变为蓝色,字体大小为16像素。

❄️ 内部样式表(Internal Style Sheet)

内部样式表是将CSS代码写在HTML文档的<head>部分,通常位于<style>标签内。这种方式适用于单个页面的样式定义,但同样不适用于大型项目,因为它不能跨页面复用。只能在同一页面内复用代码维护不方便,实际项目中会有很多页面,需要到对应页面去修改。工作量大
示例代码:

<head>
  <style>
    body {
      background-color: #f8f8f8;
    }
    h1 {
      color: green;
    }
    p {
      font-family: Arial, sans-serif;
    }
  </style>
</head>

在这个例子中,整个页面的背景颜色、标题颜色和段落字体都被定义在<style>标签内。

❄️外部样式表(External Style Sheet)

外部样式表是将CSS代码保存在一个独立的.css文件中,然后在HTML文档的<head>部分通过<link>标签引入。这种方式是大型网站和项目中最常用的方法,因为它可以实现样式的集中管理和跨页面复用。<link rel="stylesheet" href="test.css"/>开发过程使用第三种方式
示例代码:

<head>
  <link rel="stylesheet" type="text/css" href="styles.css">
</head>

styles.css文件中,你可以这样写:

body {
  background-color: #f8f8f8;
}
h1 {
  color: green;
}
p {
  font-family: Arial, sans-serif;
}

通过这种方式,你可以将样式与HTML内容完全分离,使得网站更加易于维护和更新。
总结:

  • 内联样式:直接在HTML元素上定义,适用于简单的样式调整。
  • 内部样式表:在HTML文档的<head>部分定义,适用于单个页面的样式。
  • 外部样式表:在独立的CSS文件中定义,通过<link>标签引入,适用于大型项目和网站的样式管理。

🌍四.CSS选择器

❄️1.基本选择器

  1. 元素选择器(Type Selector)

最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。 CSS 元素/标签选择器通常是某个 HTML 元素, 比如 p、h1、a div 等 。

p {
  color: blue;
}
  1. 类选择器(Class Selector)
    选择具有特定类名的元素。
    .highlight {
      background-color: yellow;
    }
    
  2. ID选择器(ID Selector)
    选择具有特定ID的元素。每个ID在页面中应该是唯一的。
    #main-content {
      font-size: 16px;
    }
    

❄️2.层次选择器

  1. 后代选择器(Descendant Selector)
    选择指定元素内的所有后代元素。
    div p {
      margin: 10px;
    }
    
  2. 子选择器(Child Selector)
    选择指定元素的直接子元素。
    div > p {
      text-indent: 2em;
    }
    
  3. 相邻兄弟选择器(Adjacent Sibling Selector)
    选择紧接在另一个元素后的元素。
    h2 + p {
      font-weight: bold;
    }
    
  4. 通用兄弟选择器(General Sibling Selector)
    选择指定元素之后的所有兄弟元素。
    h2 ~ p {
      color: green;
    }
    

❄️3.属性选择器

选择具有特定属性或属性值的元素。

  1. 属性存在选择器
    input[type] {
      padding: 5px;
    }
    
  2. 属性值选择器
    input[type="text"] {
      border: 1px solid #ccc;
    }
    
  3. 属性值包含选择器
    a[href*="example"] {
      font-style: italic;
    }
    
  4. 属性值开头选择器
    a[href^="http"] {
      background-image: url('link-icon.png');
    }
    
  5. 属性值结尾选择器
    a[href$=".pdf"] {
      color: red;
    }
    
  6. 属性值单词选择器
    div[class~="error"] {
      color: red;
    }
    

❄️4.伪类选择器

  1. 动态伪类
    • :link - 未访问的链接
    • :visited - 已访问的链接
    • :hover - 鼠标悬停的元素
    • :active - 正在被激活的元素
    • :focus - 获得焦点的元素
  2. 目标伪类
    :target {
      background-color: #eee;
    }
    
  3. 语言伪类
    :lang(en) {
      font-family: Arial, sans-serif;
    }
    
  4. 结构伪类
    • :nth-child(n) - 选择第n个子元素
    • :nth-last-child(n) - 选择倒数第n个子元素
    • :first-child - 选择第一个子元素
    • :last-child - 选择最后一个子元素
    • :only-child - 选择唯一子元素
    • :nth-of-type(n) - 选择第n个指定类型的元素
    • :nth-last-of-type(n) - 选择倒数第n个指定类型的元素
    • :first-of-type - 选择第一个指定类型的元素
    • :last-of-type - 选择最后一个指定类型的元素
    • :only-of-type - 选择唯一指定类型的元素

❄️5.伪元素选择器

伪元素用于选择和操作文档中的特定部分。

  1. ::before
    在选定元素之前插入内容。
    p::before {
      content: "Note: ";
    }
    
  2. ::after
    在选定元素之后插入内容。
    p::after {
      content: " End of note.";
    }
    
  3. ::first-letter
    选择块级元素的第一封信首字母。
    p::first-letter {
      font-size: 200%;
    }
    
  4. ::first-line
    选择块级元素的第一行。
    p::first-line {
      font-weight: bold;
    }
    

🌍五.选择器优先级规则

在CSS中,当多个规则应用于同一个元素时,浏览器需要决定哪些样式应该应用于该元素。这就是所谓的“层叠”效应,它是CSS中“Cascading”一词的由来。选择器的优先级决定了哪些样式规则会被应用。

❄️基本规则

  1. 内联样式(Inline styles)
    直接在HTML元素上使用的style属性中的样式具有最高的优先级。
  2. ID选择器
    使用#符号定义的选择器具有第二高的优先级。
  3. 类选择器、属性选择器和伪类选择器
    使用.[]:定义的选择器具有第三高的优先级。
  4. 元素选择器和伪元素选择器
    使用元素名称或伪元素(如::before)定义的选择器具有第四高的优先级。
  5. 通配符选择器
    使用*定义的选择器具有最低的优先级。
  6. 继承的样式
    如果没有为元素指定任何样式,它将继承其父元素的样式。继承的样式优先级最低,甚至低于通配符选择器。

❄️特殊规则

  • 重要性声明!important
    使用!important声明的样式会覆盖以上所有规则,具有最高的优先级。然而,过度使用!important会导致样式管理混乱,因此应尽量避免使用。
  • 相同优先级的选择器
    如果两个选择器具有相同的优先级,则后面的选择器会覆盖前面的选择器。

❄️计算选择器优先级

选择器的优先级可以通过特定的计算方法来确定。以下是如何计算选择器优先级的基本步骤:

  1. 计算ID选择器的数量
  2. 计算类选择器、属性选择器和伪类选择器的数量
  3. 计算元素选择器和伪元素选择器的数量
  4. 忽略通配符选择器和复合选择器中的通用选择器
    每个选择器的数量决定了它的优先级,数量越多,优先级越高。以下是几个例子:
  • #id 的优先级是 100
  • .class 的优先级是 10
  • element 的优先级是 1
  • #id .class element 的优先级是 111
  • .class.class 的优先级是 20(两个类选择器)

代码演示


/* 优先级: 1 (元素选择器) */
p {
  color: blue;
}
/* 优先级: 10 (类选择器) */
.red-text {
  color: red;
}
/* 优先级: 100 (ID选择器) */
#special {
  color: green;
}
/* 优先级: 101 (ID选择器 + 元素选择器) */
#special p {
  color: purple;
}
/* 优先级: 11 (类选择器 + 类选择器) */
.red-text.bold-text {
  font-weight: bold;
}

在上述示例中,#special p 的优先级最高,因为它包含一个ID选择器和一个元素选择器,总和为101。因此,即使其他规则也适用于<p>元素,#special p中的样式也会被应用。


http://www.kler.cn/a/501997.html

相关文章:

  • 当当网热销书籍数据采集与可视化分析
  • css 布局及动画应用(flex+transform+transition+animation)
  • Vue2+OpenLayers调用WMTS服务初始化天地图示例(提供Gitee源码)
  • 基于微信小程序的汽车销售系统的设计与实现springboot+论文源码调试讲解
  • 重塑视频创作的格局!ComfyUI-Mochi本地部署教程
  • MixDehazeNet:用于图像去雾网络的混合结构块
  • 《机器学习》——TF-IDF(关键词提取)
  • 如何用python实现语音输出
  • 积鼎科技:国产自主核反应堆流体仿真解决方案
  • 深度解析Linux中的调试器gdb/cgdb的使用
  • MySQL 16 章——变量、流程控制和游标
  • 青少年编程与数学 02-006 前端开发框架VUE 23课题、UI框架
  • huggingface/bert/transformer的模型默认下载路径以及自定义路径
  • 《使用 YOLOV8 和 KerasCV 进行高效目标检测》
  • 【机器学习案列】学生抑郁可视化及预测分析
  • 迁移WSL中的ext4.vhdx文件
  • MATLAB与Python中的快速傅里叶变换频谱分析
  • R9000P发热严重
  • 聚铭网络当选中关村华安关键信息基础设施安全保护联盟理事单位
  • 2Hive表类型
  • 计算机网络 | 什么是公网、私网、NAT?
  • Linux:线程的互斥与同步
  • 基于微信小程序的食堂线上预约点餐系统设计与实现(LW+源码+讲解)
  • 【计算机网络】深入浅出计算机网络
  • windows动态壁纸音频显示效果推荐
  • 【C++补充】第二弹---深度解析布隆过滤器与海量数据处理策略