H5C3部分面试题汇总

2023-10-27

1. HTML和HTML5、CSS和CSS3相比,有什么变化?

HTML5中新增的内容有:

  1. 自定义属性:data-id
  2. 语义化更好的内容标签: header、nav、footer、aside、article、section
  3. 音频、视频标签:audio、video (浏览器不支持自动播放 ,谷歌浏览器不支持音频自动播放,但是视频支持自动播放)
  4. 数据存储 localStorage、sessionStorage
  5. 拖拽释放(Drag and drop) API
  6. 画布(Canvas) API
  7. 地理(Geolocation) API
  8. 新的 input 类型:calendar、time、month 、week 、date 、email、url、search 、number 、range 、 color
  9. 新的表单属性:fieldset、legent、placeholder、autofocus、required、maxlength、minlength、novalidate、autocomplete

CSS3中新增的内容有:

  1. 颜色:新增RGBA,HSLA模式

  2. 文字阴影(text-shadow)、rem 字体大小单位(相对于根元素 font-size 属性值,根元素字体大小设置为 62.5% 则 1rem 等于 10px)

  3. 边框: 圆角(border-radius)边框阴影: box-shadow

  4. 怪异盒模型:box-sizing

  5. 背景:background-size 设置背景图片的尺寸background-origin 设置背景图片的原点background-clip 设置背景图片的裁切区域,以”,”分隔可以设置多背景,用于自适应布局

  6. 渐变:linear-gradient、radial-gradient

  7. 过渡:transition,可实现动画

  8. 自定义动画: animation

  9. 在CSS3中唯一引入的伪元素 :selection.

  10. 媒体查询 : @media only screen and (max-width:800px) ===>除了screen还有print打印机、speech屏幕阅读器、all 所有媒体类型设备

  11. border-image

  12. 2D转换:transform : translate(x,y) rotate(x,y) skew(x,y) scale(x,y)

  13. 3D转换 :transform-style : preserve-3d;

  14. 新增选择器:属性选择器、伪类选择器、伪元素选择器。

  15. 网格系统,把网页均分成12列进行布局

基于此文有所改动:H5C3新特性


2. 标签元素的分类和特点 (元素显示模式)

标签元素可以分成三大类:块状元素、行内元素、行内块元素,
对应的元素显示模式为:display:block;  display:inline;  display:inline-block;

块状元素:hn、p、div、ul、ol、dl、li、dd、dt、table、thead、tbody、caption、tr、form、header、footer、section、nav、article、aside
特点:

  1. 独占一行,宽、高和四个方向的内、外边距都可以设置;
  2. 默认宽度是父元素的100%,默认高度是其内容撑起来的实际高度,table标签除外;
  3. 可以包含任意元素(表格系除外、h标签不能包含h标签、p标签不能包含块状元素);

行内元素:span、a、b、strong、i、em、u、ins、s、del
特点:

  1. 不独占一行,设置宽高无效;

  2. 默认的宽、高都是内容撑起来的;

  3. 水平方向的外边距可以设置,垂直方向设置无效;
    四个方向的内边距皆可设置;

  4. 一般只能包含行内元素与文本内容


行内块元素:img、audio、video、input、button、label、select、option、textarea
特点:

  1. 不独占一行,宽高可以设置;
  2. 默认宽高由其本身特点决定;
  3. 四个方向的内外边距都可以设置;
  4. 一般不包含其他元素;

3. 圣杯布局(双飞翼布局)有哪几种实现方式

  1. calc()函数   2. 左浮动、右浮动   3.绝对定位加内边距   4.弹性布局
    详细写法在这里:CSS实现圣杯布局

4.弹性盒模型有哪些属性和属性值,有什么效果

