【 CSS 】基础 2

“生活就像骑自行车,想要保持平衡,就得不断前行。” - 阿尔伯特·爱因斯坦

CSS 基础 2

1. emmet 语法

1.1 简介

  • Emmet语法的前身是 Zen coding,它使用缩写,来提高 HTML / CSS 的编写速度, VSCode 内部已经集成该语法。
  • 快速生成 HTML 结构语法。
  • 快速生成 CSS 样式语法。

emmet 官方文档

1.2 快速生成 HTML 结构语法

  • 生成标签 直接输入标签名 按 tab 键即可,比如 div 然后 tab 键, 就可以生成 <div></div>
  • 如果想要生成多个相同标签 加上 * 就可以了 比如 div*3 就可以快速生成3个 div
  • 如果有父子级关系的标签,可以用 > 比如 ul > li就可以了
  • 如果有兄弟关系的标签,用 + 就可以了 比如 div+p
  • 如果生成带有类名或者 id 名字的, 直接写 .demo 或者 #two tab 键就可以了
  • 如果生成的 div 类名是有顺序的, 可以用 自增符号 $
  • 如果想要在生成的标签内部写内容可以用 { } 表示

在这里插入图片描述

1.3 快速生成 CSS 样式语法

CSS 基本采取简写形式即可

  • 比如 w200 按 tab 可以 生成 width: 200px;
  • 比如 lh26px 按 tab 可以生成 line-height: 26px;
    在这里插入图片描述

1.4 快速格式化代码

  • VSCode 快速格式化代码: shift+alt+f
  • 也可以设置 当我们 保存页面的时候自动格式化代码:
    1. 文件 ------.>【首选项】---------->【设置】;
    2. 搜索 emmet.include;
    3. 在settings.json下的【工作区设置】中添加以下语句:
    "editor.formatOnType": true,
    "editor.formatOnSave": true
    

2. CSS 的复合选择器

2.1 何为复合选择器?

  • 在 CSS 中,可以根据选择器的类型把选择器分为基础选择器复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的。
  • 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的,可以更准确、更高效的选择目标元素(标签)
  • 常用的复合选择器包括:后代选择器子选择器并集选择器伪类选择器等等

2.2 后代选择器 (重要)

定义:后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

/* 语法 */元素1 元素2 { 样式声明 }
上述语法表示选择元素 1 里面的所有元素 2 (后代元素)。

语法说明

  • 元素1 和 元素2 中间用空格隔开
  • 元素1 是父级,元素2 是子级,最终选择的是元素2
  • 元素2 可以是儿子,也可以是孙子等,只要是元素1 的后代即可
  • 元素1 和 元素2 可以是任意基础选择器
ul li { 样式声明 }
/* 选择 ul 里面所有的 li 标签元素 */

2.3 子选择器 (重要)

定义:子元素选择器(子选择器)只能选择作为某元素的最近一级子元素。(简单理解就是选亲儿子元素)

/* 语法 */元素1 > 元素2 { 样式声明 }
上述语法表示选择元素1 里面的所有直接后代(子元素) 元素2。

语法说明

  • 元素1 和 元素2 中间用 大于号 隔开
  • 元素1 是父级,元素2 是子级,最终选择的是元素2
  • 元素2 必须是亲儿子,其孙子、重孙之类都不归他管. 你也可以叫他 亲儿子选择器
div > p { 样式声明 }
/* 选择 div 里面所有最近一级 p 标签元素 */

2.4 并集选择器 (重要)

定义:并集选择器可以选择多组标签, 同时为他们定义相同的样式,通常用于集体声明。并集选择器是各选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分。

/* 语法 */元素1,元素2 { 样式声明 }
上述语法表示选择元素1 和 元素2。

语法说明

  • 元素1 和 元素2 中间用逗号隔开
  • 逗号可以理解为和的意思
  • 并集选择器通常用于集体声明
div,p { 样式声明 }
/* 选择 div 和 p 标签元素 */

2.5 伪类选择器

定义:伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

语法说明
伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。

2.6 链接伪类选择器

定义:伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

语法说明

  • 伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover 、 :first-child 。

  • a:link 没有点击过的(访问过的)链接

  • a:visited 点击过的(访问过的)链接

  • a:hover 鼠标经过的那个链接

  • a:active 鼠标正在按下还没有弹起鼠标的那个链接

链接伪类选择器注意事项

  • 为了确保生效,请按照 LVHA 的循顺序声明 :link-:visited-:hover-:active。

  • 记忆法:love hate 或者 lv 包包 hao

  • 因为 a 链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式。

