CSS的学习

news2024/9/25 11:15:57

1.认识CSS

CSS 叫做"层叠样式表"

“层叠样式表”

样式 --> 大小,位置,间距,颜色,字体,表框背景… 统称为"样式",描述了一个网页长什么样子~

层叠 --> 针对一个html的元素/标签,可以同时应用多组CSS样式~~

多组样式会叠加在一起~~

CSS描述的是页面的样式,具体来说,就是描述一个任意一个页面的元素,大小/位置/字体/颜色/背景/边框…引入CSS就可以让一个页面变得好看起来~~

在这里插入图片描述

2.引入方式

CSS代码在编写的时候,有多种引入方式

  1. 内部样式 :直接把CSS嵌入到html中,放到style标签里

  2. 外部样式:把CSS写成一个单独的 .css 文件,由 html 通过 link 标签引入过来

  3. 内联样式: 直接把CSS元素写到元素的style 属性内

1.内部样式

在这里插入图片描述
style标签放哪都行,不一定非得放到head标签里~

2.外部样式

在这里插入图片描述
在这里插入图片描述

3.内联样式

在这里插入图片描述

3.选择器

在这里插入图片描述
div 就是选择器,针对页面中的哪些元素生效

{} 里面是一些具体的 CSS 属性,(描述样式详细情况) 键值对的方式组织的~

键值对之间,使用;分割

键和值之间,使用:分割

多个键值对,可以放到一行,也可以分成多行放置

px 像素~ 计算机里描述尺寸的重要单位~

1.标签选择器

使用标签名,把页面中所有同名标签的元素都选中了~

2.类选择器

CSS中创建一个类名,这个类名对应一组CSS属性,让指定的html元素应用这样的类名即可~

在这里插入图片描述
在这里插入图片描述
一个类名是可以被多个标签引用的~

一个标签还可以引入多个类名,多个类名之间使用空格来分割~

在这里插入图片描述
类选择器是我们最常用的一个也是功能最丰富的一个选择器

3.id选择器

一个html标签,可以有一个id属性,这个属性的值作为标签的"身份标识"

在页面中,是唯一的

同样也可以通过id选择器,把这个指定的元素给获取到~~
在这里插入图片描述
在这里插入图片描述

4.复杂选择器

其实CSS还有很多复杂的"复合选择器"

迭代选择器 -> 效果就是把上述三种基础选择器进行组合,同时能体现出"标签的层次结构"

在这里插入图片描述

后代选择器,可以写多个基础选择器,使用空格分开~

先找到所有 .one 的元素

再在 .one 的后代里(子标签/孙子标签/重孙子标签里…) 查找h3标签…

4.CSS常见属性

1.字体相关属性

在这里插入图片描述

2.文本相关属性

在这里插入图片描述
color属性的值,有很多种写法~~

  1. 直接写一些表示颜色的单词(日常用到的颜色,这里都有~)

  2. 在计算机中,使用RGB的方式来表示~
    虽然都是红,但是红的程度不一样
    在这里插入图片描述
    在这里插入图片描述
    每个分量都是一个字节 取值范围是 0 ~ 255

  3. 使用16进制的方式来表示(本质上也是RGB)

3.背景相关属性

background - color 设置背景颜色值的写法和color 是一样的~

使用background - image 设置背景图片~

在这里插入图片描述

4.圆角矩形属性

每个html元素,都可以通过CSS设置display属性

display.block -> 块级元素(矩形的盒子)

display.inline -> 行内元素(一段文本)

区别在于:

1.块级元素默认独占一行,行内元素默认不独占一行~

<span>div1</span>
<span>div2</span>
<div>div1</div>
<div>div2</div>

在这里插入图片描述

2.块级元素可以设置尺寸(width,height),行内元素不能!

<span>div1</span>
<span>div2</span>
<div>div1</div>
<div>div2</div>
<style>
    span {
        width: 500px;
        height: 300px;
    }
</style>

比如,一个元素(span)本身是行内元素,可以使用display.block改成块内元素

<style>
    span {
        display: block;
        width: 500px;
        height: 300px;
    }
</style>

在这里插入图片描述
可以使用display.none 实现元素隐藏效果~~

<style>
    span {
        display: none;
        width: 500px;
        height: 300px;
    }
