资讯专栏INFORMATION COLUMN

WEB前端面试题汇总(CSS)

qpwoeiru96 / 2029人阅读

摘要:默认值,没有定位,元素出现在正常的文档流中。生成粘性定位的元素,容器的位置根据正常文档流计算得出。和属性的异同共同点对内联元素设置和属性,可以让元素脱离文档流,并且可以设置其宽高。

position的值, relative和absolute分别是相对于谁进行定位的?

<1>、relative:相对定位,相对于自己本身在正常文档流中的位置进行定位。
<2>、absolute:生成绝对定位,相对于最近一级定位不为static的父元素进行定位。
<3>、fixed: 生成绝对定位,相对于浏览器窗口或者frame进行定位。
<4>、static:默认值,没有定位,元素出现在正常的文档流中。
<5>、sticky:生成粘性定位的元素,容器的位置根据正常文档流计算得出。

position:absolute和float属性的异同?

共同点:对内联元素设置float和absolute属性,可以让元素脱离文档流,并且可以设置其宽高。
不同点:float仍可占据位置,不会覆盖在另一个BFC区域上,浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。absolute会覆盖文档流中的其他元素。

box-sizing属性有哪些?

box-sizing属性主要用来控制元素的盒模型的解析模式。默认值是content-box;
<1>、content-box:让元素维持W3C的标准盒模型。元素的宽度/高度由border+padding+content的宽度/高度决定,设置width/height属性指的是content部分的宽/高。
<2>、border-box:让元素维持IE传统盒模型(IE6以下版本和IE6~7的怪异模式)。设置width/height属性指的是border+padding+content的宽度/高度。
<3>、padding-box:设置width/height属性指的是padding+content的宽度/高度。

标准浏览器下,按照W3C规范对盒模型解析,一旦修改了元素的边框或边距,就会影响元素的盒子尺寸,就不得不重新计算元素的盒子尺寸,从而影响整个页面的布局。

CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?

