迟来的年度总结,新手猿的三千世界观!(上)

2021已经远去,作为一个不那么卷的新人程序猿,必不可少的出一份年度总结,用来了解一哈自我和世界,知道这些,应该可以算是入了个大概,废话不多讲,下面是正文!



1. 你不得不会的HTML部分:

首先,HTML是一种标签语言,由一对语义明确的<>标签组成,基本结构至少包括:整体语义标签<html></html>,<head></head>,<body></body>分别用来表示文档开始,文档头部,文档主体,而细分的话其中又包含可读取语言标签<html lang="en/zh">(en为英文,用浏览器打开后会出现可选提示,zh为中文,用浏览器打开后默认由中文模式打开)

标签<html lang="en">

<head>标签下  <meta charset="UTF-8">代表了可读取编码符是包含全世界所有国家需要用到的字符,<title>Document</title>标签则是代表了整个文档或者说页面的标题,其显示区域如下:

<title>标签域

<link rel="stylesheet" href="css1.css">为引入文件的标签,通常可引入CSS样式,小图标,iconfont(字体图标)等,通常放置在<title>标签下方。文档自上而下读取。

*一些标签和作用:

h1-h6代表了6种标题大小的标签,1最大6最小,分别用来显示1-6级标题;

<p>为段落标签,里面所有内容一行显示,遇到边界会自动换行,且不另外设置样式的话不会首行缩略和进行行高等操作

<hr>为水平分割线,就像:


<br>为换行,<strong>为加粗,<em>为倾斜 

一些特殊符号:&nbsp;空格; &lt;小于号; &gt;大于号; &quot;双引号; &copy;版权符号

<img src="" alt="" title+"">为图片标签,src为图片的地址,该地址可以是本地地址,也可以是外部地址,alt为读取图片失败后显示的信息,title是鼠标悬停时显示的信息,单独设置图片宽高时会等比缩放

<a href="" target=""></a>是链接标签,通过点击特殊样式的内容跳转到某种资源上,href是链接地址,target属性设置目标窗口打开的位置,属性值_self替换自身窗口,_blank是打开新窗口,通过<a name = ""></a>组成一对锚链接,即点击a href标签跳转到a name标签处,

<div></div>是一个块级标签,开辟出一块独立的区域,如果不设置宽高将会由内容撑开,

<span></span>是一个行级标签,通常用于突出显示段落中的部分内容

块级标签:该元素独占一行(h2,p)

行级标签:按行显示,一行不够放,才会自动换行(a,strong,em,img)

通常情况下,行级标签要放在块级标签里面使用,p标签不能嵌套p标签

ol是有序列表标签,它里面的列表项是有序号的

ul是无需列表标签,它里面的列表项是没有序列的,但是有符号

li 是列表项标签,ol,ul都可通过type属性设置标签符号的样式,

列表可以嵌套定义,比如<ul><li><ul><li></li></ul></li></ul>

dl是定义列表标签

dt的定义列表的标题标签

dd是定义列表的描述标签,用来描述dt

可以用多个dd去描述一个dt,一个dl可以只描述一个dt,也可以描述多个dt,

<table></table>是表格标签,caption是表格的标题标签,<thead>是表格头,<tbody>是表格主体,<tfoot>是表格尾部,作用是将表格分为一个由不同功能区域构成的完整表格,其中<thead>里面又包含<th>(表头标签,该标签里的内容会默认加粗显示),<tr>为行标签<td>为列标签,先行后列colspan属性,用于单元格跨列,rowspan属性,用于单元格跨行

form是表单标签,表单的作用是:接收用户输入的数据,并向服务器发送,method属性设置表单的提交方式:GET和POSTP,action属性设置表单的提交地址,如果表单中使用了文件域,表单标签需要添加一个enctype="multipart/form-data"属性

input标签是表单的元素,绝大多数表单元素都是使用input标签,通过type属性设置元素的类型:

一些具体表单元素标签属性


H5新增的一些属性

<audio> 标签定义声音,比如音乐或其他音频流,为入口标签,具体地址内容由其内部的<source src="" type="audio/MP3">标签进行定义,可放置多个source,读取可成功读取的那一个

audio标签默认样式

<video> 标签定义视频,比如电影片段或其他视频流,为入口标签,具体信息由内部<source src="" type="video/mp4">标签进行定义,可放置多个source,读取可成功读取的那一个

<svg></svg>标签是指内联svg的矢量图,优点是不会随屏幕放大而失帧或模糊,SVG 是一种使用 XML 描述 2D 图形的语言,区别于canvas,Canvas 通过 JavaScript 来绘制 2D 图形,缺点是加载进程会造成阻塞,减慢渲染进度,不适合大幅度复杂设计,适合大进程点线设计,如地图放大,模型绘制等。

