【HTML+CSS+JavaScript】02 CSS样式

1. CSS 介绍

CSS(Cascading Style Sheet),层叠样式表, 用于控制页面的样式。

CSS 能够对网页中元素位置的排版进行像素级精确控制,实现美化页面的效果,能够做到页面的样式和 结构分离。

CSS 是在 HTML 文档结构的基础上进行样式定义的。

  • HTML 提供了页面的内容和结构(标题、段落、表单、图片等)。
  • CSS 则用来控制这些内容"如何显示"(颜色、大小、位置、间距、动画等)。

例如,在前一个文章中,通过 HTML标签的学习,我们做出了一个用户登录页面的框架,这个页面可以通过 CSS 进行美化,即 CSS 可以理解为化妆术,对页面展示的内容进行 "化妆"。

文章详情:HTML 标签

2. 语法规范

选择器 + {⼀条/N条声明}

  • 选择器决定针对谁修改 (找谁)
  • 声明决定修改啥. (干啥)
  • 声明的属性是键值对. 使用 ; 区分键值对,使用 : 区分键和值

注意 :CSS 要写到 style 标签中(后⾯还会介绍其他写法) ,style 标签可以放到页面任意位置,⼀般放到 head 标签内。

【CSS 使⽤ /* */ 作为注释. (使用 ctrl + / 快速切换)】

示例:选择 div 标签作为选择器,声明修改 div 标签的内容的{字体颜色,字体大小等}

通过浏览器运行:

3. css 引入方式

3.1 行内样式

在标签内使用 style 属性,属性值是 css 属性键值对。

示例:

通过上述的例子,也说明 style 遵循就近原则,哪个较近,就用哪个颜色。

行内样式,只适合于写简单样式,只针对某个标签生效;缺点是不能写太复杂的样式。

3.2 内部样式

定义 <style> 标签,在标签内部定义 css 样式。其实我们前面讲语法规范时所用到的例子就是一个内部样式。

语法

css 复制代码
<style>
    选择器 {
        声明属性: 值;
        ............
    }
</style>

不过内部样式不常使用,因为会出现大量的代码冗余,内部样式只对当前一个 HTML 页面有效,如果有10个页面都是相同的样式,那么采用内部样式就必须在每一个页面的 <style> 里把同样的 CSS 代码重新写一遍,不方便后期的维护(假设你要把全局按钮颜色从蓝色改成红色,你需要分别打开 10 个页面,手动修改 10 次)。

3.3 外部样式

定义**<link>** 标签(<link> 标签通常放在 <head> 中),通过href 属性引入外部 css 文件。只需改一个 .css 文件,所有页面自动生效,html和css实现了完全的分离。

将样式定义在 style.css 文件中:

然后通过 link 标签的 href 属性引入 style.css 中的样式:

其中:

  • rel 属性是 relationship(关系)的缩写。它告诉浏览器:当前 HTML 文档与被链接的资源之间是什么关系。
  • 例如以下的例子, stylesheet 表示链接到的 style.css 文件与当前页面的关系是"样式表"。

通过浏览器运行:

4. 规范

1)样式大小写

虽然 CSS 不区分大小写,我们开发时统⼀使用小写字母。

