HTML+CSS 面试题

6 篇文章 0 订阅

HTML

1. H5 的十大新特性

  1. 语义化标签

就是看到标签就知道这是什么意思,比如头部就是 header,导航栏就是 nav

  1. 有利于SEO, 搜索引擎优化
  2. 方便其他设备的解析(屏幕阅读器,移动设备),以有意义的方式来渲染网页
  3. 方便团队开发和维护,增加代码可读性
  1. 增强型表单
  • 新增表单类型
    (1). 邮箱验证

        <input type="email"></input>
    

    (2). 数值输入

        <input type="number" min="5" max="15"></input>
    

    (3). 文件导入

         <input type="file"></input>
    

    (4). 图片按钮

        <input type="image"></input>
    

    (5). 颜色选择

        <input type="color"></input>
    

    (6). 日期表示

        <input type="date"></input>
    

    (7). 搜索框

        <input type="search"></input>
    

    (8). 手机号码输入框

        <input type="tel"></input>
    

    (9). 网址输入框

        <input type="url"></input>
    
  • 新增表单的新属性
    (1). placeholder

    这个属性是文本的占位符,相当于一种提示信息,显示在输入域,描述期待user输入的值。

    (2). required

    这个属性的值为Bool,默认为true,意思是在输入域不能为空

    (3). autofocus

    auto是自动的意思,focus是聚焦的意思,这个属性描述的就是自动聚焦到需要填写的textarea。

    (4). autocomplete

    这个属性有两个值,一个是on,另一个是off。默认是on,与email相反,email默认是off。功能是提示写过的信息。

    (5). minlength 和 maxlength

    这个属性限定输入的最少字数和最多字数,以字符个数计数。

  1. 音频和视频
  2. Canvas绘图
  3. SVG绘图
  4. 地理定位
  5. 拖放API
  6. WebWorker
  7. WebStorage
  8. WebSocket

2. 谈谈本地存储 cookie sessionStorage 和 localStorage

相同作用

  • 本地存储保存数据,都存储在浏览器端(客户端)

三者区别

  1. 存储大小

    cookie 数据大小不能超过 4Kb,而 webStorage(sessionStorage 和 localStorage) 一般为 5MB 或更大
    webStorage 是 H5的新增特性

  2. 生命周期

    cookie: 默认跟随浏览器关闭而销毁,但可以自己设置过期时间
    sessionStorage: 关闭页面或浏览器时销毁
    localStorage: 一直保存,不会自动销毁,除非手动销毁

  3. 数据与服务器之间的交互

    cookie: 发送请求的时候会被请求头携带到服务器端,所以如果使用cookie保存过多数据会带来性能问题
    webStorage: 只保存浏览器端,不参与服务器通信

  4. 作用域

    sessionStorage: 只能在当前页面有效
    cookie 和 localStorage: 不同页面也会存在

3. 输入网址(url)到页面渲染的过程

  1. DNS 解析:将域名解析成 IP 地址
  2. TCP 建立连接: TCP 三次握手
  3. 发送 HTTP 请求
  4. 服务器处理请求并返回结果
  5. 浏览器解析然后渲染页面

4. 浏览器的缓存机制-强制缓存和协商缓存区别

  1. 强制缓存:不会向服务器发送请求,直接从缓存中读取资源
  2. 协商缓存:会向服务器发送请求,服务器会根据这个请求的请求头的一些参数来判断,
    如果资源未被修改,服务器返回304状态码,浏览器从缓存中读取资源
    如果资源更改了,返回200,返回最新的资源

CSS

1. 讲讲重排和重绘

重排(回流)

当dom的变化影响了元素的几何信息(元素的位置和尺寸大小),浏览器需要重新计算元素的几何信息,将元素渲染到正确的位置,简单来说就是重新排列元素,这就是重排, 也叫作回流。
每个页面至少进行一次回流,就是在页面第一次加载的时候

触发重排的操作
元素位置改变
改变窗口大小
改变字体大小
添加/删除 dom元素
计算 offsetWidth 和 offsetHeight
margin border 的改变

重绘