localStorage 和 sessionStorage

web存储是由一对Key 和Value组成的,localStorage 对象存储的数据没有时间限制

保存数据:localStorage.setItem(key,value);

读取数据:localStorage.getItem(key);

删除单个数据:localStorage.removeItem(key);

删除所有数据:localStorage.clear();

得到某个索引的key:localStorage.key(index);

sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

可用的API如上。

<canvas> 标签定义图形,比如图表和其他图像,使用Javascript来定义或者绘制图像,<canvas></canvas>只是定义了一个canvas容器,容器内部需要由脚本进行绘制,此处将不作详解。

2. 你不得不会的CSS部分:

CSS可以在title标签下的style标签内进行编码,或者由link标签进行外部引入

选择器:

标签选择器:以标签的名称作为选择器的名称,对所有该标签添加样式 h1{}

类选择器:选择器的名称是自定义的,必须以.符号开头。在标签中,通过class属性调用具体的类选择器样式,在标签中使用时,不需要加.号 <div class="box1"></div>, .box1{}

id选择器:选择器的名称也是自定义的,必须以#符号开头。在标签中,通过id属性调用具体的id选择器样式,在标签中使用时,不需要加#号,在网页中,标签的id属性值,通常是不能重复的。id选择器的优先级更高  <div id="box2"></div>   #box2{}

基本选择器的优先级:id选择器 > 类选择器 > 标签选择器, !important的优先级最高

层次选择器:

    后代选择器,方式是:A B{}。对A里面的所有B添加样式

    子选择器,方式是:A>B{}。 对A里面的所有第一级的B添加样式

     相邻兄弟选择器,方式是:A+B{},B必须是A相邻的下一个元素

     通用兄弟选择器,方式是:A~B{},对A下面的所有的B元素添加样式

属性选择器:属性选择器,方式是:[属性名]{},通常会配合其他选择器一起使用,比如:li[属性名],只针对li标签,例如:li[name="first"]{}

属性选择器,可以根据属性值,精确的对某些标签添加样式:

$= 表示以指定的属性值结尾

^= 表示以指定的属性值开头

*= 表示属性值包含指定的内容

交集选择器,方式是:选择器A选择器B{},同时满足A和B的元素,添加样式

并集选择器,方式是:A,B,C{},给多个选择器,设置相同的样式

结构伪类选择器:

    :first-child 表示指定标签的第一个

    :last-child 表示指定标签的最后一个

    :nth-child(n) 表示指定标签的第n个

盒子模型:网页里面的每一个标签,都可以当做是一个盒子,该盒子是用来放内容的,通过:宽高,内边距,边框,外边距定义盒子

每条边框可以通过三个属性设置,分别设置:边框宽度(width) 边框颜色(color) 边框类型(size),

边框类型solid,表示实线,边框类型double,表示双实线,边框类型dashed,表示虚线,边框类型dotted,表示点线,例:

border: 1px solid black,即表示线宽为1 ,颜色是黑色的直线,

margin为外边距,即盒子与其他相邻元素之间的距离,如果这两个盒子均设置了不同大小的边距,大的一方将会覆盖小的一方,解决办法就是给其中一个盒子指定一个父级盒子,给父级盒子再套一个外边距。

margin:10px ,margin-left:13px。。。

宽高:即平面2D里的长宽,宽为横向,高为纵向,单位有px (像素),vw(百分比)/vh, em(字体大小),rem(移动端字体大小),是构成封闭2D图的基本要素,只设置一个则另一个由其子级元素撑开。

内边距:padding,有外边距自然会有内边距,内边距是指盒子内部要素距盒子边框之间的距离,例如:padding:10px 。

以上要素均可单独设置上下左右四个单独区域的属性样式。盒子的实际宽度= width + border-left + border-right + padding-left + padding-right + margin-left + margin-right,box-sizing属性设置盒子的类型,默认值是content-box,是内容盒子,表示width和height的空间全部给内容,通过display属性,可以设置标签的显示方式,inline表示行内元素,block表示块级元素,none表示不显示,盒子阴影:属性值分别是:X轴偏移量 Y轴偏移量 模糊半径 阴影颜色,第一个属性值设置为inset,表示内阴影:

box-shadow:10px 10px 5px blue,

box-shadow:inset 0px 0px 30px blue,

属性值border-box,是边框盒子,盒子的边框和内边距产生的空间从width和height里面扣除

浮动:

float属性设置浮动,属性值包括left(左浮动),right(右浮动),none(不浮动),clear用于清除浮动。属性值包括:left(清除左浮动),right(清除右浮动),both(清除全部浮动)

