首页 > 其他分享 >CSS知识点总结

CSS知识点总结

时间:2024-02-29 11:44:23浏览次数:36  
标签:总结 知识点 定义 flex 元素 box 对齐 CSS matrix

盒模型

  • 宽度:width

  • 高度:height

  • 边框:border

  • 圆角:border-radius

  • 外边距:margin

  • 内边距:padding

  • 阴影效果:box-shadow

  • 背景:background

    • 背景颜色:background-color

    • 背景图片:background-image

    • 背景位置:background-position

    • 背景大小:background-size

    • 背景(图片)是否重复直到铺满:background-repeat

    • 过渡效果:transition

字体

  • 字体大小:font-size
  • 字体颜色:color
  • 字体粗细:font-weight
  • 字体(备选)族:font-family
  • 文字间距:letter-spacing
  • 文字对齐方式:text-align
  • 文字超出范围的显示处理:text-overflow

图片

  • object-fit:contain/cover

flex布局

  • 使用display: flex;

  • align-items:垂直于主轴方向上的排列方式

  • justify-content:主轴方向上的排列方式

  • flex-grow:容器空间有剩余时的扩大策略

  • flex-shrink:容器空间不够时的缩小策略

  • flex-wrap:是否自动换行

  • flex-direction:排布方向

伪元素

  • ::before:在DOM元素的前方添加内容
  • ::after:在DOM元素的后方添加内容
  • ::empty:在DOM元素内容为空时添加内容,可以用于提示用户"...没有内容"之类的情景

伪类

  • :hover:鼠标覆盖时触发
  • :focus:鼠标点击或者通过tab按键聚焦时触发,常用于输入框
  • :blur:失去焦点时,常用于输入框

transform

  • scale:放缩大小
  • translate:平移
  • rotate:旋转

动画

  • animation:使用动画

  • keyframes:定义动画


基础知识点

行内元素与块级元素

  • 块级元素独占一行,行内元素与其它元素在同一行;
  • 行内元素的width和height无效;
  • 行内元素与块级元素的切换:display: inline;display: block;
  • 行内块元素同时拥有二者的特点:display: inline-block;

常见块级元素

<div>     // 定义文档中的分区或节 
<form>  // 创建 HTML 表单 
<h1>    // 定义最大的标题
<h2>    // 定义副标题
<h3>     // 定义标题
<h4>     // 定义标题
<h5>     // 定义标题
<h6>     // 定义最小的标题
<hr>     // 创建一条水平线
<li>     // 标签定义列表项目
<ol>     // 定义有序列表
<ul>    // 定义无序列表
<p>     // 标签定义段落
<table>     // 标签定义 HTML 表格
<tbody>     // 标签表格主体(正文)
<td>    // 表格中的标准单元格
<tfoot>     // 定义表格的页脚(脚注或表注)
<th>    // 定义表头单元格
<thead>    // 标签定义表格的表头
<tr>     // 定义表格中的行

常见行内元素

<a>     // 标签可定义锚 
<b>     // 字体加粗 
<br>     // 换行 
<i>     // 
<label>     // 标签为 input 元素定义标注(标记)
<span>     // 组合文档中的行内元素
<sub>     // 定义下标文本
<sup>     // 定义上标文本
<textarea>     // 多行的文本输入控件

常见行内块元素

<button> 	// 按钮
<input>   	// 文本输入框
<textarea> 	// 文本域(多行文本输入)
<select> 	// 下拉选择框
<img>		// 图片

盒模型

图片来源于:盒模型 - 学习 Web 开发 | MDN (mozilla.org)

内容区:指上图中的蓝色矩形区域,是一个节点的内容区域,可以是文字或图片等内容。

在CSS盒子模型的默认定义里,你对一个元素所设置的 width与 height只会应用到这个元素的内容区。

源自:box-sizing - CSS:层叠样式表 | MDN (mozilla.org)

案例

如果存在一个父盒子包含一个子盒子,子盒子的width设置为100%,如果子盒子存在边框或内边距,则子盒子会溢出父盒子的范围,如下图:

image-20230428211125542

box-sizing

该CSS属性的默认值是content-box,即以内容区决定实际宽高。

另一个常用的值是border-box,指的是以(边框+内边距+内容区)决定实际宽高,更符合直觉,推荐使用。

推荐写法

