CSS进阶班笔记(四),web前端开发面试题

57 阅读6分钟

@font-face {

font-family: 'icomoon';

src: url('fonts/icomoon.eot?7kkyc2');

src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),

url('fonts/icomoon.ttf?7kkyc2') format('truetype'),

url('fonts/icomoon.woff?7kkyc2') format('woff'),

url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');

font-weight: normal;

font-style: normal;

}

  1. html标签内添加小图标

我们打开解压文件中的 demo.html ,复制想要的图标,粘贴进我们的 <span></span>标签中

在这里插入图片描述

  1. 给标签定义字体

/span使用字体图标/

span {

font-family: "icomoon";

}

在这里插入图片描述

注意:标签中的 font-family 的值和我们之前引入字体图标的font-family 必须一样,这里均为 icomoon

  1. 完成,所以我们的整体代码为:
Document @font-face { font-family: 'icomoon'; src: url('fonts/icomoon.eot?7kkyc2'); src: url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'), url('fonts/icomoon.ttf?7kkyc2') format('truetype'), url('fonts/icomoon.woff?7kkyc2') format('woff'), url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg'); font-weight: normal; font-style: normal; } span { font-family: "icomoon"; }

测试效果为:

在这里插入图片描述

2.3、字体图标的追加🔥


  • 如果工作中,原来的字体图标不够用了,我们需要添加新的字体图标到原来的字体文件中。

  • 以 icomoon字库 网为例,点击网站内import icons

  • 把压缩包里面的 selection.json 重新上传,然后选中自己想要新的图标,重新下载压缩包,并替换原来的文件即可。

在这里插入图片描述

2.4、字体文件格式


不同浏览器所支持的字体格式是不一样的,字体图标之所以兼容,就是因为包含了主流浏览器支持的字体文件。

.ttf 格式、.woff 格式、.eot 格式、.svg 格式,不同浏览器支持不同的格式

在这里插入图片描述

2.4、字体图标总结


  1. 如果遇到一些结构和样式比较简单的小图标,就用字体图标

  2. 如果遇到一些结构和样式复杂一点的小图片,就用精灵图

3、界面样式🔥

==========================================================================

所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。

  • 更改用户的鼠标样式

  • 表单轮廓

  • 防止表单域拖拽

3.1、鼠标样式cursor🔥


鼠标样式cursor

  • 设置或检索在对象上移动的鼠标指针采用何种系统预定义的光标形状

li {

cursor: pointer;

}

| 属性值 | 描述 |

| --- | --- |

| default | 小白,默认 |

| pointer | 小手 |

| move | 移动 |

| text | 文本 |

| not-allowed | 禁止 |

3.2、轮廓线outline🔥


轮廓线outline

  • 给表单添加 outline:0; 或者outline: none;样式后,就可以去掉默认的蓝色边框

input {

outline: none;

}

3.3、防止拖拽文本域


防止拖拽文本域resize

textarea {

resize: none;

}

4、vertical-align🔥

====================================================================================

vertical-align:

  • 使用场景:经常用于设置图片或者表单(行内块元素)文字垂直对齐

  • 官方解释:用于设置一个元素的垂直对齐方式,但是它只针对于行内元素或者行内块元素有效

vertical-align: baseline | top | middle | bottom

| 值 | 描述 |

| --- | --- |

| baseline | 默认,元素放置在父元素的基线上 |

| top | 把元素的顶端与行中最高元素的顶端对齐(顶线对齐) |

| middle | 把此元素放置在父元素的中部(中线对齐) |

| bottom | 把元素的顶端与行中最低的元素的顶端对齐(底线对齐) |

在这里插入图片描述

4.1、图片、表单和文字对齐🔥


图片、表单都属于行内块元素,默认的 vertical-align 是基线对齐。

在这里插入图片描述

此时可以给图片、表单这些行内块元素的 vertical-align 属性设置为 middle 就可以让文字和图片垂直居中对齐了。

4.2、 图片底侧空白缝隙解决🔥


  • bug:图片底侧会有一个空白缝隙,原因是行内块元素会和文字的基线对齐(给图片加边框就可以看见)

在这里插入图片描述

主要解决办法有两种:

  1. 给图片添加 vertical-align : middle | top |bottom

  2. 把图片转换为块级元素 display:block;,因为块级元素不会有vertical-align 属性

5、溢出文字省略显示🔥

==============================================================================

5.1、单行文本溢出省略号显示🔥


必须满足三个条件:

/* 1.先强制一行内显示文本 */

white-space: nowrap; /默认 normal 是自动换行,nowrap是强制一行显示文本/

/* 2.超出的部分隐藏 */

overflow: hidden;

/* 3.文字用省略号替代超出的部分*/

text-overflow: ellipsis;

/ellipsis:省略号/

5.2、多行文本溢出显示省略号显示


多行文本溢出显示省略号,有较大的兼容性问题,适合于webKit浏览器或移动端(移动端大部分是webKit内核)

overflow: hidden;

text-overflow: ellopsis;

/* 弹性伸缩盒子模型显示 */

display: -webkit-box;

/* 限制在一个块元素显示的文本的行数 */

-webkit-line-clamp: 2;

/* 设置或检索伸缩盒对象的子元素的排列方式 */

-webkit-box-orient : vertical;

更推荐让后台人员来做这个效果,因为后台人员可以设置显示多少个字,操作更简单。

6、常见布局技巧🔥

============================================================================

6.1、margin负值的运用🔥


  • 两个盒子加边框1px,浮动,贴紧会出现 1 + 1 = 2px

  • 给右边盒子添加margin-left: -1px

  • 正数向右边走,负数向左边走

在这里插入图片描述

当我们有多个盒子时的解决办法:

在这里插入图片描述

  1. 让每个盒子 margin 往左侧移动 -1px 正好压住相邻盒子边框

  2. 鼠标经过某个盒子的时候,提高当前盒子的层级即可

  • 如果没有定位,则加相对定位(保留位置)

  • 如果有定位,则加 z-index

ul li { float: left; list-style: none; width: 150px; height: 200px; border: 1px solid red; margin-left: -11px } ul li:hover { position: relative; border: 1px solid blue; }
  • JavaScript 和 ES6

    在这个过程你会发现,有很多 JS 知识点你并不能更好的理解为什么这么设计,以及这样设计的好处是什么,这就逼着让你去学习这单个知识点的来龙去脉,去哪学?第一,书籍,我知道你不喜欢看,我最近通过刷大厂面试题整理了一份前端核心知识笔记,比较书籍更精简,一句废话都没有,这份笔记也让我通过跳槽从8k涨成20k。

    JavaScript部分截图

    开源分享:docs.qq.com/doc/DSmRnRG…