2.7 :focus 伪类选择器

定义::focus 伪类选择器用于选取获得焦点的表单元素。焦点就是光标,一般情况 类表单元素才能获取。

3. CSS 的显示模式

3.1 何为元素的显示模式

定义
元素显示模式就是元素(标签)以什么方式进行显示,比如 <div> 自己占一行,比如一行可以放多个 <span>
作用
网页的标签非常多,在不同地方会用到不同类型的标签,了解他们的特点可以更好的布局我们的网页。

3.2 元素显示模式的分类

3.2.1 块元素

常见的块元素

<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>
<div> 标签是最典型的块元素。

块级元素的特点

  • 比较霸道,自己独占一行。
  • 高度,宽度、外边距以及内边距都可以控制。
  • 宽度默认是容器(父级宽度)的100%。
  • 是一个容器及盒子,里面可以放行内或者块级元素。

注意

  • 文字类的元素内不能放块级元素
  • <p> 标签主要用于存放文字,因此 <p> 里面不能放块级元素,特别是不能放
  • 同理, <h1>~<h6> 等都是文字类块级标签,里面也不能放其他块级元素
3.2.2 行内元素

常见的行内元素

<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>
<span> 标签是最典型的行内元素。有的地方也将行内元素称为内联元素。

行内元素的特点

  • 相邻行内元素在一行上,一行可以显示多个。
  • 高、宽直接设置是无效的。
  • 默认宽度就是它本身内容的宽度。
  • 行内元素只能容纳文本或其他行内元素。

注意:

  • 链接里面不能再放链接
  • 特殊情况链接 <a> 里面可以放块级元素,但是给 <a> 转换一下块级模式最安全
3.2.3 行内块元素

常见的行内块标签

<img />、<input />、<td>
它们同时具有块元素和行内元素的特点。有些资料称它们为行内块元素。

行内块元素的特点

  • 和相邻行内元素(行内块)在一行上,但是他们之间会有空白缝隙。
  • 一行可以显示多个(行内元素特点)。
  • 默认宽度就是它本身内容的宽度(行内元素特点)。
  • 高度,行高、外边距以及内边距都可以控制(块级元素特点)。

3.3 元素显示模式的转换

简单理解:

  • 一个模式的元素需要另外一种模式的特性
  • 比如想要增加链接 的触发范围。

转换方式

  • 转换为块元素:display:block;
  • 转换为行内元素:display:inline;
  • 转换为行内块:display: inline-block;

3.4 单行文字垂直居中的代码

解决方案:

  • 让文字的行高等于盒子的高度 就可以让文字在当前盒子内垂直居中

简单理解:

  • 行高的上空隙和下空隙把文字挤到中间了,
  • 如果行高小于盒子高度,文字会偏上,
  • 如果行高大于盒子高度,则文字偏下。

4. CSS 背景

通过 CSS 背景属性,可以给页面元素添加背景样式。
背景属性可以设置背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定等。

4.1 背景颜色

样式名称:background-color 定义元素的背景颜色
使用方式:background-color: 颜色值;
其他说明:元素背景颜色默认值是 transparent(透明)

4.2 背景图片

样式名称:background-image 定义元素的背景图片
使用方式:background-color: none | url (url);
其他说明

  • 实际开发常见于 logo 或者一些装饰性的小图片或者是超大的背景图片, 优点是非常便于控制位置. (精灵图也是一种运用场景)
  • 注意:背景图片后面的地址,千万不要忘记加 URL, 同时里面的路径不要加引号

4.3 背景平铺

样式名称:background-repeat 设置元素背景图像的平铺
使用方式:background-repeat: repeat | no-repeat | repeat-x | repeat-y ;

参数值作用
repeat背景图像在纵向和横向上平铺(默认的)
no-repeat背景图像不平铺
repeat-x背景图像在横向上平铺
repeat-y背景图像在纵向上平铺

4.4 背景图片位置

样式名称:background-position 属性可以改变图片在背景中的位置
使用方式:background-position: x y;

  • 参数代表的意思是:x 坐标和 y 坐标。 可以使用 方位名词 或者 精确单位
参数值说明
length百分数 | 由浮点数和单位标识符组成的长度值
no-repeattop

其他说明

  1. 参数是方位名词
  • 如果指定的两个值都是方位名词,则两个值前后顺序无关,比如 left top 和 top left 效果一致
  • 如果只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐
  1. 参数是精确单位
  • 如果参数值是精确坐标,那么第一个肯定是 x 坐标,第二个一定是 y 坐标
  • 如果只指定一个数值,那该数值一定是 x 坐标,另一个默认垂直居中