*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
  • *是通配符,表示每一个页面元素都会匹配该规则。

  • 由于部分html元素会自带内外边距,根据个人习惯可以考虑将自带的内外边距清空,后续需要再设置。

  • box-sizing设置为人性化的border-box


居中方法

基本上所有主流浏览器都支持弹性布局(flex布局),下文的多种思路大多数都只是提供参考,flex布局可以完成绝大多数对齐需求。

水平居中对齐

元素居中对齐

使用margin: auto;,需要设置width属性。

文本居中对齐

文本在元素内居中对齐:text-align: center;

图片居中对齐

变成元素,然后使

用margin:

img{
	display: block;
    margin: auto;
    width: 40%;
}

左右对齐

使用定位方式

position: absolute;

使用position通常<body>元素会设置marginpadding.

使用float方式

float: right; float: left;

通常对<body>元素的外边距和内边距进行预定义。

如果子元素的高度大于父元素,且子元素设置了浮动,那么子元素将溢出。可以在父元素上添加overflow: auto;来解决子元素溢出的问题。

垂直居中对齐

使用padding

父盒子使用padding,子元素可以实现垂直居中:

.center{
	padding: 70px 0;
    /*...*/
}

如果要文本水平和垂直都居中:

.center{
    padding: 70px 0;
    text-align: center;
    /*...*/
}
使用line-height
.center{
	line-height: 200px;
    height: 200px;
    text-align: center;
}
使用position和transform
.center{
    height: 200px;
    position: relative;
    border: 3px solid green;
}