</style>

在这里插入图片描述

5.盒模型

CSS盒子模型

一个html元素,是一个矩形

在这里插入图片描述
边框 border
内容 content
内边距 padding
外边距 margin

1.边框

border 属性要设置:

边框颜色

边框线的粗细

边框线的格式

div {
  width: 500px;
  height: 300px;
  background-color: aqua;
  border: black 3px solid;
}

在这里插入图片描述

div {
  width: 500px;
  height: 300px;
  background-color: aqua;
  /*border: black 3px solid;*/
  /*边框还可以分开设置*/
  border-left: red 5px solid;
  border-right: blue 5px solid;
  border-top: green 5px solid;
  border-bottom: black 5px solid;
}

在这里插入图片描述
在这里插入图片描述
虽然给div设置的尺寸是500 * 300

但实际成了509 * 309 边框把元素撑大了~

一般不希望撑大元素,可以使用一个单独的CSS属性来设~~ box-sizing: border-box;

* {
  /*此处*称为通配符选择器,能够选中所有元素*/
  box-sizing: border-box;
}

2.内边距

padding 设置内容和边框之间的距离.

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

可以给四个方向都加上边距

  • padding-top
  • padding-bottom
  • padding-left
  • padding-righ

可以把多个方向的 padding 合并到一起.

padding: 5px; 表示四个方向都是 5px
padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px
padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px
padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)

3.外边距

控制盒子和盒子之间的距离.
可以给四个方向都加上边距

  • margin-top
  • margin-bottom
  • margin-left
  • margin-right

复合写法

规则同 padding

margin: 10px; // 四个方向都设置
margin: 10px 20px; // 上下为 10, 左右 20
margin: 10px 20px 30px; // 上 10, 左右 20, 下 30
margin: 10px 20px 30px 40px; // 上 10, 右 20, 下 30, 左 40

6.块级元素水平居中

前提:

指定宽度(如果不指定宽度, 默认和父元素一致)

把水平 margin 设为 auto

margin-left: auto; margin-right: auto;
margin: auto;
margin: 0 auto;

举例:

<div>蛤蛤</div>
div {
    width: 500px;
    height: 200px;
    background-color: red;
    margin: 0 auto;
}

注意:

这个水平居中的方式和 text-align 不一样.

margin: auto 是给块级元素用得到.

text-align: center 是让行内元素或者行内块元素居中的.

另外, 对于垂直居中, 不能使用 "上下 margin 为 auto " 的方式

7.去除浏览器默认样式

浏览器会给元素加上一些默认的样式, 尤其是内外边距. 不同浏览器的默认样式存在差别.

为了保证代码在不同的浏览器上都能按照统一的样式显示, 往往我们会去除浏览器默认样式.

使用通配符选择器即可完成这件事情.

* {
    marign: 0;
    padding: 0;
}

8.弹性布局

<div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
</div>
<style>
    div {
        width: 100%;
        height: 150px;
        background-color: red;
   }
    div>span {
        background-color: green;
        width: 100px;
   }
</style>

此时看到的效果为

在这里插入图片描述

当我们给 div 加上 display:flex 之后, 效果为

在这里插入图片描述

此时看到, span 有了高度, 不再是 “行内元素了”

再给 div 加上 justify-content: space-around; 此时效果为

在这里插入图片描述
此时可以看到这些 span 已经能够水平隔开了.

把 justify-content: space-around; 改为 justify-content: flex-end; 可以看到此时三个元素在右侧显示了.

在这里插入图片描述

flex 布局

flex 是 flexible box 的缩写. 意思为 “弹性盒子”.

任何一个 html 元素, 都可以指定为 display:flex 完成弹性布局.

flex 布局的本质是给父盒子添加 display:flex 属性, 来控制子盒子的位置和排列方式.

基础概念:

  • 被设置为 display:flex 属性的元素, 称为 flex container

  • 它的所有子元素立刻称为了该容器的成员, 称为 flex item

  • flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴

注意:

当父元素设置为 display: flex 之后, 子元素的 float, clear, vertical-align 都会失效.

常用属性

justify-content

设置主轴上的子元素排列方式.

使用之前一定要确定好主轴是哪个方向

在这里插入图片描述

