「CSS 面试」这一题可以难倒 80% 以上的面试者

2015-08-17 16:49:38 +08:00
 FrankFang128

position 有哪些取值?各取值的意义分别是什么?

我上个月面了 5 个人,全都答得不准确。

所谓准确就是把各取值相对谁定位说清楚。

这反映出大部分新人根本不看标准或者定义,直接用,我只能说你们很勇敢。

注:标题党了, 80% 是我的个人经验,实际应该更高 lol 。

10355 次点击
所在节点    前端开发
105 条回复
banri
2015-08-17 20:02:22 +08:00
没看上面回复,没搜索资料,试试回答下

position

inherit 继承,这个很多属性都有

static 默认值,占据文档流空间

relative 相对于 static 的位置定位,占据文档流空间

absolute 相对于第一个非 static 父元素定位,不占据文档流空间。如果所有父元素均为 static 值,则相对于 html 这个根元素定位。 html 本身也可以被 absolute 定位,它的参考物则是 viewport

fixed 相对于 viewport 定位,不占据文档流空间
pepsin
2015-08-17 20:04:47 +08:00
另外如果楼主觉得这样的人不好,那可能碰上一种上来就跟你讲 box 模型底层实现, webkit 背后渲染架构再跳回来跟你讲 CSS 的人,你可能也会被发一贴噢。
gongpeione
2015-08-17 20:15:26 +08:00
@banri 看到这个问题就又去你博客看了遍
banri
2015-08-17 20:22:56 +08:00
@gongpeione 树大触又黑窝!
ileenhow
2015-08-17 20:24:50 +08:00
现在快有 sticky 了
banri
2015-08-17 20:25:09 +08:00
@banri 想起来还得补充一句, absolute 还得用 top/right/bottom/left 触发,不然还是会呆在原来的位置,不过表现形式和 static 不同 -w-
otakustay
2015-08-17 20:37:59 +08:00
看你面的啥人,我面过的人这个问题大概只有 20%的答不出

另外没说出 sticky 你算答错吗
FrankFang128
2015-08-17 20:53:40 +08:00
@otakustay 你们那么关心 sticky 干啥,还在草案阶段。以后说不定会变。
aivier
2015-08-17 20:57:33 +08:00
不管懂不懂,反正我是做出来了→_→你看呢

需要用的时候自然会知道
jarlyyn
2015-08-17 21:01:35 +08:00
毫无价值的问题。

面初级切图仔出普通个结构的页面和 html 让写样式就行了。
YuJianrong
2015-08-17 21:07:44 +08:00
这个问题还好,我觉得 css 的 killer 问题应该是给两个 css selector 问谁的优先级高以及为什么。

没针对复习过能答出来估计是大牛……
orvice
2015-08-17 21:08:17 +08:00
跪了。。
windfarer
2015-08-17 21:31:32 +08:00
我觉得这个问题能这么难,完全是因为一开始这地方设计得就比较 2B
LancerComet
2015-08-17 21:32:16 +08:00
楼主应该问问 CSS3 属性与 Chrome 中的 GraphicsLayer 的联系啊渲染原理啊之类的啪啪啪,见到能答的就收。
ceoimon
2015-08-17 21:59:50 +08:00
又复习了一遍...

看了 banri 的回复才知道 fixed 相对于视口 viewport 定位, 所以如果我答相对于浏览器窗口( browser window )算“不准确”吗...

实际上问题 “除了 fixed absolute relative 还有哪些取值”确实没什么价值, static 定位即使不知道名字也至少知道有这么一个东西吧,还是你想得到 inherit 这种答复,那么你能说出不能使用 inherit 值的 CSS 属性吗?

initial 值真的有人用吗...

附: CSS 中的 initial 值有什么卵用?: http://stackoverflow.com/questions/18534561/what-is-use-of-initial-value-in-css
SoloCompany
2015-08-17 23:26:56 +08:00
人家好不容易背了半天的 box-sizing 你来问这个?
yhxx
2015-08-17 23:31:51 +08:00
前一段时间也被问了这个问题,答了 5 个,自以为答得不错,被批评不关注新姿势。
查了一下发现现在有 8 个了。。。。
msg7086
2015-08-17 23:33:21 +08:00
@sumhat
int32_max 真没什么好问的,周围不少人都能秒答。
这都是常年要记住的东西。
sumhat
2015-08-17 23:36:31 +08:00
@msg7086 我想表达的是,记住这些东西有用么......Stackoverflow 上一大堆答疑贴,有啥不会直接搜即可。
msg7086
2015-08-17 23:43:52 +08:00
@sumhat 有啊。

否则还要上这么多课做什么。写代码无非就是照着手册搬,出问题爆栈。学金融的无非一大堆概念和公式,有需要去翻翻书就好了还拿什么 MBA 。

如果只是天天查爆栈的话,大概就只能做个底层民工。高端码农的目标应该是能在爆栈上解决问题,而不是遇到问题去爆栈上找人求助 /找贴参考。(特别是,如果爆栈上一堆人在问的问题,多数是很浅的问题。)

如果是招后端的,面前端面到那么细是不应该。然而你一个前端来面,面得细点并不过分吧。
像这种 position 的知识如果你不知道的话,并不是说要用的时候搜一下就知道了,而是要用的时候你连他们的「存在」都不知道。这就会造成决定性的差异了。

这和回字的多少种写法没太大关系。回随便你怎么写都不影响使用。 CSS 你不能随便写啊。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/213833

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX