前端学习记录~2023.7.3~CSS杂记 Day4

news2024/12/23 9:39:37

  • 前言
  • 一、溢出
    • 1. 默认情况
    • 2. overflow属性
    • 3. BFC
  • 二、CSS 的值与单位
    • 1. 长度
      • (1)绝对长度单位
      • (2)相对长度单位
    • 2、百分比
    • 3、数字
    • 4、颜色
      • (1)颜色关键字
      • (2)十六进制 RGB 值
      • (3)RGB 和 RGBA 的值
      • (4)HSL 和 HSLA 的值
    • 5、图片
    • 6、位置
    • 7、字符串和标识符
    • 8、函数
  • 三、在 CSS 中调整大小
    • 1、原始尺寸 / 固有尺寸
    • 2、设置具体的尺寸
      • (1)使用百分数
      • (2)把百分数作为内外边距
      • (3)min- 和 max- 尺寸
    • 3、视口单位
  • 四、图像、媒体和表单元素
    • 1、替换元素
    • 2、调整图像大小
      • (1)min- 和 max- 尺寸
      • (2)object-fit 属性
    • 3、form元素
      • (1)样式化文本输入元素
      • (2)继承和表单元素
      • (3)form 元素与 box-sizing
      • (4)其他有用的设置
      • (5)将一切都放在一起“重置”
  • 总结


前言

由于有很多知识非常符合直觉或者和其他语言有通用性,因此个人觉得不需要全部记下来,本篇只记录一些个人觉得需要注意或单独记忆的知识点。

同时为了提高效率和减少对不重要内容的时间投入,会考虑更加精简


一、溢出

1. 默认情况

CSS会尽量减少数据损失,因此会从盒子溢出内容超出范围,而不是为了满足盒子的尺寸而忽略掉内容

2. overflow属性

overflow属性告诉浏览器处理溢出的方式。

  • visible:是默认值。这也是溢出时能看到内容的原因
  • hidden:隐藏掉溢出
  • scroll:添加滚动条。如果内容没有溢出,滚动条仍然会存在
  • auto:只有溢出时才会添加滚动条

可通过overflow-xoverflow-y分别控制两个方向溢出的设置。

如果overflow有两个值,如overflow:scroll hidden,那么前一个会对overflow-x生效,后一个对overflow-y生效。否则会同时作用于两者

3. BFC

块级排版上下文(Block Formatting Context,BFC)
后面再详细记录


二、CSS 的值与单位

1. 长度

(1)绝对长度单位

这些值中的大多数在用于打印时比用于屏幕输出时更有用。

经常使用的可能就是 px(像素)

(2)相对长度单位

相对长度单位相对于其他一些东西,比如父元素的字体大小,或者视图端口的大小。使用相对单位的好处是,经过一些仔细的规划,你可以使文本或其他元素的大小与页面上的其他内容相对应

最常用的应该是emrem
在这里插入图片描述

2、百分比

总是相对于其他值设置的

3、数字

一些属性接受没有任何单位的纯数字

比如opacity不透明度属性,此属性接受0(完全透明)到 1(完全不透明)之间的数字

4、颜色

(1)颜色关键字

例如red

(2)十六进制 RGB 值

1个#和6个十六进制数字组成,每对值表示一个通道——红色、绿色和蓝色——并允许我们为每个通道指定 256 个可用值中的任意一个(16 x 16 = 256)
例如 #02798b

(3)RGB 和 RGBA 的值

RGB 值是一个函数——rgb()——它有3个参数,表示颜色的红色、绿色和蓝色通道值,与十六进制值的方法非常相似。
RGB 的不同之处在于,每个通道不是由两个十六进制数字表示的,而是由一个介于 0 到 255 之间的十进制数字表示的
例如rgb(2, 121, 139)

也可以添加第4个参数成为rgba(),代表颜色的 alpha 通道,控制不透明度,值的范围为 0 到 1。例如rgba(2, 121, 139, .3)

(4)HSL 和 HSLA 的值

hsl()函数接受色相、饱和度和亮度值。例如hsl(188, 97%, 28%)

  • 色调:颜色的底色。值在 0 - 360
  • 饱和度:值为 0 - 100%。0 为无颜色(将表示为灰色阴影),100% 为全色饱和度
  • 亮度:值为 0 - 100%。0 为没有光(将完全显示为黑色),100%表示完全亮(将完全显示为白色)