选择符
<1>、id选择器(#myId);
<2>、类选择器(.myClassName);
<3>、标签选择器(div,p,h1);
<4>、相邻选择器(h1 + p);
<5>、子选择器(ul > li);
<6>、后代选择器(li a);
<7>、通配符选择器(*);
<8>、属性选择器(button[disabled="true"]);
<9>、伪类选择器(a:hover,li:nth-child);表示一种状态
<10>、伪元素选择器(li:before、:after,:first-letter,:first-line,:selecton);表示文档某个部分的表现

优先级
!important > 行内样式(比重1000) > id(比重100) > class/属性(比重10) > tag / 伪类(比重1);

伪类和伪元素区别
1>、伪类:a:hover,li:nth-child;
2>、伪元素:li:before、:after,:first-letter,:first-line,:selecton;

伪元素和伪类都是选择器的补充,伪类表示的是一种状态,伪元素表示文档的某个确定部分的表现。
伪元素选择器选择出来的部分不再dom里,也不能对其绑定事件,但是如果对伪元素前面的选择器定义的元素绑定了事件,伪元素同样会生效。

新增伪类
1>、li:first-of-type:选择属于其父元素的首个

  • 元素;
    2>、li:last-of-type:选择属于其父元素的最后一个
  • 元素;
    3>、li:only-of-type:选择属于其父元素的唯一一个
  • 元素;
    4>、li:only-child:选择属于其父元素的唯一子元素;
    6>、li:nth-child(2):选择属于其父元素的第二个
  • 元素;
    7>、:enabled :disabled:选择表单控件的禁用状态;
    8>、:checked:单选或复选框被选中状态;

    对BFC规范的理解?

    BFC定义:块级格式化上下文,一个创建了新的BFC的盒子是独立布局的,盒子里面的子元素的样式不会影响到外面的元素。在同一个BFC中的两个相邻的块级盒在垂直方向的margin会发生折叠。

    BFC布局规则
    1>、内部的box会在垂直方向,一个接一个的放置。
    2>、box的垂直方向的距离有margin决定。属于同一个BFC的两个相邻box的margin会发生重叠。
    3>、每个元素的margin box的左边,与包含块border box的左边相接触(对于从左往右的格式化,否则相反),即使存在浮动也是如此,除非这个盒子创建一个新的块级格式化上下文。
    4>、BFC的区域不会与float box重叠。
    5>、BFC就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素。反之也是如此。
    6>、计算BFC的高度时,浮动元素也参与计算。

    哪些元素会产生BFC
    1>、根元素;
    2>、float属性不为none;
    3>、position为absolute或fixed;
    4>、display为inline-block,table-cell,table-caption,flex,inline-flex;
    5>、overflow除了visible以外的值(hidden、auto、scroll);
    6>、fieldset元素

    运用BFC:
    1>、解决margin重叠问题:根据BFC布局原则2,在元素外侧包裹一层容器,并触发该容器生成一个BFC,那么两个元素就不在同一个BFC,就不会发生margin重叠。

    
    
        

    Haha

    Hehe

    2>、自适应两栏布局

    
    
        

    根据BFC布局规则第3条:即使存在浮动的元素aslide,但main的左边依然会与包含块的左边相接触。
    解决:根据BFC布局规则第4条,我们可以通过通过触发main生成BFC, 来实现自适应两栏布局。

    .main {
        overflow: hidden;
    }

    当触发main生成BFC后,这个新的BFC不会与浮动的aside重叠。因此会根据包含块的宽度,和aside的宽度,自动变窄。效果如下:

    3>、清除内部浮动

    
    
        

    根据BFC布局规则第6条:计算BFC的高度时,浮动元素也参与计算,为达到清除内部浮动,我们可以触发par生成BFC,那么par在计算高度时,par内部的浮动元素child也会参与计算。

    .par {
        overflow: hidden;
    }

    解释下浮动和它的工作原理?清除浮动的技巧:

    原理:任何元素都可以被浮动,浮动元素脱离文档流,浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
    浮动引起的问题
    1>、父元素的高度无法被撑开,影响与父元素同级的元素;
    2>、与浮动元素同级的非浮动元素(内联元素)会跟随其后;
    3>、若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构;

    清除浮动
    1>、使用空标签清除浮动
    这种方法是在所有浮动标签后面添加一个空标签

    . 弊端就是增加了无意义标签。
    2>、使用after伪类

    #parent:after{
        content:".";
        height:0;
        visibility:hidden;
        display:block;
        clear:both;
    }

    3>、浮动外部元素;
    4>、设置父元素overflow为hidden或者auto,触发父元素BFC;

    常见兼容性问题

    1>、png24位的图片在ie6浏览器上出现背景,解决方案是做成png8,也可以引用一段脚本处理。
    2>、浏览器默认的margin和padding不同。解决方案:加一个全局的*{margin:0;padding:0}。
    3>、ie6双边距bug(20px距离):块属性标签float后,又有横行的margin情况下,在ie6显示margin值比设置的大。解决方案:在float标签样式控制中加入_display:inline;将其转化为行内属性。(_这个符号只有ie6会识别)。
    4>、渐进识别方式,从总体中逐步排除局部:
    首先,巧妙的使用“9”这一标记,将IE浏览器从所有情况中分离出来。
    接着,再次使用“+”将IE8和IE7、IE6分离开来,这样IE8已经独立识别。

      .bb{
           background-color:#f1ee18;/*所有识别*/
          .background-color:#00deff9; /*IE6、7、8识别*/
          +background-color:#a200ff;/*IE6、7识别*/
          _background-color:#1e0bd1;/*IE6识别*/
      }

    待续....2015.5.29

  • 文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

    转载请注明本文地址:https://www.ucloud.cn/yun/112048.html

    相关文章

    • 前端资源系列(4)-前端学习资源分享&前端面试资源汇总

      摘要:特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 本以为自己收藏的站点多,可以很快搞定,没想到一入汇总深似海。还有很多不足&遗漏的地方,欢迎补充。有错误的地方,还请斧正... 托管: welcome to git,欢迎交流,感谢star 有好友反应和斧正,会及时更新,平时业务工作时也会不定期更...

      princekin 评论0 收藏0
    • 前端最强面经汇总

      摘要:获取的对象范围方法获取的是最终应用在元素上的所有属性对象即使没有代码,也会把默认的祖宗八代都显示出来而只能获取元素属性中的样式。因此对于一个光秃秃的元素,方法返回对象中属性值如果有就是据我测试不同环境结果可能有差异而就是。 花了很长时间整理的前端面试资源,喜欢请大家不要吝啬star~ 别只收藏,点个赞,点个star再走哈~ 持续更新中……,可以关注下github 项目地址 https:...

      wangjuntytl 评论0 收藏0
    • 前端面试每日3+1(周汇总2019.08.25)

      摘要:前端面试每日题,以面试题来驱动学习,每天进步一点让努力成为一种习惯,让奋斗成为一种享受相信坚持的力量项目地址前端面试每日推荐欢迎跟一起折腾前端,系统整理前端知识,目前正在折腾,打算打通算法与数据结构的任督二脉。 《论语》,曾子曰:吾日三省吾身(我每天多次反省自己)。 前端面试每日3+1题,以面试题来驱动学习,每天进步一点! 让努力成为一种习惯,让奋斗成为一种享受!相信 坚持 的力量...

      Java3y 评论0 收藏0
    • 前端面试每日3+1(周汇总2019.08.25)

      摘要:前端面试每日题,以面试题来驱动学习,每天进步一点让努力成为一种习惯,让奋斗成为一种享受相信坚持的力量项目地址前端面试每日推荐欢迎跟一起折腾前端,系统整理前端知识,目前正在折腾,打算打通算法与数据结构的任督二脉。 《论语》,曾子曰:吾日三省吾身(我每天多次反省自己)。 前端面试每日3+1题,以面试题来驱动学习,每天进步一点! 让努力成为一种习惯,让奋斗成为一种享受!相信 坚持 的力量...

      付伦 评论0 收藏0
    • 2019前端面试汇总(主要为Vue)

      摘要:毕业之后就在一直合肥小公司工作,没有老司机没有技术氛围,在技术的道路上我只能独自摸索。于是乎,我果断辞职,在新年开工之际来到杭州,这里的互联网公司应该是合肥的几十倍吧。。。。 毕业之后就在一直合肥小公司工作,没有老司机、没有技术氛围,在技术的道路上我只能独自摸索。老板也只会画饼充饥,前途一片迷茫看不到任何希望。于是乎,我果断辞职,在新年开工之际来到杭州,这里的互联网公司应该是合肥的几十...

      arashicage 评论0 收藏0

    发表评论

    0条评论

    最新活动
    阅读需要支付1元查看
    <