属性名 属性值 效果
flex-direction row、row-reverse、column、column-reverse 设置内部项目的排列方向
flex-wrap nowrap、wrap、wrap-reverse 设置换行方式,wrap-reverse为第一行在最下面
flex-flow flex-flow属性是flex-direction以及flex-wrap属性的简写形式,默认值为row nowrap 上面两种属性的简写
justify-content flex-start、flex-end、center、space-between、space-around、space-evenly 项目在主轴(X轴)上的对齐方式
align-items flex-start、flex-end、center、baseline、stretch(默认值) 项目在交叉轴(Y轴)上的对齐方式
align-content flex-start、flex-end、center、space-between、space-around、stretch(默认值) 有多根轴线时的对齐方式。如果项目只有一根轴线,那么该属性不起作用
order 1、2、3… 项目的排列顺序,数字越小越靠前
flex-grow flex-grow:1; … 项目放大的比例
flex-shrink flex-shrink: 3; … 项目缩小的比例
flex-basis flex-basis: 100px; 规定弹性项目的初始长度。
flex flex: flex-grow flex-shrink flex-basis; flex-grow,flex-shrink 和 flex-basis 的简写
align-self start、end、stretch、center 设置个别项目在交叉轴(Y轴)上的对齐方式

5.常见的盒子模型有哪些,有什么区别

  1. W3C盒模型(标准盒模型)
给一个标签添加:box-sizing:content-box;(元素默认)
这个标签就转换为了w3c盒模型
标签得实际宽度 = 设置的宽度 + border宽度 + padding的宽度
  1. 怪异盒模型(又称ie盒模型)
给一个标签添加:box-sizing:border-box;
这个标签就转换为了怪异盒模型
标签得实际宽度 = 设置的宽度 
如果设置了padding和border就是从设置的实际宽高中减去,减去后才是内容的宽高。

区别:

主要区别:对于宽高的定义不同
w3c盒模型:设置的宽度就等于内容的宽度
怪异盒模型:内容的宽度 = 设置的宽度 - border的宽度 - padding的宽度

6.写一个网易云播放动画,图片旋转+撞针来回拨动

图片旋转动画:

<style>
	.rotate360 {
	  animation: rotate360 20s;
	  animation-timing-function: linear;
	  animation-iteration-count: infinite;
	  animation-fill-mode: forwards;
	  animation-play-state: paused;
	}
	
	@keyframes rotate360 {
	  from {
	    rotate: 0deg;
	  }
	  to {
	    rotate: 360deg;
	  }
	}
</style>

撞针来回动画:

	<style>
	.needleGo {
	  animation: needleGo 0.7s;
	  animation-fill-mode: forwards;
	  animation-timing-function: linear;
	  animation-iteration-count: 1;
	}
	.needleBack {
	  animation: needleBack 0.7s;
	  animation-fill-mode: forwards;
	  animation-timing-function: linear;
	  animation-iteration-count: 1;
	}
	@keyframes needleGo {
	  from {
	    transform: rotate(0deg);
	  }
	  to {
	    transform: rotate(-16deg);
	  }
	}
	@keyframes needleBack {
	  from {
	    transform: rotate(-16deg);
	  }
	  to {
	    transform: rotate(0deg);
	  }
	}
</style>

7. 谈一谈你对浮动的理解

浮动可以使元素脱离标准流,漂浮到指定位置;(标准流:元素按照本身特性进行排列布局)
设置浮动的初衷是实现文字环绕图片的效果。

浮动的 特点

  1. 添加浮动后的元素与其他元素不在同一平面,会漂浮在其他元素之上;
  2. 添加浮动后的元素不占位置;
  3. 添加浮动后的多个元素会在同一行上显示;
  4. 添加浮动后的元素不会超出父元素的内容区域,即不会覆盖父元素的边框与内边距
  5. 添加浮动后的元素会有行内块元素的部分特性(比如默认内外边距、不再独占一行)

浮动带来的 影响:添加浮动后的子元素撑不开父元素的高度;

怎么清除浮动带来的影响:

  1. 额外标签法:给子元素添加一个兄弟元素,为兄弟元素设置 clear:both;clear:left; 、clear:right;(clear:both 的本质就是闭合浮动, 让父盒子闭合出口和入口,不让子盒子出来)
    这种方式增加了无意义的标签,使结构不规范、不够语义化;
  2. 给父元素添加 overflow:hidden; 通过触发BFC方式,实现清除浮动。
    代码简洁,但内容增多的时候容易造成不会自动换行导致内容被隐藏掉,无法显示溢出的元素。
  3. 伪元素清除浮动:在父元素的末尾或者开头添加伪元素 ::after、::before ,在伪元素中设置以下属性:
<style>
#parent::after{
    content: "";
    display: block;
    clear:both;
}
</style>