解决父级边框塌陷:

第一种解决的方法是:给父级一个明确的高度;

第二种解决的方法是:在父级的最下面,添加一个不浮动的元素,并清除前面的浮动空间;

第三种解决的方法是:通过伪元素样式在父级的下面添加块级元素,再利用该块级元素清除前面的浮动:

::after表示在指定的父级的下面,添加元素

::before表示在指定的父级的上面,添加元素

即:

.parent::after{

        /* content属性里面设置添加的元素里面的内容 */

        content:'';

         /* 下面是设置该元素的样式 */

         display:block;

         clear:both;

}

第四种解决的方法是:给父级添加一个overflow属性,属性值是非visible(overflow配合锚链接的使用,可以增长一个盒子的实际使用空间,使用方法:父级盒子用来单独显示要素,内部子级可以放置多种样式大小,再将父级设置overflow属性,非visible,再通过设置锚链接即可将子级元素通过点击显示出来,当然,修改DOM可以更快实现)

white-space 属性设置空白处理,属性值nowrap,表示设置文本不换行,属性值pre,表示保留空格,overflow 属性是溢出处理,属性值hidden表示溢出部分隐藏,text-overflow 属性设置文本溢出处理,属性值ellipsis表示文本溢出部分显示...

注意:上面的三个属性值缺一不可


多行文本溢出处理

定位:

position 是定位属性,属性值包括:static(不定位,默认值),relative(相对定位),是相对于自己重新定位,通过top,bottom,left,right属性控制定位的偏移量,absolute(绝对定位)。绝对定位是根据离它最近的父级定位元素进行定位(注意:绝对定位元素,会脱离标准文档流,所以,它下面的元素会去抢占它原来的位置),fixed(固定定位)。就是根据浏览器的视口进行定位(定位后的位置,不会随着浏览器滚动条的滚动而消失)


盒子水平和垂直方向居中

非定位元素的实际宽度 = width + border-left + border-right + padding-left + padding-right + margin-left + margin-right

定位元素的实际宽度 = width + border-left + border-right + padding-left + padding-right + margin-left + margin-right + left + right

opacity属性,设置透明度,注意:是设置整个元素的透明度

取值范围是:0-1,0是全透明,1是不透明

BFC:

即Box Formatting Context(决定如何渲染文档的容器),Formatting context 是 W3C CSS2.1 规范中的一个概念,BFC是一个独立的布局环境,其中的元素布局是不受外界的影响,相关内容可访问:BFC

圆角:border-top-left-radius:20px;

border-top-right-radius:40px;

border-bottom-right-radius:60px;

border-bottom-left-radius:80px;

设置两个值的时候:一个属性值是横向宽度,第二个属性值是纵向宽度,这样的圆角就是椭圆圆角,

border-radius是缩写属性,可以同时设置:左上 右上 右下 左下,四个角的圆角:

border-radius:20px 40px 60px 80px;

四个角的圆角都设置为50%,就是正圆:border-radius:50%;

背景:

背景样式

background-color 背景颜色

background-image 背景图片

background-repeat 背景图片的平铺方式,

属性值包括:no-repeat(不平铺) repeat(平铺) repeat-x(X轴平铺) repeat-y(Y轴平铺)

background-position 背景图片的位置,

可以通过:left right top bottom center 这些方位值设背景图片的具体位置,

也可以通过:具体的数字设置X轴和Y轴的位置,

还可以通过:百分比设置X轴和Y轴的位置,

无论是给具体的数字,还是给具体的百分比,如果只传一个值,X轴和Y轴的位置相同

background-size 属性设置背景图片的大小,

属性值contain,表示:等比拉伸,直到跟任意一边与容器边框重叠,

属性值cover,表示:等比拉伸,直到跟所有边与容器边框重叠,

可以设置固定的大小,一般不推荐,因为会使图片变形,

属性值也可以设置百分比

background 是背景的缩写属性,可以同时设置背景颜色,背景图片,平铺方式,位置,

各属性值,没有严格的顺序

如果要加背景图片的大小,方式是:颜色 图片 平铺方式 位置 / 背景图片大小:

background: red url(./img/zhl.jpg) no-repeat center/300px 300px

渐变:

linear-gradient()函数,用于设置背景的线性渐变,该函数的第一个参数值是渐变的方向,后面的参数值是渐变的颜色:background:linear-gradient(to left top,red,blue,green,purple);

radial-gradient()函数,用于设置背景的径向渐变,该函数不需要传渐变方向,直接传渐变的颜色,从中间向外渐变:background:radial-gradient(red,blue,green)

文本:

color 是文本颜色,

