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

前端CSS总结

目录

 

前言

正文

CSS基础介绍:

CSS选择器:

元素选择器:

id和class选择器:

后代选择器和群组选择器:

盒子模型

content:

padding:

border:

margin:

字体样式

font-family:

font-weight:

font-style:

文字样式

text-indent:

text-align:

line-height:

图片样式

文字环绕:

列表样式

超链接样式

超链接伪类:

常用的伪类:

鼠标样式:

背景样式

背景颜色:

背景图片:

background-position:

浮动布局

什么是文档流?

什么是正常文档流?

Float

清除浮动:

作用:

使用:

其他方法:

定位布局

四种方式:

子绝父相

固定定位:

相对定位:

绝对定位:

总结


 

前言

精读一本书,胜过看N个视频。

这次看的书是:

吴振杰的《Web前端开发精品课 HTML CSS JavaScript基础教程》

17年出版的。

 

正文

CSS基础介绍:

CSS的定义:

全称:Cascading Style Sheet

中文名:层叠样式表

 

与HTML的关系:

HTML是骨架,CSS是外观,JS是行为

 

版本:

CSS1.0、CSS2.0、CSS2.1、CSS3.0共四个版本

其中,CSS2.1是CSS2.0的修订版。

跟HTML4和HTML5的关系一样——HTML5是对HTML4的补充;而CSS2和CSS3也是一样的。

 

引入方式:

外部样式表:link,在head标签中使用

内部样式表:style,在head标签内使用

行内样式表:行内style,在元素标签内使用

其中,优先级最高的是行内样式表,不推荐使用!important

 

有些网站(比如说商城的商详页)是先出结构,再加载CSS的,原因是?

引入方法不同,加载顺序不同

 

CSS选择器:

含义:

选择你要改变的元素,一共有五种选择器。

 

CSS选择器:

元素选择器、id选择器、class选择器、后代选择器、群组选择器

 

元素选择器:

直接选中元素,就是元素选择器。

比如说,div { style ... }。

 

id和class选择器:

id具有唯一性,一个页面只能出现一个同名id,定义和使用都需要加上"#";

而class允许出现重复,定义和使用都需要加上"."。

理解:id是身份证,class是名。

这跟我们英文学的是一样的,id是身份证的意思,而class翻译是类名。

 

后代选择器和群组选择器:

后代选择器:选择的是父元素下的某一子元素,这些元素之间是有关联的(要么就是父子元素,要么就是兄弟元素),两者之间使用空格隔开。

群组选择器:选择的是任意两个及以上元素,这些元素之间没有任何关联,两者之间使用逗号隔开。

 

盒子模型

什么是盒子模型?

一个元素所占据的空间。

 

怎么理解盒子模型?

页面中的每一个元素都可以看成是一个盒子,并且占据着一定的空间,并且这些盒子会互相影响。

 

盒子模型的组成:

主要内容:content(内容)、padding(内边距)、border(边框)、margin(外边距)

次要内容:content的width、height

 

content:

内容区,是CSS盒子的主要构成部分,可以是图片、文本等。

内容区是盒子模型必不可少的组成部分,其他三部分(padding、border、margin)可选。

内容区的三个重要属性:width、height、overflow,宽高不包括padding。

只有块元素才有宽高,行内元素是无法设置宽高的,需要转换类型。

 

padding:

内边距,指的是内容区和边框之间的空间,可以看成是背景区域。

 

border:

内外边距的“墙”。

border: width, style, color,可以直接设置边框的粗细、样式(实线、虚线、双线),颜色。

也可以修改直接某一边(上下左右)的边框样式。

 

margin:

两个盒子之间的距离,使得元素不用紧挨着一起。

margin允许负数值,从而使得两个盒子之间产生重叠的效果。

 

字体样式

常见的字体属性:

font-family:字体类型

font-size:字体大小

font-weight:字体粗细

font-style:字体风格(斜体)

color:字体颜色

 

font-family:

常用的字体:

中文:微软雅黑、宋体

英文:Times New Roman、Arial、Verdana

 

特别注意:

如果字体类型只有一个英文单词,不需要双引号;

如果是多个英文单词或者是中文,则需要加双引号。

多个字体,从左到右顺序进行选择显示,第一个字体库缺失,就第二个,以此类推。

 

font-weight:

属性值:100-900的整数数值、关键字(normal、lighter、bold、bolder)。

