欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

前端面试题(二)--CSS

程序员文章站 2022-03-04 12:13:15
...

前端面试题(二)—–CSS

1.CSS实现垂直水平居中
一道经典的问题,实现方法有很多种,以下是其中一种实现:
HTML结构:

<div class="wrapper">
    <div class="content"></div>
</div>
.wrapper{position:relative;}
    .content{
        background-color:#6699FF;
        width:200px;
        height:200px;
        position: absolute;        //父元素需要相对定位
        top: 50%;
        left: 50%;
        margin-top:-100px ;   //二分之一的height,width
        margin-left: -100px;
    }

2.display有哪些值?说明他们的作用。
block 块类型。默认宽度为父元素宽度,可设置宽高,换行显示。
none 缺省值。象行内元素类型一样显示。
inline 行内元素类型。默认宽度为内容宽度,不可设置宽高,同行显示。
inline-block 默认宽度为内容宽度,可以设置宽高,同行显示。
list-item 象块类型元素一样显示,并添加样式列表标记。
table 此元素会作为块级表格来显示。
inherit 规定应该从父元素继承 display 属性的值。

3.行内元素有哪些?块级元素有哪些?CSS的盒模型?
块级元素:div,p,h1,form,ul,li;
行内元素 : span>,a,label,input,img,strong,em;
CSS盒模型:内容,border ,margin,padding

4.CSS引入的方式有哪些? link和@import的区别是?
内联 内嵌 外链 导入
区别 :同时加载
前者无兼容性,后者CSS2.1以下浏览器不支持
Link 支持使用javascript改变样式,后者不可

5.CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?
标签选择符 类选择符 id选择符
继承不如指定 Id>class>标签选择
后者优先级高

6.CSS清除浮动的几种方法(至少两种)
使用带clear属性的空元素
使用CSS的overflow属性;
使用CSS的:after伪元素;
使用邻接元素处理;

7.CSS居中(包括水平居中和垂直居中)
内联元素居中方案
水平居中设置:

  • 1.行内元素 设置 text-align:center;
  • 2.Flex布局
    设置display:flex;justify-content:center;(灵活运用,支持Chrome,Firefox,IE9+)

垂直居中设置:

  • 1.父元素高度确定的单行文本(内联元素) 设置 height = line-height;

  • 2.父元素高度确定的多行文本(内联元素)
    a:插入 table (插入方法和水平居中一样),然后设置 vertical-align:middle; b:先设置
    display:table-cell 再设置 vertical-align:middle;

块级元素居中方案
水平居中设置:

  • 1.定宽块状元素 设置 左右 margin 值为 auto;

  • 2.不定宽块状元素 a:在元素外加入 table 标签(完整的,包括 table、tbody、tr、td),该元素写在 td 内,然后设置 margin 的值为 auto; b:给该元素设置 displa:inine 方法; c:父元素设置 position:relative
    和 left:50%,子元素设置 position:relative 和 left:50%;

垂直居中设置:

使用position:absolute(fixed),设置left、top、margin-left、margin-top的属性;
利用position:fixed(absolute)属性,margin:auto这个必须不要忘记了;
利用display:table-cell属性使内容垂直居中;
使用css3的新属性transform:translate(x,y)属性;
使用:before元素;

8.在书写高效 CSS 时会有哪些问题需要考虑?
reset。参照上题“描述下 “reset” CSS 文件的作用和使用它的好处”的答案。
规范命名。尤其对于没有语义化的html标签,例如div,所赋予的class值要特别注意。
抽取可重用的部件,注意层叠样式表的“优先级”。