最后
基础知识是前端一面必问的,如果你在基础知识这一块翻车了,就算你框架玩的再6,webpack、git、node学习的再好也无济于事,因为对方就不会再给你展示的机会,千万不要因为基础错过了自己心怡的公司。前端的基础知识杂且多,并不是理解就ok了,有些是真的要去记。当然了我们是牛x的前端工程师,每天像背英语单词一样去背知识点就没必要了,只要平时工作中多注意总结,面试前端刷下题目就可以了。
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
- 给标签定义字体
/span使用字体图标/
span {
font-family: “icomoon”;
}
注意:标签中的 font-family
的值和我们之前引入字体图标的font-family
必须一样,这里均为 icomoon
- 完成,所以我们的整体代码为:
测试效果为:
-
如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标到原来的字体文件中。
-
以 icomoon字库 网为例,点击网站内
import icons
-
把压缩包里面的 selection.json 重新上传,然后选中自己想要新的图标,重新下载压缩包,并替换原来的文件即可。
不同浏览器所支持的字体格式是不一样的,字体图标之所以兼容,就是因为包含了主流浏览器支持的字体文件。
.ttf 格式、.woff 格式、.eot 格式、.svg 格式,不同浏览器支持不同的格式
-
如果遇到一些结构和样式比较简单的小图标,就用字体图标
-
如果遇到一些结构和样式复杂一点的小图片,就用精灵图
==========================================================================
所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。
-
更改用户的鼠标样式
-
表单轮廓
-
防止表单域拖拽
鼠标样式cursor
- 设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状
li {
cursor: pointer;
}
| 属性值 | 描述 |
| — | — |
| default | 小白,默认 |
| pointer | 小手 |
| move | 移动 |
| text | 文本 |
| not-allowed | 禁止 |
轮廓线outline
:
- 给表单添加
outline:0
; 或者outline: none
;样式后,就可以去掉默认的蓝色边框
input {
outline: none;
}
防止拖拽文本域resize
textarea {
resize: none;
}
====================================================================================
vertical-align
:
-
使用场景:经常用于设置图片或者表单(行内块元素)和文字垂直对齐。
-
官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效
vertical-align: baseline | top | middle | bottom
| 值 | 描述 |
| — | — |
| baseline | 默认,元素放置在父元素的基线上 |
| top | 把元素的顶端与行中最高元素的顶端对齐(顶线对齐) |
| middle | 把此元素放置在父元素的中部(中线对齐) |
| bottom | 把元素的顶端与行中最低的元素的顶端对齐(底线对齐) |
图片、表单都属于行内块元素,默认的 vertical-align 是基线对齐。
此时可以给图片、表单这些行内块元素的 vertical-align 属性设置为 middle
就可以让文字和图片垂直居中对齐了。
- bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐(给图片加边框就可以看见)
主要解决办法有两种:
-
给图片添加
vertical-align : middle | top |bottom
等 -
把图片转换为块级元素
display:block;
,因为块级元素不会有vertical-align
属性
==============================================================================
必须满足三个条件:
/* 1.先强制一行内显示文本 */
white-space: nowrap; /默认 normal 是自动换行,nowrap是强制一行显示文本/
/* 2.超出的部分隐藏 */
overflow: hidden;
/* 3.文字用省略号替代超出的部分*/
text-overflow: ellipsis;
/ellipsis:省略号/
多行文本溢出显示省略号,有较大的兼容性问题,适合于webKit浏览器或移动端(移动端大部分是webKit内核)
overflow: hidden;
text-overflow: ellopsis;
/* 弹性伸缩盒子模型显示 */
display: -webkit-box;
/* 限制在一个块元素显示的文本的行数 */
-webkit-line-clamp: 2;
/* 设置或检索伸缩盒对象的子元素的排列方式 */
-webkit-box-orient : vertical;
更推荐让后台人员来做这个效果,因为后台人员可以设置显示多少个字,操作更简单。
============================================================================
-
两个盒子加边框1px,浮动,贴紧会出现 1 + 1 = 2px
-
给右边盒子添加
margin-left: -1px
-
正数向右边走,负数向左边走
当我们有多个盒子时的解决办法:
-
让每个盒子 margin 往左侧移动 -1px 正好压住相邻盒子边框
-
鼠标经过某个盒子的时候,提高当前盒子的层级即可
-
如果没有定位,则加相对定位(保留位置)
-
如果有定位,则加 z-index