.center p{
	margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

长度单位

绝对长度单位

长度单位说明
cm 厘米
mm 毫米
in 英寸,inch,(1in = 96px = 2.54cm)
px 像素( 1px = 196 in)
pt point,磅,点,(1pt = 172in)
pc pica,派卡,(1pc = 12pt)

相对长度单位

长度单位说明
em 相对于自身 font-size(字体大小)属性的值,如果自身没有设置,则继承父元素 font-size 属性的值,1em 等同于 font-size 属性值。
rem 相对于根元素<html>的 font-size 属性的大小,比如根元素的 font-size 是 100px,那么 1.2rem 就相当于 120px。
ex 相对于所用字体中小写英文字母 x 的高度,若无法确定 x 的高度则使用 0.5em 计算.。
ch 相对于所用字体中数字 0 的高度,若无法确定 0 的高度则使用 0.5em 计算。
vw 相对于浏览器窗口的宽度,1vw = 窗口宽度的 1%。
vh 相对于浏览器窗口的高度,1vh = 窗口高度的 1%。
vmin vw与vh中较小的值。
vmax vw与vh中较大的值。
% 相对于父元素宽度或字体大小的百分比.

transform

平移translate()

两个参数:向右平移的距离,向下平移的距离。

旋转rotate()

一个参数:角度,单位deg

  • 正值:顺时针旋转;
  • 负值:逆时针旋转。

缩放scale()

如果输入两个参数,则表示:宽度倍数,高度倍数。

如果输入一个参数,则表示:宽高倍数。

倾斜skew()

两个参数:X轴倾斜角度,Y轴倾斜角度。

矩阵matrix()

矩阵是最万能,但是最繁琐的写法,使用线性变化可以实现以上的各种变化。

包含六个参数:a,b,c,d,e,f 分别对应如下矩阵的位置的参数值

 

(������001)

 

下面是矩阵和上文其它变化的关系

matrix() & translate()
transform:matrix(1,0,0,1,tx,ty);

tx:水平偏移距离

ty:垂直偏移距离

matrix() & scale()
transform:matrix(sx,0,0,sy,0,0);

sx:水平缩放倍数

sy:垂直缩放倍数

matrix() & rotate()
transform:matrix(cosθ,sinθ,-sinθ,cosθ,0,0);
CSS 复制 全屏

θ是顺时针旋转的角度。

matrix() & skew()
transform:matrix(1,tan(θy),tan(θx),1,0,0);

θx表示X轴倾斜的角度,θy表示Y轴倾斜的角度。

镜像对称
matrix((1-k*k)/(1+k*k),2k/(1+k*k),2k/(1+k*K),(k*k-1)/(1+k*k),0,0)

其中 � 是轴的斜率。

标签:总结,知识点,定义,flex,元素,box,对齐,CSS,matrix
From: https://www.cnblogs.com/wangtiantian/p/18043144

相关文章

  • 软考高项知识点汇总(一)
    一、信息与信息化1.信息(1)定义。1)控制论的创始人维纳认为:信息就是信息,它既不是物质也不是能量。2)根据信息化的奠基者香农的描述:信息用来“消除不确定的因素”。3)信息的概念存在两个基本的层次,即本体论层次和认识论层次。前者是纯客观的层次,只与客体本身的因素有关,与主体的因素......
  • 抖音技术分享:飞鸽IM桌面端基于Rust语言进行重构的技术选型和实践总结
    本文由ELab团队公众号授权发布,原题《Rust语言在IM客户端的实践》,来自抖音电商前端团队的分享,本文有修订和改动。1、引言本文将介绍飞鸽IM前端团队如何结合Rust对飞鸽客户端接待能力进行的技术提升,一步步从概念验证、路径分解到分工开发,再到最后上线收益论证,并分享了其中遇到的......
  • 【CSS】滚动条样式的优化
    【转】https://zhuanlan.zhihu.com/p/110029332?utm_id=0前言优化后的滚动条会提亮我们的网站页面。 例如:CSS-TRICKS这个网站如果采用的是浏览器默认的滚动条,不进行优化,页面会显得很不搭。所以该网站的滚动条样式优化如下:html::-webkit-scrollbar{width:30px;......
  • 每日总结
    学习内容在本周,我专注于学习javaweb相关知识。我参考了多个教程和文档,通过编写简单的示例程序来加深理解。我学习了Servlet、JSP、JavaBean等基本概念,并了解了如何使用Tomcat作为服务器运行我的javaweb应用程序。工作进展在学习javaweb的过程中,我也进行了一些实践工作。我创......
  • 每日总结2
    今天一大早被闹钟叫醒,心情还算不错。洗漱完毕后,我在桌上放了一个面包、一杯咖啡和一本书,然后开始了这一天的旅程。第一件事情是打开电脑,检查一下昨晚关掉的那些程序是否仍在运行中就会占用电脑的资源,让我启动其他应用变得缓慢。检查完运行中的程序后,我开始回忆昨天晚上做了什么,......
  • 《程序是怎样跑起来的》第九章总结
    阅读完《程序是怎样跑起来的》的第9章后,我深感启发。这一章主要探讨了程序运行的底层机制和原理,让我对计算机科学有了更深入的理解。通过作者的生动讲解,我逐渐揭开了程序背后的神秘面纱,感受到了计算机世界的魅力。在这一章中,作者主要讲述了操作系统对我们的重要性,操作系统的作用,......
  • 2/21 和 2/22 模拟赛总结
    2/21T1排序题意将$4n$个数分成$n$组,要求对于每组中的四个数$a,b,c,d$,求$\max\sum\lvertab-cd\rvert$。$n\le10^5$,$0\lea_i\le10^7$。解析找规律题,评红。将所有数从小到大排序,从中分成两半。小的一半“彩虹桥”式两两配对,大的一半大大配对、小小配对,即是最优答案。......
  • 2.28总结
    架构漫谈对关于架构设计的深入探讨,从建筑到组织管理,再到软件开发等各个领域,揭示了架构在解决复杂问题和实现目标中的重要性。通过对架构的定义、产生动力和实质性内容进行详细分析,让读者深入了解了架构的本质和作用。在书中,作者通过丰富的例子和详细的解释,生动地阐述了架构的发展......
  • CSP-S总结
    时间分配:T1:30min,T3:1.5h,T4:1.5h,剩下交给T2。T1:签到题,秒了。做法:直接枚举密码状态暴力校验。估分:100(话说某人貌似看到我10min开始测样例心态直接爆炸了)T2:感觉难度绿里绿气的,但一直不会。直接写了个区间dp,然后想到枚举左端点向右扩展,用栈维护,拿到50。然后一直感觉栈的......
  • 架构总结
    一、架构的定义所谓一千个架构师中有一千种“最好的架构”模式。“架构”是我们这行业种一个很常见的词,表明其必然也是经历了很长的岁月打磨所形成的一个词。架构的这个词出现的意义是什么?为了解决什么问题?只有把这2个问题想明白了,才能设计出一个良好的项目架构。......