<div>
    <span>1</span>
    <span>2</span>
    <span>3</span>
    <span>4</span>
    <span>5</span>
</div>
<style>
    div {
        width: 100%;
        height: 150px;
        background-color: red;
        display: flex;
   }
    div span {
        width: 100px;
        height: 100px;
        background-color: green;
   }
</style>

未指定 justify-content 时, 默认按照从左到右的方向布局.

在这里插入图片描述

设置 justify-content: flex-end , 此时元素都排列到右侧了.

在这里插入图片描述

设置 jutify-content: center , 此时元素居中排列

在这里插入图片描述

设置 justify-content: space-around;平分了剩余空间.

在这里插入图片描述

设置 justify-content: space-between;先两边元素贴近边缘, 再平分剩余空间

在这里插入图片描述

align-items

设置侧轴上的元素排列方式

在上面的代码中, 我们是让元素按照主轴的方向排列, 同理我们也可以指定元素按照侧轴方向排列.

在这里插入图片描述

取值和 justify-content 差不多.

理解 stretch(拉伸): 这个是 align-content 的默认值. 意思是如果子元素没有被显式指定高度,
那么就会填充满父元素的高度.

注意:

align-items 只能针对单行元素来实现. 如果有多行元素, 就需要使用 item-contents

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1026832.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cocosCreator 之 Graphics绘制基础图形,五角星,线型图,柱形图

版本&#xff1a; 3.4.0 环境&#xff1a; Mac Graphics组件 Graphics组件主要用于绘画使用&#xff0c;属于渲染组件。继承结构&#xff1a; #mermaid-svg-WHveKVDzMTXmCbpg {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mer…

Android Studio 创建项目不自动生成BuildConfig文件

今天在AS上新建项目发现找不到BuildConfig文件&#xff0c;怎么clear都不行。通过多方面查找发现原来gradle版本不同造成的&#xff0c;Gradle 8.0默认不生成 BuildConfig 文件。 如上图&#xff0c;8.0版本是没有source文件夹 上图是低于8.0版本有source文件夹 针对这个问题&…

Jenkins学习笔记1

CI 服务器&#xff1a; 认识Jenkins&#xff1a; Jenkins是一个可扩展的持续集成&#xff08;CI&#xff09;引擎&#xff0c;是一个开源项目&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使得软件持续集成变成可能。Jenkins非常易于安装和配置&#xff0c;简单易…

算法leetcode|83. 删除排序链表中的重复元素(rust重拳出击)

文章目录 83. 删除排序链表中的重复元素&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 83. 删除排序链表中的重复元素&#xff1a; 给…

Docker从认识到实践再到底层原理(六-1)|Docker容器基本介绍+命令详解

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

vue+element plus 使用table组件,清空用户的选择项

<el-table ref"tableRef"> .... </el-table> <script lang"ts" setup> import { onMounted, reactive, ref, nextTick } from vue const clearBtn () > {console.log(清空用户的选择项)tableRef.value.clearSelection() } </scr…

【论文阅读 09】融合门控自注意力机制的生成对抗网络视频异常检测

2021年 中国图象图形学报 摘 要 背景&#xff1a; 视频异常行为检测是智能监控技术的研究重点&#xff0c;广泛应用于社会安防领域。当前的挑战之一是如何提高异常检测的准确性&#xff0c;这需要有效地建模视频数据的空间维度和时间维度信息。生成对抗网络&#xff08;GANs&…

[学习记录] 设计模式 3. 观察者模式

观察者模式 参考&#xff1a; bugstack 虫洞栈Refactoringhttps://www.cnblogs.com/myseries/p/8735490.htmlhttps://www.jianshu.com/p/4f1cd513a72d 当一个行为发生时传递信息给另外一个用户接收做出相应的处理&#xff0c;两者之间没有直接的耦合关联。 在我们编程开发中也…

9.20 QT作业

widget.h #include <QPainter> //画家 #include <QTimerEvent> #include <QTime> #include<QTimer> //定时器类QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEclass Widget : public QWidget {Q_OBJECTpublic:Widge…

物联网如何助力乡村数字经济发展

在当今移动互联网时代&#xff0c;信息化数字化已经渗透了我们生活的方方面面&#xff0c;数字物联网转型也成为各个产业的重要动力。对于广大乡村来说&#xff0c;得益于网络基础设施的全面建成覆盖&#xff0c;乡村各产业也迎来数字化新业态转型&#xff0c;创新诞生了基于物…