当元素的外观发生改变,但没有影响到页面的布局,重新把元素外观绘制出来的过程叫做重绘

触发重绘的操作
设置 color background border-radius box-shadow ······· 这些只改变外观的属性

重排一定会发生重绘,重绘不一定触发重排

2. display 的常用值?说明他们的作用?

  • block: 转换为块状元素
  • inline: 转换为行内元素
  • none: 设置元素不可见
  • inline-block: 本身像行内元素一样显示,但其内容像块级元素一样显示
  • flex: 弹性布局

3. 为什么要清除浮动?清除浮动的方法?

为什么要清除浮动

  • 浮动元素脱离了文档流,如果父级元素是由内容撑开,此时父级高度为0,就会造成高度塌陷问题。使布局出现混乱,所以就需要清除浮动。

清除浮动的方法

  • 通过触发 BFC,给父级元素添加overflow:hidden属性
  • 在父元素中,结尾处加个空标签,并设置clear:both属性
  • 给父级元素定义 height

4. BFC是什么?

  • BFC是“块级格式化上下文”,通俗的讲 BFC 就是一个隔离的容器,里面的子元素不会影响到外面的元素

  • 创建 BFC: overflow:hidden

  • 可以解决 margin 塌陷, 可以清除浮动

5. CSS3 有哪些新特性?

  • 新增各种 css 选择器
  • 圆角 border-radius
  • 文字特效 text-shadow
  • 背景渐变 线性渐变 径向渐变
  • 过渡
  • transform
  • 动画

6. 实现css盒子居中的方式?

实现css盒子水平垂直的方式

7. 说一说flex布局,以及它的属性

  • justify-content: 项目在主轴上的对齐方式
  • align-items: 项目在交叉轴上的对齐方式

搞懂 flex 弹性布局,看这一篇就够了

8. 对盒模型的了解

  • 分为两种盒模型:W3C标准盒模型 和 IE盒模型

  • 盒模型的组成:内容(content)、填充(padding)、边距(margin)、边框(border)

标准盒模型:元素的 width 和 height 只包含 content,不包含 border 和 padding

IE盒模型:元素的width 和 height 包含了 content + padding + border

通过属性 box-sizing 设置盒模型,默认为 content-box(标准盒模型),还有一个值为 border-box(IE盒模型)

9. css的优先级

  • !important > 行内样式 > id选择器 > class类选择器 > 标签和伪元素> 通配选择器

10. css中常用的单位有哪些?

  • px(像素)

    • px是绝对单位,一个像素代表一个点。如100px*100px的正方形,则是由宽度100个点,长度100个点组成的平面
  • em

    • em是相对单位,它的参考对象是它父级的字号,如父级字号是16px,如果设置元素的字号大小为2em的话,元素的字号大小则为32px
  • rem

    • rem由页面的根元素html的字号决定,浏览器一般默认的字号为16px,如设置元素的字号大小为1rem,则元素的字号大小为16px, 使用rem的好处是:当我们改变了浏览器的字号设置时,页面的字号也会随之发生变化
  • vh

    • 浏览器视觉窗口的高度,分为100份,每份为1vh,如我们设置元素高度为20vh,则元素的高度为视觉窗口高度的20%
  • vw

    • 浏览器视觉窗口的宽度,分为100份,每份为1vw,如我们设置元素宽度为100vh,则元素的宽度为视觉窗口宽度的100%

vh和vw在开发全屏时非常方便

11. 文字溢出时显示点点点(…)

单行

.box{
    overflow: hidden;   // 溢出隐藏
    text-overflow: ellipsis;  // 文本溢出时发生的事,ellipsis表示用省略号代替溢出的文本
    white-space: nowrap;  // // 规定段落中的文本不进行换行
}

多行

.box {
    overflow: hidden;            // 溢出隐藏
    text-overflow: ellipsis;     // 溢出用省略号显示
    display:-webkit-box;         // 作为弹性伸缩盒子模型显示。
    -webkit-box-orient:vertical; // 设置伸缩盒子的子元素排列式:从上到下垂直排列
    -webkit-line-clamp:3;        // 显示的行数
}

12. 有空更新·······

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

温情key

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值