作为一个前端,HTML 和 CSS 是必学的基础,也是前端必考的知识点,有些人明明框架源码都能侃侃而谈,可是这些基础却支支吾吾说不明白,从而错过好的 offer 是真的很可惜,所以好好复习下基础真的很有必要
为此笔者专门梳理了一下相关面试常见考点
>>>、/deep/、::v-deep
都是深度选择器,可以操作样式穿透,用于局部修改UI组件库默认样式
区别是 >>> 只作用于 CSS,在 Less/Sass 中无法识别,所以用 deep 代替,在 Vue3.0之前用 /deep/,Vue3.0之后用 ::v-deep
position
有些人还只知道4个属性~
几种隐藏的区别
另外 transition 过渡不支持 display:none,其他三个是支持的
什么时候会导致重排
怎么减少重排影响呢?
margin 和 padding
margin 和 padding 对行内元素的影响,比如 span,默认设置不了宽高的,但是可以设置 margin 和 padding, 不过设置后 margin 和 padding 都只有水平方向有效果,垂直方向是没有效果的
两个div上下排列,都设置 margin 会怎样?
会发生边距重叠,margin 都大于0就取较大值,一正一负就相加,都负取较大绝对值
为什么会这样?就是由于 BFC
说一下 BFC
BFC就是块级元素格式化上下文,相当于一个容器,里面的布局不会影响到外面的元素。IFC就是内联元素格式化上下文
BFC渲染规则或特性:
怎么创建BFC或触发BFC:
BFC使用场景:
外边距重叠,如
左边定宽,右边自适应,只需要给右边创建BFC即可
BFC可以阻止浮动元素的覆盖。父元素没有设置高度,子元素浮动了,不参与父元素高度计算,由于父元素高度为0,导致父元素的兄弟元素向上顶,与子元素重叠,只需给父元素创建BFC即可
设置浮动后 display 自动变成 block
由于父元素没写高度时,子元素浮动后会导致父元素发生调试塌陷,所以需要清除浮动
.clearfix:after{
visibility: hidden;
display: block;
font-size: 0;
content: " ";
clear: both;
height: 0;
}
.clearfix{
zoom: 1;
}
盒模型
通过CSS的 box-sizing 属性切换模式,content-box就是标准模式,border-box就是怪异模式
标签之间空白间隙如何解决
<li>第一行li><li>第二行li>
常见样式兼容问题:before 和 ::before 的区别媒体查询
通过媒体查询可以为不同大小尺寸的设备使用不同的 CSS,达到自适应的目的。可以通过 html 或者 CSS 设置
<meta name=’viewport’ content=”width=device-width, initial-scale=1. maximum-scale=1,user-scalable=no”>
<link ref="stylesheet" type="text/css" href="xxx.css" media="only screen and(max-device-width: 480px)">
@media only screen and(max-device-width:480px){ ... }
link 和 @import如何利用标签提升渲染速度link标签
通过rel属性进行预加载,如
<link rel="dns-prefetch" href="//xx.baidu.com">
rel有几个属性:
script标签
由于浏览器底层运行机制,渲染引擎在解析HTML时遇到script标签引用文件是会暂停解析过程的,同时通过网络线程加载文件,文件加载后切换至js引擎执行相应代码,代码执行完成后再切换回渲染引擎继续渲染页面
可是首次渲染可能并不依赖这些js文件,这就延长了页面渲染的时间,所以为了减少这些时间损耗,可以通过script标签三个属性来实现:
href和src的区别
href是引用,src是引入
href:
src:
SEO 和语义化
SEO就是搜索引擎优化,利用搜索引擎的搜索规则来提高网站的自然排名,比如对网站的标题、关键字、描述精心设置,比如网站的结构布局设计和网页代码优化
语义化就根据内容结构化选择合适的标签和特有的属性去格式化文档内容,在没有CSS的情况下也能呈现出很好的内容结构,代码结构,便于开发者阅读和维护,同时也利于SEO
alt和title的作用及区别
共同点是有利于SEO
不同点是alt是图片不能正常显示时出现的提示信息;title是鼠标移到元素上时显示的提示信息,而且大多数标签都支持title属性,但是优先级要低于alt(都在图片上图片不能正常显示时);title内容可以比alt更长
HTML自动刷新或跳转
除了定时器控制页面跳转还有更简洁的方法,比如meta标签
<meta http-equiv="Refresh" content="5; URL=page2.html">
<meta http-equiv="Refresh" content="30">
比如实现PPT自动 功能或者自动返回首页,或者做大屏幕监控的时候用这样的方法来自动刷新,是不是很简单呢
当然它的缺点是刷新和跳转是不可取消的,如果需要动态刷新或者手动取消的,还是推荐定时器
水平垂直居中固定宽高
absolute + 负margin
.content {
position: absolute;
top: 50%;
left: 50%;
margin-top: -50px; /* 这里的 50px 为宽高的一半 */
margin-left: -50px;
}
absolute + margin auto
.content {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
不固定宽高
posolute + translate
.content {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
vertical-align + 伪元素
.box {
width: 300px;
height: 300px;
text-align: center;
}
.box:after {
content: '';
height: 100%;
display: inline-block;
vertical-align: middle;
}
...
<div class="box">
<span class="content">这碗又大又圆,这面又长又宽span>
div>
flex
.box {
width: 300px;
height: 300px;
display: flex;
justify-content: center;
align-items: center;
}
...
<div class="box">
<div class="content">这碗又大又圆,这面又长又宽div>
div>
grid
.box {
width: 300px;
height: 300px;
display: grid;
}
.content {
justify-self: center;
align-items: center;
}
...
<div class="box">
<div class="content">这碗又大又圆,这面又长又宽div>
div>
table-cell
.box {
width: 300px;
height: 300px;
display: table-cell;
text-align: center;
vertical-align: middle;
}
...
<div class="box">
<span class="content">这碗又大又圆,这面又长又宽span>
div>
writing-mode
.box {
width: 300px;
height: 300px;
writing-mode: vertical-lr;
text-align: center;
}
.content {
writing-mode: horizontal-tb;
display: inline-block;
width: 100%;
}
...
<div class="box">
<div class="content">
<span>这碗又大又圆,这面又长又宽span>
div>
div>
结语
如果本文对你有一点点帮助,点个赞支持一下吧,你的每一个【赞】都是我创作的最大动力,感谢支持 ^_^
Zoom 上市的 S-1 文件都说了些什么
Zoom 最近提交了上市 S-1 文件,预计4月份将在纳斯达克上市。作为一家 SaaS 领域的独角兽企业,Zoom 的上市受到很多人的关注。与其它几个同样准备上市的独角兽 Uber、Lyft、Pinterest 等不同的是,Zoom 在上市前就已经实现了盈利。
创始人袁征的传奇经历,比方说赴美签证 8 次被拒签,从一开始几乎不会说英语到做到 Cisco 全球副总裁,以及被 Glassdoor 评为全美最受欢迎 CEO 等,都是逆袭的好榜样。而通过 S-1 文件,我看到了 Zoom 一些更有意思的东西。
Zoom 简洁创业里程碑史
Zoom 的产品矩阵和收费套餐
有意思的是,Zoom 公司的名字在很早期改了两次
得大客户者得天下,未来成长空间巨大
超过50%的世界500强在使用 Zoom 的付费服务
334个客户创造了 Zoom 营收的34%份额
前十大客户占据公司整体营收份额不超过10%,没有占据营业额超过5%的单一客户
但目前年度付费超过10万美元的不到4%,因此未来有巨大的增长空间
Zoom 目前超过10个全职员工的客户有50800个,他们带来了78%的营收
近 2 年营收增长率分别达到了 148%和 119%
截至2019年,Zoom 整体员工人数 1702 人,在中国的研发中心有超过500人的员工
Zoom 整个公司关注的核心指标只有两个
全职员工超过 10 个人的客户
每年带来 10 万美元收入的客户
部分客户列表
从这两个指标也可以简单的看出,Zoom 是非常关注销售的,可以说 Zoom 是一个真正的全员销售公司,袁征曾说,Zoom 最核心的竞争力是销售力:
公司除了销售团队以外,其他所有人包括 HR 都应该是随时都想着对外销售公司的产品。比如说电梯里看到同楼的人,就可以跟人:“说听说你们用别的公司的产品,其实你们也可以试试用 zoom ”;周末看到邻居,也可以告诉他用 zoom 的产品;我经常收到别的公司发来的销售邮件,我从来都不会直接删掉,我会给他们回信让他们试试用 zoom 的产品。
公司所有主管、甚至每个人都有义务去销售公司的产品,如果每个人都这样做,500人的公司就会有500名销售员,1500人的公司就有1500名销售员,10000人的公司就能有10000个销售人员,这样下来就非常厉害了。
而这个销售文化的执行,与袁征一直倡导的传递快乐文化息息相关,这就不得不涉及到 Zoom 的使命远景价值观文化:
在袁征的心中,最重要的还是文化和价值观
每个公司的愿景和使命都很重要,在我眼里最重要的还是公司的价值观和文化。很多人认为文化是非常虚的东西,没有什么必要,但我认为这完全是错的。
我们公司的文化就是“ Deliver Happiness ”——传递快乐,让大家都高兴。我作为 CEO 要努力让员工高兴,员工高兴了就会想办法让客户高兴,客户高兴了我就会高兴,我高兴了就会再想办法让员工高兴。就是这样良性的循环,简单又高效。客户高兴了,公司就可以活下来。
到了一定的年龄就会慢慢的懂得,让别人幸福,就能得到真心的幸福。这种幸福不像是有多少钱有多少权,这种幸福是持续的,长久的。
我们公司的价值观也很有趣,就一个字“ care ”——关心。我们就是要做简化,一个公司最怕的就是越做大越复杂。我们的“关心”有五层意思:关心社区、关心公司、关心客户、关心同事、关心自己。
公司的愿景和使命会一直变化,但是公司的文化和价值观从成立的第一天就要定下来一直不变,要天天讲、月月讲,重复强调、一直秉承下去。
这种独特的文化不仅带来销售额的快速增长,更大大提高了销售效率,与 SaaS 行业的其它公司相比,Zoom 的销售效率仅次于开发与协作软件公司 Atlassian(这里的 180 意思是,投入 1 美金的销售与市场费用,在下一年将带来 1.8 美金的毛利)
股权结构上,袁征以 22%的份额位列第一大股东
通过梳理其融资历史,Zoom 截止目前总共融了 1.605 亿美金,从种子轮到 D 轮投资人分别如下,都是赢家:
D2017.11.15 亿红杉资本、Emergence Capital Partners
2015.2
3000 万
Emergence Capital Partners、AME Cloud Ventures、Bart Swanson、维港投资、Maven Ventures、Patrick Soon-Shiong、Qualcomm Ventures
2013.9
650 万
维港投资、AME Cloud Ventures、Matt Ocko、Patrick Soon-Shiong、Qualcomm Ventures
2013.1
600 万
AME Cloud Ventures、IT-Farm、Matt Ocko、Mike Everett、Qualcomm Ventures、Subrah Iyar
2011.6
300 万
Bill Tai、Dan Scheinman、Matt Ocko、Mike Everett、Subrah Iyar、TSVC
对于未来,Zoom 希望通过这些策略实现持续增长
更多信息查阅 Zoom S-1 原文件