但 IE6-IE7 不支持伪元素;

  1. 双伪元素清除浮动,和单伪元素一样:
<style>
#parent::after,
#parent::before{
    content: "";
    display: block;
    clear:both;
}
</style>

8.伪类有哪些,它们的作用和书写顺序是什么

转载自:简书

  1. link 表示的是正常情况下链接的样式。
  2. visited 代表链接访问后的样式,则链接一旦被访问,则之后它的样式就会是你所设置的visited样式。
  3. hover 在鼠标移到链接上时添加的特殊样式。
  4. focus 在一个元素成为焦点时生效,用户可以通过键盘或鼠标激活焦点。
  5. active 在一个元素处于激活状态(鼠标在元素上按下还没有松开)时所使用的样式。
  6. hover 理论上任何元素都可以使用的, focus 多是针对表单的,如input等 。而 active 多用于链接。

书写顺序:

各个样式之间的顺序很有讲究,一旦出现排列错误就很有可能形成覆盖,导致其中某个样式无法显示。

通常都按照 link - visited - focus - hover - active 的顺序;


9.如何去掉相邻两个图片中间的白边?

① 转换为块元素再浮动 ②为父元素添加 font-size:0;


10.如何实现文字垂直水平居中,盒子垂直水平居中

万能flex布局:

<style>
	.allCenter {
	    display:flex;
	    justify-content:center;
	    align-items:center;
	}
</style>

文字居中的另一种方式:

<style>
	.allCenter {
	    text-align:center;
	    line-height:盒子高度;
	}
</style>

盒子居中的另一种方式:

<style>
	.allCenter {
		margin:auto;
	    display:flex;
	    align-items:center;
	}
</style>

11.单行文本溢出显示省略号,多行文本溢出显示省略号

<style>
	.one_hidden {
		overflow: hidden;
		white-space:nowrap;
		text-overflow:ellipsis;
	}
	
	.N_hidden {
		overflow: hidden;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2; //最大限制为2行
	}
</style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

H5C3部分面试题汇总 的相关文章