3、参数是混合单位

  • 如果指定的两个值是精确单位和方位名词混合使用,则第一个值是 x 坐标,第二个值是 y 坐标

4.5 背景图片固定

样式名称:background-attachment 属性设置背景图像是否固定或者随着页面的其余部分滚动
使用方式:background-attachment: scroll | fixed;

参数值说明
scroll背景图像是随对象内容滚动
fixed背景图像固定

其他说明

background-attachment 后期可以制作视差滚动的效果。

4.6 背景样式合写

样式名称:background 背景合写样式
使用方式:background: transparent url(image.jpg) repeat-y fixed top;

4.7 背景色半透明

样式名称:background CSS3 提供了背景颜色半透明的效果。
使用方式:background: rgba(0,0,0,0.3);

  • 最后一个参数是 alpha 透明度,取值范围在 0~1之间
  • 我们习惯把 0.3 的 0 省略掉,写为 background: rgba(0, 0, 0, .3);

注意

  • 背景半透明是指盒子背景半透明,盒子里面的内容不受影响。
  • CSS3 新增属性,是 IE9+ 版本浏览器才支持的,但是现在实际开发,我们不太关注兼容性写法了,可以放心使用。

4.8 背景总结

属性作用
background-color背景颜色预定义的颜色值 / 十六进制 / RGB 代码
background-image背景图片url(图片路径)
background-repeat是否平铺repeat / no-repeat / repeat-x / repeat-y
background-position背景位置length / position 分别是 x 和 y 坐标
background-attachment背景附着scroll (背景滚动) / fixed (背景固定)
background 简写书写更简单背景颜色 背景图片地址 背景平铺 背景滚动 背景位置
背景色半透明背景颜色半透明background: rgba(0,0,0,.3); 后面必须是4个值

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

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

相关文章

webpack-dev-server原理解析及其中跨域解决方法

webpack proxy ,就是 webpack 提供的解决跨域的方案。其基本行为是接受客户端发送的请求后转发给其他的服务器&#xff0c;目的是为了解决在开发模式下的跨域问题。 原理 webpack中的proxy 工作原理是利用了 http-proxy-middleware 这个http 代理中间件&#xff0c;实现将请求…

专门为机器学习开发的jpy语言

这本来是一个为工科教学专门开发的附属品&#xff0c;并不是说Python或Java有多不好&#xff0c;根本上它就是一个Java工程教材&#xff0c;但又要结合人工智能。因此&#xff0c;出现了这样一个包容性的怪胎&#xff0c;可以用python一样的语法与Java一起编写。 没流行起来的一…

<信息安全>《2 国内主要企业网络安全公司概览(二)》

4 北京天融信科技有限公司(简称天融信) 信息内容LOGO成立日期创始于1995年总部北京市海淀区上地东路1号院3号楼北侧301室背景民营企业是否上市天融信[002212]A股市值99亿主要产品网络安全大数据云服务员工规模6000多人简介天融信科技集团&#xff08;证券代码&#xff1a;0022…

【开源】基于JAVA的停车场收费系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…

在达沃斯,人工智能引发的乐观情绪可谓一分为二

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

基于STM32的基础实验(一)

LED实验 采用STM32单片机设计电路&#xff0c;控制LED灯的亮灭&#xff0c;对单片机端口的位操作进行演示。 实验需要&#xff1a; STM32核心板独立LED 电路原理图 LED灯实际上是一个特殊的二极管&#xff0c;通过控制高低电平亮灭。如图所示&#xff0c;当1为低电平&#…

数据可视化 | 期末复习 | 补档

文章目录 &#x1f4da;介绍可视化&#x1f407;什么是可视化&#x1f407;科学可视化&#xff0c;信息可视化&#xff0c;可视分析系统三者之间有什么区别&#x1f525;&#x1f407;可视化的基本流程&#x1f407;可视化的两个基本设计原则&#x1f407;数据属性&#x1f407…

数学建模学习笔记||层次分析法

评价类问题 解决评价类问题首先需要想到一下三个问题 我们评价的目标是什么我们为了达到这个目标有哪几种可行方案评价的准则或者说指标是什么 对于以上三个问题&#xff0c;我们可以根据题目中的背景材料&#xff0c;常识以及网上收集到的参考资料进行结合&#xff0c;从而筛…

GEE:最小距离分类器(minimumDistance)分类教程(样本制作、特征添加、训练、精度、最优参数、统计面积)

