• 前端面试官必备-面试宝典HTML与CSS


    一、博主介绍

    💒首页:水香木鱼

    🛫专栏:邂逅HTML

    简介: 博主:花名 “水香木鱼”,星座"水瓶座一枚"

    🔰 格言: 生活是一面镜子。 你对它笑, 它就对你笑; 你对它哭, 它也对你哭。

    🔋 充电:相信付出终将会得到回报!


    二、笔芯文章

    前端基础面试题,考察前端开发人员的基本功。-面试官必备考察宝典

    (1)、说一说行内标签、块标签、行内块标签有哪些?

    行内标签:span、a、input、select、label
    (1)同排序跟显示,遇到父级边界换行
    (2)不支持宽高,内容撑开宽高
    (3)不支持上下外边距
    (4)不正常显示上下内外边距
    (5)换行被解析
    
    • 1
    • 2
    • 3
    • 4
    • 5

    块标签:div、h1~h6、p、ul、ol、li【加分点:H5新增块标签 article、section、aside、nav、header、footer】

    独占一行,默认宽度占满父级,高度为0,子级内容撑开高度
    
    • 1

    行内块标签:img、input、textarea

    (1)同排序跟显示,遇到父级边界换行
    (2)没有宽高的时候内容撑开宽高
    (3)换行被解析
    
    • 1
    • 2
    • 3

    加分点:能够列举各自的应用场景

    (2)、说一说HTML语义化?

    得分点:语义化标签有哪些?

    <header>头部header>
    <section>内容section>
    <footer>页脚footer>
    <nav>导航nav>
    <article>独立内容区域article>
    <aside>侧边栏aside>
    <dialog>对话框dialog>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    加分点:HTML语义化标签的作用?

    易于用户阅读,页面结构清晰。
    有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
    方便屏幕阅读器解析,如盲人阅读器根据语义渲染网页。
    有利于开发和维护,代码更具可读性,代码更好维护。
    
    • 1
    • 2
    • 3
    • 4

    (3)、说一说CSS尺寸设置的单位?

    得分点:常见的尺寸?

    px、rem、em
    
    • 1

    px:绝对长度单位,它的大小取决于屏幕的分辨率,是开发网页中常常使用的单位

    rem:相对长度单位,相对于根元素的字体大小,根元素字体大小未设置,使用浏览器默认字体大小

    em:相对长度单位,在 font-size 中使用是相对于父元素的字体大小,在其他属性中使用是相对于自身的字体大小,如 width。如当前元素的字体尺寸未设置,由于字体大小可继承的原因,可逐级向上查找,最终找不到则相对于浏览器默认字体大小。

    加分点1⃣️:视窗单位

    vw、vh
    
    • 1
    vw:相对长度单位,相对于视窗宽度的1%。 
    vh:相对长度单位,相对于视窗高度的1%。
    
    • 1
    • 2

    加分点2⃣️:理解rem的应用

    在移动端网页开发中,页面要做成响应式的,可使用rem配合媒体查询或者flexible.js实现。

    原理是通过媒体查询或者flexible.js,能够在屏幕尺寸发生改变时,重置html根元素的字体大小,页面中的元素都是使用rem为单位设置的尺寸,因此只要改变根元素字体大小,页面中的其他元素的尺寸就自动跟着修改。

    vw应用:由于vw被更多浏览器兼容之后,在做移动端响应式页面时,通常使用vw配合rem。

    原理是使用vw设置根元素html字体的大小,当窗口大小发生改变,vw代表的尺寸随着修改,无需加入媒体查询和flexible.js,页面中的其他元素仍使用rem为单位,就可实现响应式。

    (4)、说几个未知宽高元素水平垂直居中方法?

    得分点:列出元素

    position 定位
    transform 动画
    flex   弹性盒子
    justify-content 水平 
    align-items    垂直
    vertical-align  定义图片和文字
    text-align   定义文本
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    加分点:标准回答

    1. 设置元素相对父级定位position:absolute;left:50%;right:50%,让自身平移自身高度50% transform: translate(-50%,-50%);,这种方式兼容性好,被广泛使用的一种方式。
    2. 设置元素的父级为弹性盒子display:flex,设置父级和盒子内部子元素水平垂直都居中justify-content:center; align-items:center ,这种方式代码简洁,很多网站现在也在使用这种方式实现。
    3. 设置元素的父级为网格元素display: grid,设置父级和盒子内部子元素水平垂直都居中justify-content:center; align-items:center ,这种方式代码简洁。
    4. 设置元素的父级为表格元素display: table-cell,其内部元素水平垂直都居中text-align: center;vertical-align: middle; ,设置子元素为行内块display: inline-block; ,这种方式兼容性较好

    (5)、说一说样式优先级的规则是什么?

    得分点:优先级【从高至低】

    !important>行内样式>嵌入样式>外链样式>id选择器>类选择器>标签选择器>复合选择器>通配符>继承样式

    加分点1⃣️:优先级分析

    第一类!important,无论引入方式是什么,选择器是什么,它的优先级都是最高的。

    第二类引入方式,行内样式的优先级要高于嵌入和外链,嵌入和外链如果使用的选择器相同就看他们在页面中插入的顺序,在后面插入的会覆盖前面的。

    第三类选择器,选择器优先级:id选择器>(类选择器 | 伪类选择器 | 属性选择器 )> (后代选择器 | 伪元素选择器 )> (子选择器 | 相邻选择器) > 通配符选择器 。

    第四类继承样式,是所有样式中优先级比较低的。

    第五类浏览器默认样式优先级最低。

    加分点2⃣️:使用!important注意事项

    1. 一定要优先考虑使用样式规则的优先级来解决问题而不是 !important

    2. 只有在需要覆盖全站或外部 CSS 的特定页面中使用 !important

    3. 永远不要在你的插件中使用 !important

    4. 永远不要在全站范围的 CSS 代码中使用 !important优先级的比较指的是相同的样式属性,不同样式属性优先级比较失效

    (6)、说一说盒模型?

    得分点:标准盒模型【box-sizing:content-box】、怪异盒模型【box-sizing:border-box】

    加分点:解释一下标准盒模型、怪异盒模型?

    标准模型,给盒设置 width 和height,实际设置的是 content box。padding和border再加上设置的宽高一起决定整个盒子的大小。

    怪异盒模型,给盒设置 width 和 height,包含了padding和border,设置的 width 和 height就是盒子实际的大小 默认情况下,盒模型都是标准盒模型

    (7)、说一说BFC

    得分点:块级格式化上下文、独立的渲染区域、不会影响边界以外的元素、形成BFC条件、float、position、overflow、display

    加分点:如何清除浮动 ?

    overflow:hidden
    
    • 1

    清除浮动分析

    使用float或者position方式清除浮动,虽然父级盒子内部浮动被清除了,但是父级本身又脱离文档流了,会对父级后面的兄弟盒子的布局造成影响。

    如果设置父级为display:flex,内部的浮动就会失效。

    标准回答:

    BFC(Block Formatting Context)块级格式化上下文,是Web页面一块独立的渲染区域,内部元素的渲染不会影响边界以外的元素

    BFC布局规则:

    1. 内部盒子会在垂直方向,一个接一个地放置。

    2. Box垂直方向的距离由margin决定。属于同一个BFC的两个相邻Box的margin会发生重叠。

    3. 每个盒子(块盒与行盒)的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反)。即使存在浮动也是如此。

    4. BFC的区域不会与float box重叠。

    5. BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也如此。

    6. 计算BFC的高度时,浮动元素也参与计算。

    BFC形成的条件:

    1. float 设置成 left 或 right

    2. position 是absolute或者fixed

    3. overflow 不是visible,为 auto、scroll、hidden

    4. display是flex或者inline-block等

    说一说 IFC(Inline formatting contexts)?

    内联格式上下文。

    IFC的高度由其包含行内元素中最高的实际高度计算而来(不受到竖直方向的padding/margin影响),IFC中的line box一般左右都贴紧整个IFC,但是会因为float元素而扰乱

    说一说GFC(GrideLayout formatting contexts)?

    网格布局格式化上下文。

    当为一个元素设置display值为grid的时候,此元素将会获得一个独立的渲染区域。
    
    • 1

    说一说FFC(Flex formatting contexts)?

    自适应格式上下文

    	display值为flex或者inline-flex的元素将会生成自适应容器。
    
    • 1

    (8)、rgba() 和 opacity 的透明效果有什么不同?

    得分点:

    opacity 作用于元素,以及元素内的所有内容的透明度

    rgba()只作用于元素的颜色或其背景色

    加分点:设置rgba透明的元素的子元素不会继承透明效果

    (9)、请描述下 SEO 中的 TDK?

    得分点:所谓的 TDK 其实就是 titledescriptionkeywords 这三个标签

    title 标题标签
    description 描述标签
    keywords 关键词标签
    
    • 1
    • 2
    • 3

    加分点:说一说SEO怎么优化?

    SEO>网站优化

    (1)网站结构布局优化

    控制首页链接的数量、扁平化的目录层次、结构布局清晰易读、控制页面文件的大小

    (2)网页代码优化

    语义化书写HTML代码,符合W3C标准、合理使用h1~h6标签

    (3)网站性能优化

    (10)、说一说文本超出部分显示省略号

    单行:

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    
    • 1
    • 2
    • 3

    多行:

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3; // 最多显示几行
    overflow: hidden;
    
    • 1
    • 2
    • 3
    • 4

    三、博主致谢

    感谢小伙伴们,耐心的阅读完本篇文章,关注👉 水香木鱼🔔 获取更多精彩文章!

    ⭐⭐⭐ 别忘记一键三连呦!

  • 相关阅读:
    数据库表设计(一):设计规范和命名规范
    leetcode做题笔记217. 存在重复元素
    docker 容器数据在盘与盘之间迁移
    golang数据结构与算法——稀疏数组、队列和链表
    推导式(生成式)
    基于SSM实现在线租房系统
    AR应用的开发流程
    Web前端—移动Web第四天(媒体查询、Bootstrap、综合案例-alloyTeam)
    Maven 构建配置文件
    分享禁止Win10更新的两种方法
  • 原文地址:https://blog.csdn.net/weixin_48337566/article/details/126056533