随机推荐

  • 详细记下Flutter开发遇到的各种坑-带你走出入门弯路

    目录 flutter安装 设置环境变量 Android studio安装 解决install emulator问题 安装Flutter和Dart插件 gradle构建错误 分析原因 解决问题 设置gradle全局变量 生成APK问题 解决方
  • 《代码大全2》第1章 欢迎进入软件构建的世界

    目录 前言 1 1 什么是软件构建 1 1 1 构建活动 与 非构建活动 1 1 2 构建活动 相对于其他软件开发活动的地位 1 1 3 构建活动 的具体任务 1 2 构建活动 为何如此重要 1 2 1 构建活动 重要的原因 1 3 如何阅
  • mysqldump where子句使用

    mysqldump 的 where 条件子句适用于这种情况 导出某张表的部分数据 where name 参数详情 w where name Dump only selected records Quotes are mandatory 使用
  • python下复制excel某行数据,xlwings

    不是专业码农 朋友课题遇到一个问题 调研了90个人 有14个sheet的数据 每个人的数据在14个sheet里面都有 位置也相同 比如张三的数据 在14个sheet里面都是在18行 需要把其中16个人的数据拿出来 还是这14个sheet都要
  • spring如何做到循环引用

    spring如何做到循环引用 总结 源码中的流程 如果看官觉得有点用 点赞一下 鼓励一下我吧 总结 spring的循环引用只有一种情况 单例且无参构造 多例情况不支持 有参构造不支持 原因 无参构造可以完成创建在堆内存中的引用 即使这个引用
  • spring-boot配置slf4j日志

    SLF4J 即简单日志门面 Simple Logging Facade for Java 不是具体的日志解决方案 它只服务于各种各样的日志系统 按照官方的说法 SLF4J 是一个用于日志系统的简单 Facade 允许最终用户在部署其应用时使
  • socks5代理ip账号密码_VMlogin中文版配置使用911S5代理

    一 911 S5代理设置 打开911 S5代理并去往 程序 Program 页面 在程序列表 program list 中随机添加一个程序 911 S5程序需要用户选择一个程序 请您不要在此处添加VMlogin 因为它会收到干扰 前往 设置
  • Dynamic Region-Aware Convolution

    旷视提出 DRConv 动态区域感知卷积 提升分类 检测 分割性能 Dynamic Region Aware Convolution 是2020年旷视在arXiv上的新论文 该论文实际上是在动态卷积 local形式 上引入了空间上的分组 从
  • 亚马逊云科技上实现 “端到端”安全

    亚马逊云科技认为 安全是构建生成式 AI 不可回避的重要议题 企业只有在 AI 旅程中做好数据 模型和应用的安全防护 才能更好地借助 AI 加速业务创新 同时在全球业务规划做好战略布局 亚马逊云科技在五大领域为用户提供全方位的云安全服务 威
  • Qt环境生成dump解决异常崩溃

    背景 对于经常使用C C 的伙伴来说 程序有问题动不动就罢工崩溃的问题简直不能太熟悉了 比如本地测试通过打包发布的release版本Qt程序 在客户环境下仍可能出现异常崩溃的问题 一般通过客户反馈以及分析系统运行日志 问题基本都能够得到快速
  • 洛谷表达式求值

    题目描述 给定一个只包含加法和乘法的算术表达式 请你编程计算表达式的值 输入输出格式 输入格式 一行 为需要你计算的表达式 表达式中只包含数字 加法运算符 和乘法运算符 times 且没有括号 所有参与运算的数字均为 000 到 231 1
  • CentOS 7下启动、关闭、重启、查看MySQL服务

    1 启动命令 root xufeng Desktop service mysqld start Redirecting to bin systemctl start mysqld service 2 关闭命令 root xufeng ser
  • 栈系列之 递归实现一个栈的逆序

    算法专题导航页面 算法专题 栈 栈系列之 栈排序 栈系列之 最小栈的实现 栈系列之 用栈实现队列 栈系列之 递归实现一个栈的逆序 题目 使用递归来完成一个栈的逆序操作 其他限制 不能借助任何其他数据结构 图示 无 分析 递归思想原本就和栈这
  • 力扣第五十三道最大子数组和

    题目 给你一个整数数组 nums 请你找出一个具有最大和的连续子数组 子数组最少包含一个元素 返回其最大和 子数组 是数组中的一个连续部分 输入 nums 2 1 3 4 1 2 1 5 4 输出 6 解释 连续子数组 4 1 2 1 的和
  • Exploring Large Language Models for Knowledge Graph Completion

    本文是LLM系列文章 针对 Exploring Large Language Models for Knowledge Graph Completion 的翻译 探索用于知识图谱补全的大型语言模型 摘要 1 引言 2 相关工作 3 方法 4
  • C/C++中的日期和时间

    C C 中的日期和时间 撰文 周翔 摘要 本文从介绍基础概念入手 探讨了在C C 中对日期和时间操作所用到的数据结构和函数 并对计时 时间的获取 时间的计算和显示格式等方面进行了阐述 本文还通过大量的实例向你展示了time h头文件中声明的
  • 数据结构---单链表的增删改查(C语言实现)

    链表的创建 链表元素插入 头插 尾插 指定位置插入 链表元素的删除 链表元素的查看 1 链表的创建 有头链表 有头链表的创建就是创建一个头结点代表此链表 用一个结构体指针指向头结点 通常称为头指针 方便找到此链表 头结点的数据域一般不做处理
  • 软件测试笔记(五)- 动态黑盒测试

    了解在没有代码的情况甚至不懂得编程的情况下的软件测试技术 一 动态黑盒测试 戴上眼罩测试软件 不深入代码细节测试软件的方法称为 动态黑盒测试 它是动态的 因为程序在运行 软件测试员像用户一样使用它 同时 它是黑盒子 因为测试时不知道程序如何
  • STViT-R 代码阅读记录

    目录 一 SwinTransformer 1 原理 2 代码 二 STViT R 1 中心思想 2 代码与原文 本次不做具体的训练 只是看代码 所以只需搭建它的网络 执行一次前向传播即可 一 SwinTransformer 1 原理 主要思
  • H5C3部分面试题汇总

    1 HTML和HTML5 CSS和CSS3相比 有什么变化 HTML5中新增的内容有 自定义属性 data id 语义化更好的内容标签 header nav footer aside article section 音频 视频标签 audi