一般都是采用数值的形式,100相当于lighter,400相当于normal,700相当于bold,900则是bolder。

在实际开发中,一般都是使用bold。

 

font-style:

属性值:normal、italic(斜体)、oblique(斜体)

italic和oblique的区别:不是所有字体都有italic这个属性的,如果不起效果,就是用oblique即可。

在实际开发中,很少使用这个属性。

 

文字样式

与字体样式的区别:

字体样式:针对文字本身的显示效果,注重个体效果。

文本样式:针对整个段落的排版效果,注重整体效果。

 

常见的属性:

text-indent:首行缩进

text-align:水平对齐

text-decoration:文本修饰

text-transform:大小写

line-height:行高

 

text-indent:

前提:p元素的首行是不会自动缩进的

例子:font-size:14px; text-indent: 28px

字体大小是14,而首行缩进的像素值恰好是它的两倍,刚好缩进两个字符。

 

text-align:

水平方向一般都是left、center、right,没有middle,middle是垂直方向上的。

 

line-height:

用于控制每行文本的高度,可以实现垂直方向上居中。

但不是行间距,因为它只包含文本的高度,不包含文字的上下间距。

 

图片样式

图片大小控制:使用width、height属性。

图片边框:border。

 

图片对齐方式:

水平方向:text-align,一般都是用center这个属性值。

垂直方向:vertical-align。

注意:

1.想要图片居中对齐,应该在其父元素上设置水平居中,而不是img标签上进行设置。

2.vertical-align属性定义的是行内元素或文本相对于该元素的垂直方式,而不是设置该元素的垂直方式。

 

文字环绕:

在网页布局中,常常需要图文混排的效果。

这个时候,就需要用到Float属性(属性值:left、right)。

 

注意:

属性值里没有center,属性写在img里,且改变的是图片的位置。

img { float: right },图片是在右侧,而不是左侧。

 

列表样式

为什么要学列表样式?

结构和样式应该是分离的。

最常用的属性值:list-style-type:none。

 

此外,还可以自定义列表符号。

list-style-image: url(图片路径)

不常用,经常用的是iconfont。

 

超链接样式

超链接在鼠标点击的不同时期有着不同的状态:

默认:字体蓝色,带有下划线

点击时(不松手):字体为红色,带有下划线 - 一瞬间的事情

点击后:字体为紫色,带有下划线

 

超链接伪类:

a:link:默认样式,未访问样式。

a:visited:访问后的样式。

a:hover:鼠标经过样式。

a:active:点击激活时的样式(点击的一瞬间)。

注意:必须要按照这样的排序进行设置,否则部分样式可能失效。

 

常用的伪类:

a:link

a:hover

注意:对于未访问状态,我们可以省略:link,直接写a。

 

怎么去掉超链接默认的下划线?

text-decoration: none;

 

鼠标样式:

属性:cursor

常用的属性值:default(默认)、pointer(常用)、text、crosshair、wait、help

 

背景样式

包含背景颜色、背景图片。

 

背景颜色:

属性:background-color

属性值:颜色关键字、rgb数值、#十六进制数值

注意:color用于定义文字颜色,background-color用于定义背景颜色。

 

背景图片:

常见属性:

background-image:背景图片地址

background-repeat:背景图片重复,水平/垂直

background-position:背景图片位置,常用于精灵图,制作动画

background-attachment:背景图片固定

 

background-position:

属性值:像素值、关键字

注意:要同时设置水平和垂直方向,否则不起效果。

关键字:top / bottom、left/right、center的两两组合共8个,再加上(center, center)即9个。

 

浮动布局

什么是文档流?

表现为元素在页面中出现的先后顺序。

文档流分为正常文档流、脱离文档流。

 

什么是正常文档流?

将一个页面从上到下分为一行一行的,其中块元素独占一行,相邻行内元素在每一行中按照从左到右的排列直到该行排满为止。

 

什么是脱离文档流?

脱离了正常文档流的文档流就是脱离文档流。

 

怎么算脱离?

使用了Float属性。

 

Float

CSS布局的最佳利器之一,可以通过浮动来快速灵活地定位页面元素,以达到布局网页的目的。属性值有left和right两个。

 

注意:

如果给块元素设置浮动,那么宽度不再是独占一行了,而是脱离于文档流,“漂浮”在文档之上,所以也称为浮动。

宽度由内容撑开。

 

作用:

常用于实现水平方向上的并排布局,两列布局、三列布局、多列布局。

 

清除浮动:

属性:clear

属性值:left、right、both(常用)

 

作用:

清除兄弟元素浮动后带来的布局影响。

 

使用:

我们一般都是在浮动元素后面再增加一个空元素,然后设置clear: both来清除浮动。

 

其他方法:

overflow:hidden

伪元素

 

定位布局

浮动布局虽然灵活,但是不易控制。

而定位布局最大的优势就是精准定位

 

属性:

position。

 

四种方式:

固定定位:fixed

相对定位:relative

绝对定位:absolute

静态定位:static(默认)

 

这四种方式刚好就是position的属性值。

 

子绝父相

在常见的布局中,如果子盒子采用了绝对定位,那么父盒子就要采用绝对定位,这样才不会产生布局问题,相关内容请查看站内其他文章。

 

固定定位:

含义:元素被固定不会随着滚动条的拖动而改变位置。

场景:回到顶部按钮

参考对象:浏览器的四条边

使用:四个属性(top/bottom、left/right),下同

 

相对定位:

含义:元素位置相对于元素原始位置计算而来的

参考对象:元素的原始位置

使用:同上

 

绝对定位:

含义:精确定位

参考对象:浏览器的四条边

使用:同上

注意:变成绝对定位之后,元素完全脱离文档,附近元素会认为该元素不存在,从而产生了层级(z-index)问题。

 

总结

在本文中,并没有给出太多CSS属性,去掉了一些不常见的CSS属性。

当然啦,还有很多高级属性都是跟动画相关的,这需要更多时间去学习。

如果仅靠5千不到的文字就能把CSS叙说完,这行业也不会这么卷。

但是这部分的知识,已经足够大部分人去完成一个不错的页面了,或者是应对考试。

 

精读一本书,胜过看N个视频。

因为视频很多都是讲实操的,但是书本有个完整清晰的脉络,你能够掌握更多基础知识。

 

就这样吧,咱们下期再见!

 

相关文章:

前端CSS总结

目录 前言 正文 CSS基础介绍: CSS选择器: 元素选择器: id和class选择器: 后代选择器和群组选择器: 盒子模型 content: padding: border: margin: 字体样式 …...

Linux/C 高级——指针函数

1.概念 本质是函数,函数的返回值为指针。类比着指针数组。 指针数组:本质是数组,数组中存放指针。 数据类型 *数组名[元素个数]; int a[2][3]; int *arr[2] {a[0],a[1]}; //*(*(arri)j) *(arr[i]j) arr[i][j] 2.定义格式 格式: 数…...

GRU门控循环单元【数学+图解】

文章目录 1、简介2、门控机制3、公式4、图解GRU4.1、重置门和更新门4.2、候选隐藏状态和隐藏状态⭐ 5、LSTM与GRU的对比6、应用7、训练技巧 🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习&#xff…...

代码随想录算法训练营第六十一天|Bellman_ford 队列优化算法(又名SPFA)、bellman_ford之判断负权回路

卡码网:94. 城市间货物运输 I from collections import dequeclass Edge:def __init__(self, to, val):self.to to # 链接的节点self.val val # 边的权重def main():n, m map(int, input().split())grid [list() for _ in range(n 1)] # 初始化邻接表for _…...

ArrayList集合源码解读(二)已完结

ArrayList集合源码解读(二) 前言 这篇文章已经把 ArrayList 更完了。各位还想看什么源码可以私信我~~ 上节课带大家阅读了 ArrayList 中的核心扩容代码,那么今天带大家阅读下List集合中我们常用的几个方法的底层实现逻辑! 常用…...

光伏逆变器、MPPT、PCS储能变流器、BMU、BCU、BDU和液冷机组

一、光伏逆变器 光伏逆变器(PV inverter或solar inverter)可以将光伏(PV)太阳能板产生的可变直流电压转换为市电频率交流电(AC)的逆变器,可以反馈回商用输电系统,或是供离网的电网使…...

OpenHarmony编译

简介:本文将会介绍编译OpendHarmony环境的搭建、编译、和刷机(rk3568) 使用场景:修改系统源码,需要验证修改的功能是否正确、编译镜像、编译SDK 1、VS Code,下载链接,用于修改源码 2、linux环…...

C语言典型例题30