rgb()一样可以传递一个 alpha 参数表示透明度。例如hsl(174 77% 31% / .9)

在新版本的 CSS 中现在不需要像rgba()一样使用hsla()了,不过仍旧被支持

5、图片

例如一个渐变

.gradient {
  background-image: linear-gradient(90deg, rgba(119,0,255,1) 39%, rgba(0,212,255,1) 100%);
}

6、位置

用于定位一个元素

例如background-position: right 40px;第一个值是水平位置,第二个值是竖直位置

7、字符串和标识符

诸如red之类的字符串关键字在某些时候可以被准确描述为标识符,是一个CSS能理解的特殊值

8、函数

包括上面的rgb() hsl(),很多函数都可以被认为是属性值,比如url()calc()

例如

.box {
  width: calc(20% + 100px);
}

三、在 CSS 中调整大小

1、原始尺寸 / 固有尺寸

html元素在没受到css设置之前有原始尺寸。比如img默认图片原始大小,<div>默认没有尺寸

2、设置具体的尺寸

当给元素指定尺寸(然后其内容需要适合该尺寸)时,我们将其称为外部尺寸

(1)使用百分数

当使用百分数时,指的是相对于父容器的百分比

(2)把百分数作为内外边距

如果把 marginspadding 设置为百分数的话,值是以包含块的内联尺寸进行计算的,也就是元素的水平宽度。

(3)min- 和 max- 尺寸

比如希望一个元素至少有多高,那么可以使用min-height。这样就会一直保持大于这个最小高度,但是如果有比这个盒子在最小高度状态下所能容纳的更多内容,那么盒子就会变大。

max-width 的常见用法为,在没有足够空间以原有宽度展示图像时,让图像缩小,同时确保它们不会比这一宽度大。如果你使用了 max-width: 100%,那么图像可以变得比原始尺寸更小,但是不会大于原始尺寸的 100%

这个技术用来让图片可响应

3、视口单位

通过视口宽度vw和视口高度vh可以让元素随用户视口而改变大小。

1vh 等于视口高度的 1%1vw 则为视口宽度的 1%

视口(viewport)代表当前可见的计算机图形区域。在Web浏览器术语中,通常与浏览器窗口相同,但不包括浏览器的UI, 菜单栏等——即指你正在浏览的文档的那一部分。

一般我们所说的视口共包括三种:布局视口、视觉视口和理想视口,它们在屏幕适配中起着非常重要的作用。


四、图像、媒体和表单元素

1、替换元素

比如图像视频被描述为替换元素。这意味着 CSS 不能影响它们的内部布局,只能影响他们在页面上相对其他元素的位置。这些元素是一种外部对象,它们外观的渲染,是独立于 CSS 的。

某些替换元素(例如图像和视频)也具有宽高比。这意味着它在水平(x)和垂直(y)方向上均具有大小,并且默认情况下将使用文件的固有尺寸进行显示

2、调整图像大小

(1)min- 和 max- 尺寸

使用上一部分提到的例如max-width属性来控制

(2)object-fit 属性

当使用object-fit属性时,替换元素可以以多种方式被调整到合乎盒子的大小。

三个取值:

  • cover:维持图像原始比例来充满盒子。但是由于比例不变,因此图像多余的部分会被盒子裁切掉
  • contain:图像被缩放到足以完整放到盒子里的大小。如果图像比例和盒子不同,可能会出现空白
  • fill:让图像充满盒子,但是比例可能会发生变化

3、form元素

(1)样式化文本输入元素

允许文本输入的元素有很多,例如 <input type="text">,及其指定特定类型的元素,如 <input type="email"> 以及 <textarea> 元素,这些都是相当容易样式化的,它们和页面上其他盒子的表现相同。只不过在不同的操作系统和浏览器上访问时这些元素默认的样式化方式可能不同。

input[type="text"],
input[type="email"] {
  border: 2px solid #000;
  margin: 0 0 1em 0;
  padding: 10px;
  width: 100%;
}

input[type="submit"] {
  border: 3px solid #333;
  background-color: #999;
  border-radius: 5px;
  padding: 10px 2em;
  font-weight: bold;
  color: #fff;
}

input[type="submit"]:hover, input[type="submit"]:focus {
  background-color: #333;
}  
<form>
  <div><label for="name">Name</label>
  <input type="text" id="name"></div>
  <div><label for="email">Email</label>
  <input type="email" id="email"></div>

  <div class="buttons"><input type="submit" value="Submit"></div>
