前端基础之CSS

news2025/7/23 19:04:02

目录

一、CSS介绍

CSS语法

CSS注释

CSS的几种引入方式

二、CSS选择器

基本选择器

组合选择器

属性选择器

分组和嵌套选择器

伪类选择器

伪元素选择器

选择器的优先级

三、CSS属性相关

宽和高

字体属性

文字属性

背景属性

边框

border-radius

display属性

CSS盒子模型

margin外边距

padding内填充

float浮动

clear


一、CSS介绍

CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。

当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。

CSS就是对HTML标签做样式的,让不好看的变得更加的好看。

CSS语法

每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。

选择器 {
    属性名1:属性值;
    属性名2:属性值;
    属性名3:属性值;
    属性名4:属性值;
    属性名5:属性值;
}

CSS注释

/*这是注释*/

注释符号的快捷键:ctrl + ? 

CSS的几种引入方式

  • 行内样式

行内式是在标记的style属性中设定CSS样式。不推荐大规模使用。

<p style="color: red">Hello world.</p>
  • 内部样式

嵌入式是将CSS样式集中写在网页的<head></head>标签对的<style></style>标签对中。

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        p{
            background-color: #2b99ff;
        }
    </style>
</head>
  • 外部样式

外部样式就是将css写在一个单独的文件中,然后在页面进行引入即可。推荐使用此方式。

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

二、CSS选择器

如何学习CSS?

  • 1. 先学习如何找到标签
  • 2. 找到标签之后在进行属性操作

选择器种类非常之多,但是,大多数都是了解的,用的最多的也就几个。对我们来说,只需要掌握几个就可以了。

基本选择器

  • 元素选择器

p {color: "red";}
  • ID选择器

#i1 {
  background-color: red;
}
  • 类选择器

.c1 {
  font-size: 14px;
}
p.c1 {
  color: red;
}

注意:

  1. 样式类名不要用数字开头(有的浏览器不认)。
  2. 标签中的class属性如果有多个,要用空格分隔。
  • 通用选择器

* {
  color: white;
}

组合选择器

我们使用亲戚关系表示标签之间的关系。

  • 后代选择器
/*li内部的a标签设置字体颜色*/
li a {
  color: green;
}
  • 儿子选择器
/*选择所有父级是 <div> 元素的 <p> 元素*/
div>p {
  font-family: "Arial Black", arial-black, cursive;
}
  • 毗邻选择器
/*选择所有紧接着<div>元素之后的<p>元素*/
div+p {
  margin: 5px;
}
  • 弟弟选择器
/*i1后面所有的兄弟p标签*/
#i1~p {
  border: 2px solid royalblue;
}

属性选择器

  • 通过标签的属性来查找标签,标签都有属性
<div class="c1" id="d1"></div>
  • id值和class值是每个标签都自带的属性,还有另外一种:自定义属性 
  • 通过标签的自定义属性来查找标签
    • 针对于username='kevin' password='123'属性就是div标签的自定义属性
<div class="c1" id="d1" username='kevin' password='123'></div>

分组和嵌套选择器

  • 分组选择器
    • 使用逗号隔开,所有的选择器都是并列的
/*div标签和p标签统一设置字体为红色*/ 
div, p {
  color: red;
}
  • 嵌套选择器
    • 使用空格隔开,选择器不是并列的,最终生效的还是最后一个选择器 
/*.c1类内部所有p标签设置字体颜色为红色*/
.c1 p {
  color: red;
}

伪类选择器

  • 未访问的链接
a:link {
  color: #FF0000
}
  • 鼠标移动到链接上
a:hover {
  color: #FF00FF
}
  • 选定的链接
a:active {
  color: #0000FF
}
  • 已访问的链接
a:visited {
  color: #00FF00
}
  • input输入框获取焦点时样式
input:focus {
  outline: none;
  background-color: #eee;
}

伪元素选择器

  • first-letter
    • 常用的给首字母设置特殊样式 
p:first-letter {
  font-size: 48px;
  color: red;
}
  • before
    • 在每个<p>元素之前插入内容
p:before {
  content:"你好啊";
  color:red;
}
  • after
    • 在每个<p>元素之后插入内容
p:after {
  content:"[?]";
  color:blue;
} 

before和after多用于清除浮动,它可以解决浮动中的父标签塌陷问题!!! 

选择器的优先级

比较选择器的优先级高低