text-align 是文本对齐方式,属性值包括:left(默认值),center,right

text-indent 是首行缩进,首行通常需要缩进两个字符,所有属性值单位通常使用em或者rem

一个em大小就是当前元素字体的大小尺寸。一个rem的大小默认是网页字体的默认大小(16px)

line-height 是行高

text-decoration 是文本装饰,属性值包括:underline(下划线),overLine(上划线),line-through(删除线),none(没有装饰)

可以通过text-decoration属性,去掉超链接的默认下划线

letter-spacing 是字符间距

word-spacing 是单词间距

list-style-type 设置列表样式,属性值none,表示无样式

其它属性值,包括:disc(实心圆) circle(空心圆) square(方块) decimal(数字)

所以,所谓有序列表和无需列表,只是默认的列表样式值不同

list-style-image 设置列表的样式为图标

list-style-position 设置列表样式的位置,属性值包括:inside 和 outside(默认值),inside属性值,列表会往里缩进一个tab符

list-style 是缩写属性,既可以设置列表符号类型,也可以设置列表图标

字体样式:

font-size 设置字体的大小

单位:px是像素

font-family 设置字体的类型

font-family 可以设置中文字体类型,也可以设置英文字体类型,如果需要同时设置英文字体类型和中文字体类型,先设置英文,再设置中文

font-weight 设置字体的粗细,属性值bold表示加粗

font-style 设置字体的风格,属性值italic表示倾斜

font是字体的缩写属性,可以同时设置:风格 加粗 大小 类型

风格和加粗的顺序可以变化,也可以省略,最后两个属性值必须是大小和类型

特殊用法:20px是字体大小,40px是行高

预处理器:

CSS预处理器定义了一种新的语言,其基本思想是,用一种专门的编程语言,为CSS增加了一些编程的特性,将CSS作为目标生成文件,然后开发者就只要使用这种语言进行编码工作。

通俗的说,CSS预处理器用一种专门的编程语言,进行Web页面样式设计,然后再编译成正常的CSS文件,以供项目使用。CSS预处理器为CSS增加一些编程的特性,无需考虑浏览器的兼容性问题,例如你可以在CSS中使用变量、简单的逻辑程序、函数等等在编程语言中的一些基本特性,可以让你的CSS更加简洁、适应性更强、可读性更佳,更易于代码的维护等诸多好处。附赠原文地址:预处理器

动画:

animation-name 指定动画的名称(指定一个动画的关键帧名称,就是动画的规则)

animation-duration 指定动画的时间(完成该动画需要多少时间)

animation-delay 动画的延迟播放时间

animation-timing-function 动画的动作函数,ease linear ease-in ease-out ease-in-out

animation-iteration-count 设置动画的播放次数 属性值可以给具体的次数,如果设置属性值为infinite,表示无限次数

animation-play-state 表示播放状态,默认值是running(播放) paused(暂停)

animation-direction 表示动画的方向,属性值包括:

normal(正向) reverse(反向) alternate(正反方向重复运动) alternate-reverse(反正方向重复运动)

animation-fill-mode 表示填充模式,其实就是动画结束后,元素的回到什么位置,属性值包括:

backwards(回到原点位置),在开始动画之前,等待的时间在开始动画处等待,

forwards(停在结束位置),在开始动画之前,等待的时间在原点位置处等待,

both(综合了上面两个属性的特点),在开始动画处等待,在动画结束处停止,

animation是缩写属性,具体的属性值,没有顺序要求,如果同时设置动画时间和等待时间,第一个是动画时间,第二个是等待时间

定义动画的关键帧,关键帧就是动画的规则,在css中,一个动画最多可以拆分成100份:


定义动画关键帧

过渡:

transition 过渡属性

过渡:css从一种状态变化到另一种状态的过程

transition-property 设置哪些属性,需要过渡效果,可以传多个过渡的属性,使用逗号隔开

例如: transition-property: background-color,width,属性值设置为all,表示过渡全部属性

transition-duration 设置过渡的时间,就是完成整个效果,需要花费的时间,单位可以是秒(s)或者毫秒(ms)

transition-delay 设置过渡之前的等待时间,单位同transition-duration

transition-timing-function 设置过渡的动作函数:

默认值是 ease 表示先快速再慢速

linear 表示匀速

ease-in 表示加速

ease-out 表示减速

ease-in-out 表示先加速再减速

transition是过渡的缩写属性,四个属性值的顺序没有要求,但是如果设置了两个时间,第一个是过渡时间,第二个过渡等待时间

相关HTML+CSS总结就到此,后半段将总结JS,一些库和工具篇,喜欢的话可以点个赞,谢谢。新的一年,步步高升!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容