</form>

效果如下
在这里插入图片描述

(2)继承和表单元素

在一些浏览器中,表单元素默认不会继承字体样式,因此如果你想要确保你的表单填入区域使用 body 中或者一个父元素中定义的字体,你需要向你的 CSS 中加入这条规则

button,
input,
select,
textarea {
  font-family : inherit;
  font-size : 100%;
}

(3)form 元素与 box-sizing

跨浏览器的 form 元素对于不同的挂件使用不同的盒子约束规则。在样式化表单时候,可以使用box-sizing,确保在给 form 元素设定宽度和高度时可以有统一的体验

button,
input,
select,
textarea {
  box-sizing: border-box;
  padding: 0;
  margin: 0;
}

(4)其他有用的设置

除了上面提到的规则以外,你也应该在 <textarea> 上设置 overflow: auto 以避免 IE 在不需要滚动条的时候显示滚动条:

textarea {
	overflow: auto;
}

(5)将一切都放在一起“重置”

作为最后一步,我们可以将上面讨论过的各式属性包起来,成为以下的“表单重置”,以提供一个统一的在其上继续进行工作的地基,这包含了前几节提到的所有东西:

button,
input,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  box-sizing: border-box;
  padding: 0; margin: 0;
}

textarea {
  overflow: auto;
}

总结

只记录了 CSS 的部分内容

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

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

相关文章

单片机第一季:零基础7——定时器和计时器

目录 1&#xff0c;单片机定时器原理 2&#xff0c;51单片机定时器/计数器结构 3&#xff0c;定时器配置 4&#xff0c;示例代码-通过定时器控制LED灯间隔1s闪烁 51 单片机有两组定时器/计数器&#xff0c;因为既可以定时&#xff0c;又可以计数&#xff0c;故称之为定时…

JPA实现多对多关系

本文已收录于专栏 《Java》 目录 概念说明优势利弊实现方式通过两个ManyToMany注解实现类图代码 通过OneToMany和ManyToOne注解实现类图代码 总结提升 概念说明 多对多关系是指两个实体之间存在多对多的关联关系。在数据库中&#xff0c;多对多关系无法直接表示&#xff0c;需要…

javascript截取两个符号之间的字符串(2):lastIndexOf匹配和正则表达式匹配

lastIndexOf匹配和正则表达式匹配 项目需求1.规范的字符串2.不规范的字符串3-1.万能封装3-2.ChatGPT的优化写法4.正则表达式的用法5.补充知识&#xff1a;lastIndexOf的用法 项目需求 javascript中截取字符串中最后一个“/”和“?”之间的内容。 1.规范的字符串 https://tes…

100天精通Python(可视化篇)——第96天:Pyecharts绘制多种炫酷箱形图参数说明+代码实战

文章目录 专栏导读1. 箱形图介绍1&#xff09;箱形图介绍2&#xff09;怎么看箱型图&#xff1f;3&#xff09;解释说明 2. 普通箱型图3. 水平箱型图4. 群组箱型图5. 带异常点的箱型图 专栏导读 &#x1f525;&#x1f525;本文已收录于《100天精通Python从入门到就业》&#…

Docker实战总结

Docker 官方文档地址:https://www.docker.com/get-started 中文参考手册:https://docker_practice.gitee.io/zh-cn/ 1.什么是 Docker 1.1 官方定义 最新官网首页 # 1.官方介绍 - We have a complete container solution for you - no matter who you are and where you are…

线性回归--波士顿房屋价格预测

一、波士顿房屋价格预测代码 import sysimport pandas as pd import numpy as np from sklearn.linear_model import LinearRegression import matplotlib.pyplot as plt import matplotlib as mpt from sklearn.model_selection import train_test_split##加载数据 datapd.re…

Druid工作原理

Druid工作原理-连接池初始化流程 标题 Druid工作原理-获取连接流程&#xff1a; 连接回收:

类定义练习

运行代码&#xff1a; //类定义练习 #include"std_lib_facilities.h" #include"GUI/Simple_window.h" #include"GUI/GUI.h" #include"GUI/Graph.h" #include"GUI/Point.h" //定义类 class Person { private:string first_n…

直流有刷驱动板电流电压采集

直流有刷驱动板电流电压采集 电流采集会涉及到电流环的使用。 #include "./adc/bsp_adc.h" #include ".\motor_control\bsp_motor_control.h" #include "./led/bsp_led.h" #include "./usart/bsp_debug_usart.h"__IO uint16_t…