2)空格规范

  • 冒号后面带空格
  • 选择器和 { 之间也有⼀个空格。

5.CSS 选择器

CSS 选择器的主要功能就是选中页面指定的标签元素,选中了元素,才可以设置元素的属性

5.1 标签选择器

标签选择器(也叫类型选择器)的作用是:选中 HTML 页面中所有特定类型的标签,并为它们统一设置 CSS 样式。

语法:

直接写标签名,后面跟上花括号内的样式规则:

如以下的代码,将所有 div 标签中的文字变成 矢车菊蓝:

通过浏览器运行:

发现 div3 并没有变成设置的颜色,这是因为浏览器默认给 <a> 标签设置了独立的颜色样式 ,并且它不会自动继承父元素的 color,所以 div3 的文字颜色不变。

想要让 a 标签变色,可以直接给 a 标签加样式:

或者可以这样写:

5.2 id 选择器

id 选择器的作用是:选中 HTML 页面中具有指定 id 属性的唯一元素/标签,并为其应用 CSS 样式。

语法:

在 CSS 中,id 选择器以**#**开头,后面紧跟 id 值:

示例:

5.3 class 选择器

class 选择器的作用是:选中 HTML 页面中所有具有指定 class 属性的元素/标签,并统一应用 CSS 样式。

语法:

在 CSS 中,class 选择器以**.**开头,后面紧跟类名:

示例:

5.4 通配符选择器

通配符选择器的作用是:选中 HTML 页面中的所有元素(包括 <html>、<body>、div、p、span 等所有标签,甚至伪元素等),并为它们统一应用 CSS 样式。

语法:

示例:


5.5 复合选择器

复合选择器(也称为组合选择器)的作用是:通过多个简单选择器组合在一起,更精确、更具体地选中页面中的目标元素。它可以减少 class 或 id 的滥用,让 CSS 更具结构化和可维护性。

复合选择器将多个简单选择器组合在一起,利用元素的特征和 DOM 关系(交集、后代、子元素、兄弟等)来精确命中目标元素,从而实现更精准、更语义化的样式控制。

示例:

示例2:无序列表标签 <ul> 和 有序列表标签 <ol>

如果只想要 a 标签改变样式,可以使用 复合选择器来设置:

6. 常用 CSS样式

例如以下的 html:

html 复制代码
<div class="test">我是文本</div>

6.1 color

设置字体颜色

除了上述中 通过 英文单词 表达颜色的方式,还可以通过

**rgb()**颜色模式表达:

  • RGB 代表 红(Red)、绿(Green)、蓝(Blue) 三个通道,每个通道取值范围 0~255(或 0%~100%),通过混合产生各种颜色。

例如 蓝色,它的三原色比例如下图:红色0,绿色0,蓝色是255,也就是纯蓝色

可以通过这个调色盘,选出我们想要的颜色:

还可以使用 hex十六进制 的方式表示:

甚至可以设置颜色的透明度:

6.2 font-size

设置字体大小

6.3 border

设置边框

边框是⼀个复合属性(有上-top 下- bottom 左-left 右-right), 可以同时设置多个样式, 不分前后顺序, 浏览器会根据设置的值自动判断。

如以上的 border 属性,对应的设置分别是设置 边框粗细,边框样式,边框颜色。

可以拆开来设置:

  • border-width:设置边框粗细
  • border-style:设置边框样式
    • dotted:点状
    • solid:实线
    • double:双线
    • dashed:虚线
  • border-color:设置边框颜色,等同于 color

border: 2px solid pink; 就等同于以下代码:

我们说过,边框是分上下左右的,我们可以分别对它的四个边框进行样式的设置,

border-width: 5px; 就等于以下的代码:

我们也可以直接这样写border-width: 2px 3px 5px 3px ,因为边框默认情况下,是按照顺时针方向分别设置边框的,即 上右下左

同样的,style 和 color 也可以通过上述的两种方式去分别设置样式:

6.4 width/height

设置宽度和高度

注意:只有块级元素可以设置宽高。因为块级元素独占一行,就可以设置宽高,而行内元素不独占一行,不能设置宽高。

对 行内标签设置同样的样式:

使用 display 属性可以修改元素的显示模式

  • display: block 改成块级元素 [常用]
  • display: inline 改成行内元素 [很少用]

将行内标签改为块级标签:

6.5 padding/margin

padding: 内边距, 设置内容和边框之间的距离。

内容默认是顶着边框来放置的,用 padding 来控制这个距离

margin: 外边距, 设置标签和标签之间的距离。

padding 和 margin 是 复合样式, 可以对四个方向分开设置

  • padding/margin-top
  • padding/margin-bottom
  • padding/margin-left
  • padding/margin-right

示例:

想要让标签与标签之间不要挨在一起,可以使用 margin 设置外边距,让它们的距离分开:

但是通过上述的设置后,块标签之间错位了,由于边距标签是复合样式,通过上述的 margin 设置后,边框的四个方向全都生效了,由于这里只是想要让 标签和标签之间不要挨在一起,因此单独设置 下bottom 边框即可:

在 div1 盒子中,在嵌套一个 div3 :

此时给 div3 设置它的 宽度和高度,以及边框:

此时给这个 div3 设置一下它的外边距,那么相对于 div1来说,就是设置 div1 的内边距padding

或者,直接在 div3 内设置:

我们可以通过浏览器去调试一下,看看以上边框以及边距的设置效果:按 F12

我们设置的内容全部在这里显示了。

相关推荐
ZC跨境爬虫6 小时前
跟着 MDN 学CSS day_3:(为一个传记页面添加样式)
前端·javascript·css·ui·音视频·html5
小挪号底迪滴11 小时前
研发出海实战:多语言字符渲染陷阱、异构文件解析与跨国协作指南
css·数据结构·ai
ZC跨境爬虫11 小时前
跟着 MDN 学CSS day_5:掌握属性选择器的存否匹配与子字符串匹配
前端·javascript·css·ui·html
ZC跨境爬虫11 小时前
跟着 MDN 学CSS day_4:(深入理解CSS选择器的核心机制)
前端·javascript·css·交互
JYeontu1 天前
轮播图不够惊艳?试下这个立体卡片轮播图
前端·javascript·css
软件技术NINI1 天前
泉州html+css 4页
前端·javascript·css·html
ZC跨境爬虫1 天前
跟着 MDN 学CSS day_2:(连接样式表与选择器的实战艺术)
java·前端·css·ui·html·媒体
ZC跨境爬虫1 天前
跟着 MDN 学CSS day_1:(CSS 基石与色彩的艺术)
前端·javascript·css·ui·html
艾伦野鸽ggg1 天前
CSS 滤镜与动态特性知识梳理
前端·css