作者:CSDN @ _养乐多_ 本文将介绍在Google Earth Engine (GEE)平台上进行最小距离分类(minimumDistance)的方法和代码,其中包括制作样本点教程(本地、在线和本地在线混合制作样本点,合并样本点等),加入特征变量(各种指数、纹理特征、时间序列特征、物候特征等),运行…

本地git切换地区后,无法使用ssh访问github 22端口解决方案

问题 由于放假回家&#xff0c;发现之前一直使用正常的git&#xff0c;与github无法通讯&#xff0c;pull和push都无法连接。报错如下&#xff1a; connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. 原因 可能是所…

docker常用基础命令

文章目录 1、Docker 环境信息命令1.1、docker info1.2、docker version 2、系统日志信息常用命令2.1、docker events2.2、docker logs2.3、docker history 3、容器的生命周期管理命令3.1、docker create3.2、docker run 总结 1、Docker 环境信息命令 1.1、docker info 显示 D…

Linux 命令大全 CentOS常用运维命令

文章目录 1、Linux 目录结构2、解释目录3、命令详解3.1、shutdown命令3.1、文件目录管理命令ls 命令cd 命令pwd 命令tree 命令mkdir 命令touch 命令cat 命令cp 命令more 命令less 命令head 命令mv 命令rm 命令ln 命令tail 命令cut命令 3.2、用户管理useradd/userdel 命令用户的…

使用残差网络识别手写数字及MNIST 数据集介绍

MNIST 数据集已经是一个几乎每个初学者都会接触的数据集, 很多实验、很多模型都会以MNIST 数据集作为训练对象, 不过有些人可能对它还不是很了解, 那么今天我们一起来学习一下MNIST 数据集。 1.MNIST 介绍 MNIST 数据集来自美国国家标准与技术研究所, National Institute of S…

2. SpringBoot3 实战之用户模块接口开发

文章目录 开发模式和环境搭建开发模式环境搭建 1. 用户注册1.1 注册接口基本代码编写1.2 注册接口参数校验 2. 用户登录2.1 登录接口基本代码编写2.2 登录认证2.2.1 登录认证引入2.2.2 JWT 简介2.2.3 登录功能集成 JWT2.2.4 拦截器 3. 获取用户详细信息3.1 获取用户详细信息基本…

openEuler安装KVM

1、关闭防火墙和selinux [rootlocalhost ~]# systemctl stop firewalld[rootlocalhost ~]# setenforce 0 2、下载软件包 libvirt&#xff1a;用于管理虚拟化平台的开源的 API&#xff0c;后台程序和管理工具。 qemu&#xff1a;开源&#xff08;模拟&#xff09;软件&#…

【MySQL】InnoDB 什么情况下会产生死锁

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;数据库 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 结语 我的其他博客 前言 在数据库管理系统中&#xff0c;特别是使用 InnoDB 存储引擎的 MySQL 中&#xff0c;死锁是一个可能影响…

Win10下在Qt项目中配置SQlite3环境

资源下载 官网资源&#xff1a;SQLite Download Page 1、sqlite.h sqlite-amalgamation-3450000.zip (2.60 MiB) 2、sqlite3.def&#xff0c;sqlite3.dll sqlite-dll-win-x64-3450000.zip (1.25 MiB) 3、 win10下安装sqlite3所需要文件 sqlite-tools-win-x64-3450000.zipht…

万界星空科技MES系统的生产管理流程

对于生产型工厂来说&#xff0c;车间生产流程无疑是最重要的管理环节&#xff0c;繁琐的生产细节让企业很难找到合理的生产管理方法&#xff0c;导致人工效率低、错误多、成本高。如果想要解决这些问题&#xff0c;工厂就必须要有一套自己的生产管理系统&#xff0c;这样才能提…

【Leetcode】410. 分割数组的最大值

文章目录 题目思路1.max_element2.partial_sum3.upper_bound4.distance 代码运行结果 题目 题目链接 给定一个非负整数数组 nums 和一个整数 k &#xff0c;你需要将这个数组分成 k 个非空的连续子数组。 设计一个算法使得这 k 个子数组各自和的最大值最小。 示例1&#xff1…

玩转 SpEL 表达式

本文概览 欢迎阅读本文&#xff0c;其中我们将深入探讨 Spring Expression Language&#xff08;SpEL&#xff09;的语法和实际应用。从基础概念到高级用法&#xff0c;我们将在本文中了解如何使用 SpEL 提高代码的灵活性和表达力。无论大家是初学者还是有经验的开发者&#x…