美文网首页
前端开发面试题之HTML、CSS

前端开发面试题之HTML、CSS

作者: 我没叫阿 | 来源:发表于2021-01-27 10:49 被阅读0次

    HTML

    • 五大浏览器及内核?
      ie (trident)
      谷歌 (webkit/blink)
      火狐 (gecko)
      safari (webkit)
      欧朋 (presto)

    • label的作用是什么?
      for 属性表示Label标签要绑定的HTML 元素,你点击这个标签的时候,所绑定的元素将获取焦点。

    <form>
        <label for="userName">用户名 : </label>
        <input type="text" id="userName" />
    </form>
    
    • 说一下行内和块级元素?
      常用行内元素:spanaimginputselectlabeltextareabutton
      块级元素:divh1olullipheaderfooter

    • 简述一下对HTML语义化的理解
      1.去掉或丢失样式的时候能够让页面呈现出清晰的结构。
      2.有利于SEO和搜索引擎建立良好沟通,有助于爬虫抓取更多的信息,爬虫依赖于标签来确定上下文和各个关键字的权重。
      3.方便其它设备解析。
      4.便于团队开发和维护,语义化根据可读性。

    • DOCTYPE有什么作用?标准模式与混杂模式如何区分?它们有何意义?
      作用:告诉浏览器使用哪个版本的HTML规范来渲染文档。DOCTYPE不存在或形式不正确会导致HTML文档以混杂模式呈现。
      标准模式(Standards mode)以浏览器支持的最高标准运行;
      混杂模式(Quirks mode)中页面是一种比较宽松的向后兼容的方式显示。

    CSS

    • 页面导入样式时,使用link和@import有什么区别
      link属于html标签,而@import是css提供的
      页面加载时,link会同时被加载,而@import引用的css会等到页面加载结束后加载
      link是html标签,因此没有兼容性,而@import只有IE5以上才能识别
      link除了引用样式文件,还可以引用图片等资源文件,而@import只引用样式文件
      link支持使用Javascript控制DOM去改变样式;而@import不支持。

    • 怎么让Chrome支持小于12px 的文字?

    -webkit-text-size-adjust:none;  //但这个属性在高版本的 Chrome 中已经被废除。
    transform: scale();
    
    • px,em,rem的区别
      px:像素,是相对于显示器屏幕分辨率而言的固定的值。
      em:值并不是固定的 , 会继承父级元素的字体大小。
      rem:只是相对于html根元素字体大小

    • 详解
      px:绝对度量单位,就是像素
      em:相对度量单位,但是计算起来实在费劲。em指的是相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。换句话说,如果当前div的字体大小是12像素,那么1em就是12像素,如果div字体大小是24像素,1em就是24像素。
      rem:也是和字体相关的相对度量单位,但是,rem是相对于根元素的字体大小进行设置的,如果html元素中的字体大小设置为24px,那么针对任意html内的元素设置1rem,均表示的是24px,大大节省了我们计算字体大小的时间。

    • calc, support, media各自的含义及用法?
      @support主要是用于检测浏览器是否支持CSS的某个属性,其实就是条件判断,如果支持某个属性,你可以写一套样式,如果不支持某个属性,你也可以提供另外一套样式作为替补。

     @supports (display: flex) { div { display: flex; }}
     @supports not (display: flex) { div { float: right; }}
    

    calc()函数用于动态计算长度值。 calc()函数支持 "+", "-", "*", "/" 运算;

    width:calc(100% - 30px) / 4;  //注意:符号前后都需要加空格
    
    • @media查询,你可以针对不同的媒体类型定义不同的样式。特别是如果你需要设置设计响应式的页面,@media 是非常有用的。
    @media screen and (min-width:960px){ 
        body{background:orange;}
     }
    

    css水平、垂直居中的写法,请至少写出4种?
    水平居中

    text-align: center;  /* 行内元素*/
    margin: 0 auto;  /* 块级元素*/
    position:absolute;left:50%;transform:translateX(-50%);
    display:flex; justify-content: center;
    

    垂直居中

    height: 100px;line-height: 100px;
    position:absolute;top:50%;transform:translateY(-50%);
    display:flex; align-items: center;
    display:table+display:table-cell; vertical-align: middle;
    
    • 画一条0.5px的直线?
    height: 1px;transform: scaleY(0.5);
    
    • 说一下盒模型?
      盒模型的组成,由里向外content,padding,border,margin;
      在IE盒子模型中,width表示content+padding+border这三个部分的宽度。
      在标准的盒子模型中,width指content部分的宽度。
      box-sizing(默认值:content-box)的使用。
    box-sizing: content-box;  /* 是W3C盒子模型。*/
    box-sizing: border-box;  /* 是IE盒子模型。*/
    
    • 浏览器是怎样解析CSS选择器的?
      CSS选择器的解析是从右向左解析的。
    • display的值及其作用?
      inline:(默认值):表示指定对象为内联元素。
      none: 表示隐藏对象,与visibility属性的hidden值不同,display:none不为被隐藏的对象保留物理空间 ,然visibility:hidden就保留。
      block: 指定对象为块元素。
      list-item: 指定对象为列表项目。
      inline-block: 指定对象为内联块元素。
      table: 指定对象作为块元素级的表格。
      inline-table: 指定对象作为内联元素级的表格。
      flex: 将对象设置为弹性布局。

    • 说一下你理解的hack?
      CSS hack的目的就是使你的CSS代码兼容不同的浏览器。

    • CSS继承性?
      不是所有的属性都可以继承, 只有以color/font-/text-/line-开头的属性才可以继承。
      所有元素可继承:visibilitycursor
      <a>标签的文字颜色和下划线是不能继承的。
      <h>标签的文字大小是不能继承的。

    • 定位流

    position: relative;  /* 相对定位就是相对于原来在标准流中的位置进行移动。*/
    position: absolute;  /* 默认情况下是以body为参考点,如果祖先元素中有一个元素也是定位流(相对定位、绝对定位、固定定位),那么就是以这个元素为参考点。*/
    
    • 实现移动端1px边框

    1、viewport + rem 实现
    同时通过设置对应viewport的rem基准值,这种方式就可以像以前一样轻松愉快的写1px了。
    在devicePixelRatio = 2 时,输出viewport:

    <meta name="viewport" content="initial-scale=0.5, maximum-scale=0.5, minimum-scale=0.5, user-scalable=no">
    

    在devicePixelRatio = 3 时,输出viewport:

    <meta name="viewport" content="initial-scale=0.3333333333333333, maximum-scale=0.3333333333333333, minimum-scale=0.3333333333333333, user-scalable=no">
    

    2、box-shadow模拟边框,利用css 对阴影处理的方式实现0.5px的效果

    box-shadow: inset 0px -1px 1px -1px #c8c7cc;
    

    3、transform实现

      transform: scaleY(.5);  //横线
    
    • CSS3新特性有那些
      颜色:新增rgba()
      文字阴影:text-shadow: ;
      边框:圆角border-radius: ;边框阴影box-shadow: ;
      盒子模型:box-sizing: ;
      背景:bacground-size: ;设置图片的尺寸
      background-origin: ;设置图片的原点
      background-clip: ;设置背景图片的剪裁区域
      渐变:linear-gradient radial-gradient
    例:
      background:linear-gradient(red, blue);
    

    过度:transition: ;可以实现动画
    自定义动画:@keyframes
    唯一引入的伪元素:::selection
    媒体查询:@media

    例:
    @media screen and (max-width: 300px) {
        body {
            background-color:lightblue;
        }
    }
    

    边框图像:border-image

    例:
      border-image:url(border.png) 30 round;
    
    • 说一下伪类和伪元素?

    动态伪类选择器
    :hover
    :active

    UI元素状态伪类选择器
    -适用于表单验证,例如input可用或不可用
    :enabled
    :disabled

    input:enabled {
      background: green;
    }
    input:disabled {
      background: #f4f4f4;
    }
    
    <input type="text" disabled>
    <input type="text">
    

    伪元素用于想某些选择器设置特殊效果
    -为了和伪类区分开,伪元素需要写两个冒号(::)
    ::first-letter 设置第一个字的样式
    ::first-line 设置第一行的样式
    ::before
    ::after

    相关文章

      网友评论

          本文标题:前端开发面试题之HTML、CSS

          本文链接:https://www.haomeiwen.com/subject/snwozktx.html