1. 选择器相同的情况下:

  • 就近原则(离谁越近,就听谁的)

2. 选择器不同的情况下:

  • 行内选择器 >>>    id选择器  >>>   类选择器  >>>  标签选择器 

三、CSS属性相关

宽和高

width属性可以为元素设置宽度。

height属性可以为元素设置高度。

块级标签才能设置宽度,内联标签的宽度由内容来决定。

默认情况下,只有块级元素才能设置长、宽,内联元素不能设置,设置了也不错,就是没有效果而已。

字体属性

  • 文字字体

    • font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。
body {
  font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif
}
  • 字体大小

    • inherit表示继承父元素的字体大小值

p {
  font-size: 14px;
}

字重(粗细)

  • font-weight用来设置字体的字重(粗细) 

描述

normal

默认值,标准粗细

bold

粗体

bolder

更粗

lighter

更细

100~900

设置具体粗细,400等同于normal,而700等同于bold

inherit

继承父元素字体的粗细值

文本颜色

颜色属性被用来设置文字的颜色。

颜色是通过CSS最经常的指定:

  • 十六进制值 - 如: #FF0000
  • 一个RGB值 - 如: RGB(255,0,0)
  • 颜色的名称 - 如:  red

还有rgba(255,0,0,0.3)第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间。

文字属性

文字对齐

  • text-align 属性规定元素中的文本的水平对齐方式。

描述

left

左边对齐 默认值

right

右对齐

center

居中对齐

justify

两端对齐

文字装饰

  • text-decoration 属性用来给文字添加特殊效果。

描述

none

默认。定义标准的文本。

underline

定义文本下的一条线。

overline

定义文本上的一条线。

line-through

定义穿过文本下的一条线。

inherit

继承父元素的text-decoration属性的值。

常用的为去掉a标签默认的自划线: 

a {
  text-decoration: none;
}

首行缩进

将段落的第一行缩进 32像素:

p {
  text-indent: 32px;
}

背景属性

  • 背景颜色
background-color: red;
  • 背景图片
background-image: url('1.jpg');
  • 背景重复
    •  repeat(默认):背景图片平铺排满整个网页
    •  repeat-x:背景图片只在水平方向上平铺
    •  repeat-y:背景图片只在垂直方向上平铺
    •  no-repeat:背景图片不平铺
background-repeat: no-repeat;
  • 背景位置
background-position: left top;
/*background-position: 200px 200px;*/

支持简写:

background:#336699 url('1.png') no-repeat left top;

边框

边框属性

  • border-width
  • border-style
  • border-color
/*简写方式*/
#i1 {
  border: 2px solid red;
}

边框样式

描述

none

无边框。

dotted

点状虚线边框。

dashed

矩形虚线边框。

solid

实线边框。

除了可以统一设置边框外还可以单独为某一个边框设置样式,如下所示:

#i1 {
  border-top-style:dotted;
  border-top-color: red;
  border-right-style:solid;
  border-bottom-style:dotted;
  border-left-style:none;
}

border-radius

用这个属性能实现圆角边框的效果。

将border-radius设置为长或高的一半即可得到一个圆形。

display属性

用于控制HTML元素的显示效果。

意义

display:"none"

HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。

display:"block"

默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。

display:"inline"

按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。

display:"inline-block"

使元素同时具有行内元素和块级元素的特点。

CSS盒子模型

以快递盒为例

  1. 快递盒和快递盒之间的举例称为是外边距,用margin值表示
  2. 快递盒和里面物品之间的举例称为是内边距,用padding来表示
  3. 盒子的厚度称为是边框,用border来表示
  4. 物品的实际大小称为是content
  • margin:用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。
  • padding:用于控制内容与边框之间的距离;   
  • Border(边框):围绕在内边距和内容外的边框。
  • Content(内容):盒子的内容,显示文本和图像

看图: 

margin外边距

.margin-test {
  margin-top:5px;
  margin-right:10px;
  margin-bottom:15px;
  margin-left:20px;
}
/*推荐使用简写*/
.margin-test {
  margin: 5px 10px 15px 20px;
}

顺序:上右下左

常见居中:

.mycenter {
  margin: 0 auto;
}

padding内填充

.padding-test {
  padding-top: 5px;
  padding-right: 10px;
  padding-bottom: 15px;
  padding-left: 20px;
}
/*推荐使用简写*/
.padding-test {
  padding: 5px 10px 15px 20px;
}

顺序:上右下左 