《C程序设计教程(第四版)——谭浩强》 习题2.7 从银行贷了一笔款d,准备每月还款额为p,月利率为r,计算多少个月能还清。 设d30000元,p6000元,r1%。对求得的月份取小数点后一位,对第二…...

springMVC @RestControllerAdvice注解使用方式

使用 RestControllerAdvice 的主要场景包括: 全局异常处理:处理所有控制器中抛出的未捕获异常。数据校验失败处理:处理 Bean Validation 校验失败的情况。自定义响应:统一定义响应格式或错误信息。 RestControllerAdvice 注解的…...

HarmonyOS鸿蒙开发岗位面试中关于组件的问题总结

文章目录 1. 鸿蒙组件的基本概念2. 组件的使用3. 布局管理4. 组件间通信5. 组件化开发6. 性能优化7. 实战应用 鸿蒙应用开发岗位面试中关于鸿蒙组件的问题,通常会涉及多个关键知识点,这些知识点涵盖了鸿蒙组件的基本概念、使用、布局管理、性能优化、组件…...

Unity 在Editor下保存对Text组件的文本的修改

Unity 在Editor下保存对Text组件的文本的修改 /****************************************************文件:TimeStampForText.cs作者:lenovo邮箱: 日期:2024/8/8 1:9:21功能: *************************************************…...

mysql 日志爆满,删除日志文件,定时清理日志

今天发现网站不能正常访问,于是登陆服务器查找问题。 机智的我随手用命令:df -l 发现 硬盘爆满了,于是就知道问题所在了。 Filesystem 1K-blocks Used Available Use% Mounted on/dev/xvda1 20641404 16963004 16929876 10…...

MySQL学习(19):锁

1.什么是锁 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中,数据是供许多用户共享的资源,数据库必须保证数据并发访问的一致性、有效性,这就要靠锁来协调实现。 MySOL中的锁,分为以下三类: &am…...

【出海日记】关于 KD ,数据工具的陷阱

一个关键词:deepwoken builder 对标的竞品:deepwoken.co 初步分析: https://ahrefs.com/keyword-difficulty/?countryus 显示这个关键词优化难度极低 拿流量的是一个内页,单靠这个内页一个月有 22 万的流量 看起来很香&#x…...

【k8s集群部署篇】在openEuler环境下部署多master高可用kubernetes集群详细教程(V1.30版本)

【k8s集群部署篇】在openEuler环境下部署多master高可用kubernetes集群详细教程(V1.30版本) 一、相关名词介绍1.1 k8s简介1.2 Keepalived简介1.3 HAProxy简介二、本次实践介绍2.1 环境规划介绍2.2 本次实践简介三、所有节点基础环境配置3.1 主机配置工作3.2 关闭防火墙和seli…...

数据结构:链表经典算法OJ题

目录 前言 一、移除链表元素 二、反转链表 三、合并两个有序链表 四、链表的中间节点 五、环形链表的约瑟夫问题 前言 在了解了链表的相关知识后,我们还需要一些题目进行练习加深对链表这方面知识的理解,也可以用来检测链表这块学的的怎么样&#…...

【线性代数】【二】2.2 极大线性无关组与向量空间的基

文章目录 前言一、极大线性无关组二、向量空间的基三、向量维数与向量空间维数总结 前言 上一篇中我们介绍了向量空间的概念,并且学习了对任意给出的一组向量,如果构造一个向量空间。本文将更加细致的去分析张成一个向量空间,具有哪些性质。…...

OD C卷 - CPU算力分配

CPU算力分配 两组服务器A、B, 每组有多个算力不同的CPU;为了让两组服务器的算力和相等,允许两组各选出一个CPU进行一次交换;求两组中用于交换的CPU算力,从A中选出的算力尽可能小; 输入描述: 第一行 输入L…...

matlab实现红绿灯识别

在MATLAB中实现红绿灯识别通常涉及图像处理技术,包括颜色分割、形态学操作、边缘检测等步骤。下面我将给出一个基本的框架和示例代码,用于在MATLAB中识别图像中的红绿灯。 步骤 1: 读取图像 首先,你需要有一张包含红绿灯的图像。 img imr…...

base64 转 pdf

工作中经常会遇到一些签名的pdf传输,一般都是base64编码,这样就需要我们手动转为pdf, 其实根本不需要自己使用pdf的库写入,只是数据的简单写入就行 package mainimport ("encoding/base64""fmt""os&quo…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法

深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...

AI,如何重构理解、匹配与决策?

AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...