常见的CSS面试题

简介: 常见的CSS面试题
  1. 介绍一下标准的CSS的盒子模型?

    • 标准盒子模型:宽度=内容的宽度(content)+ border + padding + margin
    • 低版本IE盒子模型:宽度=内容宽度(content+border+padding)+ margin
  2. box-sizing属性?

    • context-box:W3C的标准盒子模型,设置元素的 height/width 属性指的是content部分的高/宽
    • border-box:IE传统盒子模型。设置元素的height/width属性指的是border + padding + content部分的高/宽
  3. CSS选择器有哪些?哪些属性可以继承?

    • CSS选择符:id选择器(#myid)、类选择器(.myclassname)、标签选择器(div, h1, p)、相邻选择器(h1 + p)、子选择器(ul > li)、后代选择器(li a)、通配符选择器(*)、属性选择器(a[rel="external"])、伪类选择器(a:hover, li:nth-child)
    • 可继承的属性:font-size, font-family, color
    • 不可继承的样式:border, padding, margin, width, height
    • 优先级(就近原则):!important > [ id > class > tag ]
    • !important 比内联优先级高
  4. CSS3新增伪类有那些?

    • p:first-of-type 选择属于其父元素的首个元素
    • p:last-of-type 选择属于其父元素的最后元素
    • p:only-of-type 选择属于其父元素唯一的元素
    • p:only-child 选择属于其父元素的唯一子元素
    • p:nth-child(2) 选择属于其父元素的第二个子元素
    • :enabled :disabled 表单控件的禁用状态。
    • :checked 单选框或复选框被选中。
  5. 使用CSS3创建一个三角形
width: 0;
height: 0;
border-top: 40px solid transparent;
border-left: 40px solid transparent;
border-right: 40px solid transparent;
border-bottom: 40px solid #ff0000;
  1. 为什么要初始化CSS样式?
  • 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。
  1. 隐藏元素的方法有哪些?

    • display: none:渲染树不会包含该渲染对象,因此该元素不会在页面中占据位置,也不会响应绑定的监听事件。
    • visibility: hidden:元素在页面中仍占据空间,但是不会响应绑定的监听事件。
    • opacity: 0:将元素的透明度设置为 0,以此来实现元素的隐藏。元素在页面中仍然占据空间,并且能够响应元素绑定的监听事件。
    • position: absolute:通过使用绝对定位将元素移除可视区域内,以此来实现元素的隐藏。
    • z-index: 负值:来使其他元素遮盖住该元素,以此来实现隐藏。
    • clip/clip-path :使用元素裁剪的方法来实现元素的隐藏,这种方法下,元素仍在页面中占据位置,但是不会响应绑定的监听事件。
    • transform: scale(0,0):将元素缩放为 0,来实现元素的隐藏。这种方法下,元素仍在页面中占据位置,但是不会响应绑定的监听事件。
  2. link和@import的区别?

    • link是XHTML标签,除了加载CSS外,还可以定义RSS等其他事务;@import属于CSS范畴,只能加载CSS。
    • link引用CSS时,在页面载入时同时加载;@import需要页面网页完全载入以后加载。
    • link是XHTML标签,无兼容问题;@import是在CSS2.1提出的,低版本的浏览器不支持。
    • link支持使用Javascript控制DOM去改变样式;而@import不支持。
  3. transition和animation的区别

    • transition是过度属性,强调过度,它的实现需要触发一个事件(比如鼠标移动上去,焦点,点击等)才执行动画。它类似于flash的补间动画,设置一个开始关键帧,一个结束关键帧。
    • animation是动画属性,它的实现不需要触发事件,设定好时间之后可以自己执行,且可以循环一个动画。它也类似于flash的补间动画,但是它可以设置多个关键帧(用@keyframe定义)完成动画。
  4. CSS3中有哪些新特性?

    • 新增各种CSS选择器 (: not(.input):所有 class 不是“input”的节点)
    • 圆角 (border-radius:8px)
    • 多列布局 (multi-column layout)
    • 阴影和反射 (Shadoweflect)
    • 文字特效 (text-shadow)
    • 文字渲染 (Text-decoration)
    • 线性渐变 (gradient)
    • 旋转 (transform)
    • 增加了旋转,缩放,定位,倾斜,动画,多背景
  5. 单行、多行文本溢出隐藏?

    • 单行文本溢出

        overflow: hidden;            // 溢出隐藏
        text-overflow: ellipsis;      // 溢出用省略号显示
        white-space: nowrap;         // 规定段落中的文本不进行换行
    • 多行文本溢出

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

    • 他们都是 CSS 预处理器,是 CSS 上的一种抽象层。他们是一种特殊的语法/语言编译成 CSS。 例如 Less 是一种动态样式语言,将 CSS 赋予了动态语言的特性,如变量,继承,运算, 函数,LESS 既可以在客户端上运行 (支持 IE 6+, Webkit, Firefox),也可以在服务端运行 (借助 Node.js)。
  7. z-index属性在什么情况下会失效?

    • 父元素position为relative时,子元素的z-index失效。解决:父元素position改为absolute或static;
    • 元素没有设置position属性为非static属性。解决:设置该元素的position属性为relative,absolute或是fixed中的一种;
    • 元素在设置z-index的同时还设置了float浮动。解决:float去除,改为display:inline-block;
  8. px、em、rem的区别?

    • px是固定的像素,一旦设置了就无法因为适应页面大小而改变。
    • em和rem相对于px更具有灵活性,他们是相对长度单位,其长度不是固定的,更适用于响应式布局。
    • em是相对于其父元素来设置字体大小,这样就会存在一个问题,进行任何元素设置,都有可能需要知道他父元素的大小。而rem是相对于根元素,这样就意味着,只需要在根元素确定一个参考值。
  9. 水平垂直居中的实现?

    • 使用flex布局,通过align-items:center和justify-content:center设置容器的垂直和水平方向上为居中对齐,然后它的子元素也可以实现垂直和水平的居中
      .parent {
          display: flex;
          justify-content:center;
          align-items:center;
      }
    • 利用绝对定位,先将元素的左上角通过top:50%和left:50%定位到页面的中心,然后再通过margin负值来调整元素的中心点到页面的中心
      .parent {
      position: relative;
      }
      
      .child {
          position: absolute;
          top: 50%;
          left: 50%;
          margin-top: -50px;     /* 自身 height 的一半 */
          margin-left: -50px;    /* 自身 width 的一半 */
      }
目录
相关文章
|
5天前
|
前端开发 算法
【css炫酷动画】让面试官眼前一亮的故障风格文字动画,3年Web前端开发工程师面试经验分享
【css炫酷动画】让面试官眼前一亮的故障风格文字动画,3年Web前端开发工程师面试经验分享
|
5天前
|
前端开发
一文搞懂css常用字体属性与背景属性(2),非科班面试之旅
一文搞懂css常用字体属性与背景属性(2),非科班面试之旅
|
8天前
|
前端开发 开发者
CSS面试考点:盒模型、选择器、单位和像素概念
【4月更文挑战第2天】 CSS面试考点:盒模型、选择器、单位和像素概念
29 12
|
8天前
|
前端开发 容器
CSS面试考点:隐藏元素、BFC、垂直居中、CSS3新特性
【4月更文挑战第2天】 CSS面试考点:隐藏元素、BFC、垂直居中、CSS3新特性
22 10
|
8天前
|
编解码 前端开发 容器
CSS常见的面试题以及答案 500字以上
【4月更文挑战第1天】 CSS常见的面试题以及答案 500字以上
7 0
|
8天前
|
前端开发 JavaScript 容器
前端面试之梳理CSS
前端面试之梳理CSS
18 1
|
8天前
|
编解码 前端开发 JavaScript
高频CSS面试题
高频CSS面试题
154 0
|
8天前
|
前端开发 网络协议 JavaScript
【前端面试题】 HTML+CSS篇
【前端面试题】 HTML+CSS篇
|
8天前
|
存储 前端开发 JavaScript
前端基础面试题(HTML,CSS,JS)
前端基础面试题(HTML,CSS,JS)
|
8天前
|
数据采集 前端开发 JavaScript
【面试题】常见前端基础面试题(HTML,CSS,JS)
【面试题】常见前端基础面试题(HTML,CSS,JS)
189 0