补充padding的常用简写方式:

  • 提供一个,用于四边;
  • 提供两个,第一个用于上-下,第二个用于左-右;
  • 如果提供三个,第一个用于上,第二个用于左-右,第三个用于下;
  • 提供四个参数值,将按上-右-下-左的顺序作用于四边;

float浮动

在 CSS 中,任何元素都可以浮动。

浮动元素会生成一个块级框,而不论它本身是何种元素。

关于浮动的两个特点:

  • 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
  • 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。

三种取值:

  • left:向左浮动
  • right:向右浮动
  • none:默认值,不浮动

CSS 浮动

clear

clear属性规定元素的哪一侧不允许其他浮动元素。

描述

left

在左侧不允许浮动元素。

right

在右侧不允许浮动元素。

both

在左右两侧均不允许浮动元素。

none

默认值。允许浮动元素出现在两侧。

inherit

规定应该从父元素继承 clear 属性的值。

注意:clear属性只会对自身起作用,而不会影响其他元素。 

清除浮动

  • 清除浮动的副作用(父标签塌陷问题)

主要有三种方式:

  • 固定高度
  • 伪元素清除法
  • overflow:hidden

伪元素清除法(使用较多):

.clearfix:after {
  content: "";
  display: block;
  clear: both;
}

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

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

相关文章

【已解决】虚拟机之前能正常上网,重启之后无法连接网络问题的解决方法

虚拟机之前网络正常&#xff0c;重启之后却始终连接不上网络。 找了许多方法&#xff0c;终于发现一种便捷有效的方法。 解决方法如下&#xff1a; 1、将网络模式更改为NAT模式., 2、打开终端窗口&#xff0c;输入如下命令。 sudo service network-manager stopsudo rm /var/l…

R数据分析:反事实框架和因果中介的理论理解

其实很早之前给大家写中介分析的做法的时候我也有思考过当中介变量或者因变量不是连续变量的时候&#xff0c;中介怎么做&#xff1f;或者说这个时候中介的结果如何解释&#xff1f;当时反正是一直没有太想明白这些问题&#xff0c;毕竟这些情况在发表的文献中也较少见&#xf…

作为20年老程序员,我如何使用GPT4来帮我写代码

如果你还在用google寻找解决代码bug的方案&#xff0c;那你真的out了&#xff0c;试试gpt4, save my life. 不是小编危言耸听&#xff0c;最近用gpt4来写代码极大地提高了代码生产力和运行效率&#xff0c;今天特地跟大家分享一下。 https://www.promptspower.comhttps://www.…

.WP、.WL、.WT格式数据转Shp解决方案

下载 http://dt3.8tupian.net/2/29913a52b1000.pg3操作办法&#xff1a;mapgis创建数据库——导入.WP、.WL、.WT格式数据——导出shp数据 (1)安装mapgis10.6高级版&#xff08;有一个月得试用期&#xff09;&#xff1b; (2)打开mapgis右侧MapGISLocal右键创建数据库&#xff…

Day15力扣打卡

打卡记录 使数组变美的最小增量运算数&#xff08;动态规划&#xff09; 链接 class Solution { public:long long minIncrementOperations(vector<int>& nums, int k) {long long f0 0, f1 0, f2 0;for (int x : nums) {long long inc f0 max(k - x, 0);f0 …

【计算机网络笔记】传输层——可靠数据传输原理之Rdt协议

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

2023年10月随笔之婚宴趣事多

1. 回头看 日更坚持了304天。 读《高性能MySQL&#xff08;第4版&#xff09;》更新完成 学信息系统项目管理师第4版系列主体部分更新完成&#xff0c;仅余结语预计11月5日后更新 读《图数据库实战》开更 10月码字125384字&#xff0c;日均码字数4044字&#xff0c;累计码…

如何创建 SpringBoot 多模块项目

1. 创建父模块 【添加依赖】 【删除父模块资源】 父模块只需要保留 pom.xml&#xff0c;其他文件的全部删除&#xff08;包括 src&#xff09; 2. 创建子模块 3. 修改父模块 3.1 删除不必要的依赖 3.2 添加打包类型 3.3 添加所有子模块 声明子模块有两个好处&#xff1a; …

LeetCode136——只出现一次的数字

LeetCode136——只出现一次的数字 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 R…

面试官:Nacos有几种负载均衡策略?