高效管理,轻松追踪——Chrono Plus for Mac任务管理工具

Chrono Plus for Mac是一款专注于任务管理和跟踪的应用程序。它提供了一种直观、清晰的界面&#xff0c;使您能够轻松创建、安排和分类任务。无论是个人项目还是团队合作&#xff0c;Chrono Plus都能为您提供一种有效组织和管理任务的方式。 这个应用程序具有多种强大的功能&a…

windows Visual Studio 2022 opengl开发环境配置

1. 安装glew(GL), GLFW, glm, soil2-debug 还需要premake生成visual studio solution cmake for windows也要安装一个&#xff0c; 但是不用安装MinGW64, bug多 下载源码&#xff0c;找到xxx.sln文件用visual stidio打开solution编译代码&#xff0c;找到xxx.lib, xxx.dll文件…

嵌入式Linux--进程间通讯--消息队列

1.需要知道的问题&#xff1a; 1、如何创建消息队列&#xff08;A\B使用同一个队列通信&#xff09; 2、如何加消息到队列&#xff08;队列是链表&#xff09; 3、如何从队列拿到消息 消息队列&#xff1a; 消息队列&#xff0c;是消息的链接表&#xff0c;存放在内核中。一个…

爬虫异常处理技巧分享

在进行爬虫数据采集的过程中&#xff0c;我们常常会遇到网络波动和自动化验证等异常情况。这些问题可能导致爬虫运行中断或被识别为机器请求而受到限制。本文将分享一些实用的爬虫异常处理技巧&#xff0c;帮助您规避网络波动和自动化验证&#xff0c;提高数据采集的稳定性和成…

轻量型服务器能支撑多少人访问?

一、服务器配置影响访问人数 服务器的配置是影响轻量型服务器能够支撑的访问人数的关键因素之一。通常而言&#xff0c;轻量型服务器的配置普遍不高&#xff0c;适合小型团队或个人使用。如果服务器配置较低&#xff0c;那么支撑访问人数的能力也会受到限制。较为简单的应用程序…

在GIS(地理信息系统)中,常见的地理文件记录

在GIS&#xff08;地理信息系统&#xff09;中&#xff0c;常见的地理文件包括以下几种&#xff1a; .cpg&#xff08;Code Page文件&#xff09;&#xff1a;这个文件是指定地理数据文件编码的文件&#xff0c;它告诉软件如何正确地读取和解释地理数据文件中的字符编码。比如…

[BJDCTF2020]EasySearch Apache SSI漏洞

这道题有点意思 是SSI 漏洞 照样 我们先熟悉SSI漏洞是什么 SSI 服务端包含 SSI 提供了对现有html增加动态的效果是嵌入 html的指令 只有网页被调用了 才会执行允许执行命令 所以会造成rce 使用条件 当文件上传的时候 无法上传php但是服务器开启了 SSI CGI支持就可以通过 …

第二证券:算力概念强势拉升,竞业达涨停,南凌科技等大涨

算力概念20日盘中强势拉升&#xff0c;到发稿&#xff0c;竞业达涨停&#xff0c;南凌科技涨近10%&#xff0c;拓维信息涨近9%&#xff0c;亚康股份、神州数码涨约5%&#xff0c;青云科技涨逾4%。 音讯面上&#xff0c;9月19日&#xff0c;国际大学生程序设计竞赛&#xff08;…

Vue语法

目录 事件处理器 是什么 案列 表单的综合案列 定义 常用功能 组件通信 定义 父传子 ​编辑 子传父 事件处理器 是什么 事件处理器是一种函数&#xff0c;用于响应和处理事件的触发。在编程中&#xff0c;当特定事件发生时&#xff0c;可以通过事件处理器来执行相应的…

正则表达式的学习笔记

[!note] 其实这个正则表达式整体上不难, 自从这个 gpt 出来之后这种正则表达式已经不需要我们去写了, 我们并不需要自己能够去写特别深奥的代码, 我们可以将这个正则表达式交给 gpt 去做, 我们只需要能够看懂就行了, 所以学习这个正则表达式, 自己写不出来那种比较难的正则没有…