vue-element-admin深入系列-数据Mock

本文介绍 vue-element-admin 如何使用 MockJS 实现数据Mock,毕竟对于一个合格的前端来讲,自己能Mock数据是必须的: 自给自足,不用依赖服务端接口。毕竟环境问题是个大问题,更何况环境不稳定是常态,再加上偶尔服务端的数据格式变化,问题就更复杂。 数据复杂,页面复杂时。…

HackTheBox - 学院【CPTS】复习6 - Active Directory

ACTIVE DIRECTORY ENUMERATION & ATTACKS 这个模块其实与thm的AD教程相比&#xff0c;还是thm更适合刚开始接触AD以及学习从枚举到持久化的全阶段&#xff08;红队&#xff09;。而htb学院这个模块更注重于枚举和各种攻击手段&#xff0c;有点纯渗透的风格&#xff0c;弱化…

通过动态IP解决网络数据采集问题

动态地址的作用 说到Python网络爬虫&#xff0c;很多人都会遇到困难。最常见的就是爬取过程中IP地址被屏蔽。虽然大部分都是几个小时内自动解封的&#xff0c;但这对于分秒必争的python网络爬虫来说&#xff0c;是一个关键性的打击&#xff01;当一个爬虫被阻塞时&#xff0c;…

Java内部类笔记

1.为什么使用内部类? 使用内部类最吸引人的原因是&#xff1a;每个内部类都能独立地继承一个&#xff08;接口的&#xff09;实现&#xff0c;所以无论外围类是否已经继承了某个&#xff08;接口的&#xff09;实现&#xff0c; 对于内部类都没有影响 1.1.使用内部类最大的优点…

TCP/IP基础知识笔记

应用层&#xff1a;为用户提供应用功能&#xff0c;比如 HTTP、FTP、Telnet、DNS、SMTP等。 应用层是工作在操作系统中的用户态&#xff0c;传输层及以下则工作在内核态。 传输层&#xff1a;为应用层提供网络支持。 *TCP包含众多特性比如流量控制、超时重传、拥塞控制等因此可…

pytorch深度学习逻辑回归 logistic regression

# logistic regression 二分类 # 导入pytorch 和 torchvision import numpy as np import torch import torchvision from torch.autograd import Variable import torch.nn as nn import torch.nn.functional as F import torch.optim as optim import matplotlib.pyplot as …

(简单)剑指Offer II 056. 二叉搜索树中两个节点的和 Java

方法一&#xff1a;深度优先搜索哈希表 使用深度优先搜索的方式遍历整棵树&#xff0c;用哈希表记录遍历过的节点的值 对于一个值为x的节点&#xff0c;检查哈希表中是否存在k-x即可。如果存在对应的元素&#xff0c;那么我们就可以在该树上找到两个节点的和为k&#xff1b;否…

河流垃圾检测Y8S

【免费】河流垃圾检测Y8M&#xff0c;只需要OPENCV资源-CSDN文库 采用YOLOV8训练&#xff0c;得到PT模型&#xff0c;然后直接转ONNX&#xff0c;使用OPENCV的DNN&#xff0c;不需要其他依赖&#xff0c;支持C/PYTHON

Hadoop 之 分布式集群配置与使用(三)

Hadoop 之 分布式集群 一.集群实例创建二.配置1.创建三个虚拟机&#xff08;Anolis&#xff09;1.修改 HostName2.配置免密登录&#xff0c;配置前 2.配置命名节点1.在 nd1 / nd2 部署 hadoop2.配置 3.查看集群信息 三.测试 一.集群实例创建 以三个 Hadoop 实例创建集群&#…

对战五子棋——网页版

目录 一、项目简介 二、用户模块 1、创建用户实体类 2、编写userMapper接口文件 3、实现userMapper.xml文件 4、对用户密码进行加密 5、实现用户登录功能 6、实现用户注册功能 三、实现用户匹配模块 1、展示用户个人信息 2、匹配请求类 3、匹配响应类 4、创…

郭东白的架构课学习笔笔记(1)

1.架构师的品质 自信和勇气&#xff08;正确的废话&#xff09;拥有战略意图&#xff0c;所谓战略意图&#xff0c;就是拥有与其资源和能力极不相称的雄心壮志。使用演绎法寻找架构原理&#xff0c;而不是归纳法。 2.如何提升自己的架构能力 向身边比自己厉害的优秀架构师或…