作者 | 磊哥 来源 | Java中文社群&#xff08;ID&#xff1a;javacn666&#xff09; 转载请联系授权&#xff08;微信ID&#xff1a;GG_Stone&#xff09; Nacos 作为目前主流的微服务中间件&#xff0c;包含了两个顶级的微服务功能&#xff1a;配置中心和注册中心。 1.配置中心…

10月第4周榜单丨飞瓜数据B站UP主排行榜榜单(B站平台)发布!

飞瓜轻数发布2023年10月23日-10月29日飞瓜数据UP主排行榜&#xff08;B站平台&#xff09;&#xff0c;通过充电数、涨粉数、成长指数、带货数据等维度来体现UP主账号成长的情况&#xff0c;为用户提供B站号综合价值的数据参考&#xff0c;根据UP主成长情况用户能够快速找到运营…

【数智化案例展】某国有电力企业——看电力公司如何做好数据资产高效管理,赋能业务决策...

‍ 逸迅科技案例 本项目案例由逸迅科技投递并参与数据猿与上海大数据联盟联合推出的《2023中国数智化转型升级创新服务企业》榜单/奖项”评选。 ‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 2020年8月25日&#xff0c;国资委办公厅颁布《关于加快推进国有企业数字化转型…

SpringBoot概要简介SpringBoot入门,pom文件剖析,打jar包以及banner的修改(附banner生成网址)

SpringBoot概要 SpringBoot介绍 随着动态语言的流行&#xff08;Ruby、Scala、Node.js&#xff09;, Java的开发显得格外的笨重&#xff1b;繁多的配置、低下的开发效率、复杂的部署流程以及第三方技术整合难度大。 在上述环境下&#xff0c;Spring Boot由此诞生&#xff0c…

C++前缀和算法的应用:统计上升四元组

C前缀和算法的应用&#xff1a;统计上升四元组 本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 题目 给你一个长度为 n 下标从 0 开始的整数数组 nums &#xff0c;它包含 1 到 n 的所有数字&#xff0c;请你返回上…

基于松鼠算法的无人机航迹规划-附代码

基于松鼠算法的无人机航迹规划 文章目录 基于松鼠算法的无人机航迹规划1.松鼠搜索算法2.无人机飞行环境建模3.无人机航迹规划建模4.实验结果4.1地图创建4.2 航迹规划 5.参考文献6.Matlab代码 摘要&#xff1a;本文主要介绍利用松鼠算法来优化无人机航迹规划。 1.松鼠搜索算法 …

EasyRecovery16优秀的电脑数据恢复软件

你是不是也有过这样的经历&#xff0c;当需要一个文件的时候&#xff0c;却发现不小心被删除了&#xff1b;或者在某个瞬间身体像不受大脑控制般&#xff0c;按下删除或格式化键。气的半夜都能从床上爬起来抽自己一巴掌&#xff0c;反正我是这样的。 我从小到大不小心删除和格…

PowerToys使用:Windows自定义键盘(非编程)

使用紧凑型键盘或者苹果键盘有时候觉得挺麻烦&#xff0c;常用的键偏偏没有&#xff0c;特别是苹果键盘&#xff0c;没有【del】键&#xff0c;非常非常不爽。 笔记本电脑用久了&#xff0c;难免弄坏一两个键&#xff0c;比如【s】键&#xff0c;维修挺麻烦的&#xff0c;换新太…

第五章 子图的绘制及坐标轴共享

第五章 子图的绘制及坐标轴共享 1.绘制固定区域的子图 ​ matplotlib可以将整个画布规划成等分布局的mn&#xff08;行列&#xff09;的矩阵区域&#xff0c;并按照先行后列的方式对每个区域进行编号&#xff08;编号从1开始&#xff09;&#xff0c;之后在选中的某个或某些区…

在图表中添加图例plt.legend()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 在图表中添加图例 plt.legend() plt.legend的作用是? import matplotlib.pyplot as plt x [1, 2, 3, 4, 5] y1 [1, 2, 4, 8, 16] y2 [1, 3, 9, 27, 81] fig, (ax1, ax2) plt.sub…

Mysql系列-索引类型

一 、索引类型别 根据叶子节点的内容分类的索引类型 InnoDB 使用B tree 索引模型&#xff0c;根据叶子节点是否存储数&#xff08;根据叶子节点的内容&#xff09;分为主键索引和非主键索引&#xff1b;非主键索引包括&#xff1a;普通索引、唯一索引、组合索引主键索引的叶子…