一些简单的HTML+CSS面试题

网络中使用最多的图片格式有哪些

JPEG,GIF,PNG。最流行的是jpeg格式,可以把文件压缩到最小,在ps以jpeg格式存储图片时,提供11级压缩级别。

请简述css盒子模型

内容分布图:
内容分布图

一个css盒子从外到内可以分成四个部分:margin(外边距),border(边框),padding(内边距),content(内容);

  • 默认情况下,盒子的width和height属性只是设置content(内容)的宽和高
  • 怪异盒子模型的 content(内容)还受 padding 的影响
  • 盒子真正的宽应该是:内容宽度+左右填充+左右边距+左右边框
  • 盒子真正的高应该是:内容高度+上下填充+上下边距+上下边框

视频/音频标签的使用

  • 视频:
    • 视频标签属性:
      • src 播放视频的地址
      • width/height 设置播放视频的宽高,和img标签的宽高属性一样
      • autoplay 是否自动播放
      • controls 是否显示控制条
      • poster 没有播放之前显示的占位图片
      • loop 是否循环播放
      • perload 预加载视频(缓存)与autoplay相冲突,设置了autoplay属性,perload属性会失效
      • muted 设置播放时默认静音
  • 音频:
    • 音频的相关属性:音频标签的相关属性和视频相似,但是无法使用 width/height宽高,和 poster预加载

HTML5新增的内容有哪些

  • 新增语义化标签
  • 新增表单输入控件类型
  • 新增表单元素
  • 新增表单属性
  • 新增表单事件
  • 新增多媒体标签

HTML5 新增的语义化标签有哪些

  • header设置页面头部 main设置页面主要内容 footer设置页面底部
  • nav导航栏 aside侧边栏 article加载页面一块独立内容
  • section:相当于div figure加载独立内容(上图下字) figcaption 设置figure的标题
  • hgroup 标题组合标签 mark 高亮显示 dialog 加载对话框标签(必须配合open属性)
  • embed加载插件的标签 video加载视频 audio加载音频(支持格式ogg,mp3,wav

如何理解HTML语义化标签

  1. 方便机器解析代码
    ​ 首先,语义化标签的出现,其主要目的是为了方便我们的机器,即计算机或者浏览器去阅读我们的代码。前端界面在没有样式的前提下,语义化标签同样会呈现一个清晰的结构,方便机器进行阅读。

  2. 方便爬虫搜索(SEO优化)
    搜索引擎的爬虫,是靠语义化标签内部的关键字来确定其上下文的权重。在开发者编写代码时,适当的使用语义化标签,可以有效加大整个页面的权重。能让网站页面的排名在搜索引擎上名次更靠前。

  3. 开发者优势
    ​ 语义化标签极大的提高了我们代码的可读性。在独自开发中,能够清晰的解析页面的结构,方便定位问题的所在;在协同开发的过程中,恰当的使用语义化标签,能够让不同的开发人员清晰的看懂互相的结构,提高各自的开发效率;在大型应用程序开发中,语义化标签能够更好的遵循模块化开发的标准,大大减少页面间的依赖。

CSS3 新增的特性

  • 边框:
    • border-radius 设置边框圆角
    • border-shadow 添加边框阴影(水平位移,垂直位移,模糊半径,阴影尺寸,阴影颜色,insetr(内/外部阴影))
    • border-image:设置图片边框
    • border-image-source 设置图片边框的路径
    • border-image-slice 设置图片边框向内偏移
    • border-image-width 设置图片边框的宽度
    • border-image-outset 设置边框图像区域超出边框的量
    • border-image-repeat 设置边框的图片是否平铺(repeat平铺 round铺满 stretch 拉伸)
  • 背景:
    • background-size 设置背景图片尺寸
    • background-origin 规定 background-position属性相对于什么位置定位
    • background-clip 规定背景的绘制区域(padding-box,border-box,content-box)
  • 设置渐变效果:
    • linear-gradient()线性渐变
    • radial-gradient()径向渐变
  • 设置文本效果:
    • word-break:定义换行模式
    • word-wrap:设置文本自动换行
    • text-overflow:设置文本溢出执行的动作,例如:显示省略号
    • text-shadow:设置文字阴影(水平位移,垂直位移,模糊半径,阴影颜色)
  • 元素转换:transform
    • transform 应用于2D,3D转换,可以将元素旋转,缩放,移动,倾斜
    • transform-origin 可以更改元素变换的基础点(改变xyz轴)
    • transform-style 指定嵌套元素怎么样在三位空间中呈现
  • 2D 转换效果:
    • rotate(xxxdeg) 旋转 translate(x,y)指定元素在二维空间的位移 scale(n)定义缩放转换
  • 3D 转换效果:
    • perspective(n)为3D转换 translate rotate scale
  • 过渡效果:transition
    • transition-property 设置过渡属性名
    • transition-duration 完成过渡效果需要花费的时间
    • transition-timing-function 指定过渡效果的速度
    • Transition-delay 设置过渡开始前的延迟事件
  • 动画效果: animation
    • animation-name 设置绑定动画的名称,为@keyframes动画名称
    • animation-duration 动画需要花费的时间
    • animation-timing-function 动画完成一个周期的方式
    • animation-delay 动画启动前的延迟间隔
    • animation-iteration-count 动画播放次数
    • animation-direction 是否轮流反向播放动画

清除浮动的方式有哪些?请说出各自的优点

  • 出现清除浮动的情况:

    • 高度塌陷:当所有的子元素浮动的时候,且父元素没有设置高度,这时候父元素就会产生高度塌陷。
  • 清除浮动的方式:

    • 给父元素单独定义固定高度

      • 优点:快速简单,代码少
      • 缺点:无法进行响应式布局
    • 父级定义overflow:hidden;zoom:1(针对ie6的兼容)

      • 优点:简单快速、代码少,兼容性较高
      • 缺点:超出部分被隐藏,影响布局
    • 在浮动元素后面加一个空标签,并为他设置属性:clear:both;height:0;overflow:hidden

      • 优点:简单快速、代码少,兼容性较高
      • 缺点:增加空标签,不利于页面优化
    • 父级设置属性 overflow:auto

      • 优点:简单,代码少,兼容性好
      • 缺点:内部宽高超过父级div时,会出现滚动条
    • 高效清除法:给塌陷的元素设置伪类和兼容性

      • .father:after{
                 content:"";
                 clear:both;
                 display:block;
                 height:0;
                 overflow:hidden;
                 visibility:hidden
        }
        .father {
            zoom:1;
        }
        
      • 优点:写法固定,兼容性高

      • 缺点:代码多

    各种定位属性的区别

    position 有四个定位属性:

    1. relative 相对定位 ,不脱离文档流,相对于自身定位
    2. absolute 绝对定位,脱离文档流 相对于父级定位
    3. fixed 固定定位,脱离文档流,相对于浏览器窗口定位
    4. static 默认值,元素出现在正常的流中

    水平垂直居中的方式

    首先设置好需要用到的标签:

    1. 绝对定位配合外边距

    相对父级上边和左边,或者下边和右边各移动50%,同时通过外边距减去自身的宽高各一半的大小。有着所有放法中最好的兼容性,但是必须知晓盒子的具体大小。

    .container{
          position: absolute;
           top: 50%;
          left: 50%;
          margin-top: -150px;
          margin-left: -150px;
     }
    
    1. 绝对定位配合外边距二

    将盒子的上下左右定位全部设置为0,同时设置外边距自适应

    .container{
       position: absolute;
       top: 0;
       bottom: 0;
       left: 0;
       right: 0;
       margin: auto;
     }
    
    1. 绝对定位配合偏移

    第一种方法的升级版,放弃外边距的写法,使用CSS3中的新属性transform: translate(-50%,-50%); 来直接减去盒子自身的50%大小,不需要知道盒子的具体大小。

    .container{
         position: absolute;
         top: 50%;
         left: 50%;
         transform: translate(-50%,-50%);
      }
    
    1. 弹性布局

    css3引入的新布局模式,可以设置各种属性来有效排列容器内的元素。需要设置在父级上,但是父级必须设置固定有效的高度,不然无法垂直居中无法实现。

    body{
         display: flex;
         justify-content: center;
         align-items: center;
     }
    
    1. 网格布局

    与弹性布局相似,但是网格布局的优势在于网格布局分布元素是逐行分布,保留块元素特性;而弹性布局设置居中后,所有块级子元素会获得行内元素的特性。

     body{
      	display: grid;
        align-items: center;
        justify-content: center;
     }
    
    1. 使用类似表格的布局特性

    给容器赋予类似

    标签的布局特性,,同时配合文字居中属性。前提是容器父级拥有确定有效的宽高,即不能设置为百分比,使用vw,vh等单位也同样不行。

     .container{
        display: table-cell;
        vertical-align: middle;
        text-align: center;
    }
    
    1. 外边距左右自适应配合弹性盒子

    父级使用弹性布局,使元素垂直居中,同时子元素设置外边距自适应来达到水平居中的效果。

     body{
          display: flex;
          align-items: center;
    }
    
     .container{
         margin: 0 auto;
     }
    
    1. 使用display:box 并设置相应属性

    使用display的属性之一,写法上和第三种方法相似,但是目前主流浏览器都不支持,虽然可以通过兼容性写法来使用,但是不推荐(作者在使用时仅成功实现了垂直居中,慎用!)

    body{
        display: box;
        box-pack: center;
        box-orient: vertical;
        display: -webkit-box;
        -webkit-box-pack: center;
        -webkit-box-orient: vertical;
     }
    
    1. 使用内边距撑开容器

    在不对容器设置宽高,但是里面存在内容的情况下,设置上下左右相等的内边距,可以将容器撑开,并且内容会水平垂直居中。但由于块级标签的特性,水平方向上会受到父级容器宽度的影响。

    .container{
        padding: 50px;
     }
    
    1. 文字居中与同等行高

    在知晓父级容器高度的情况下,给块级子元素设置文字居中属性,以及和父级高度相等的行高,可以使内容水平垂直居中,使用在单行文本内容的情况下效果最佳。

    p{
      text-align: center;
      line-height: 300px;
    }
    

点击查看详细解释

标准盒子模型和怪异盒子模型

一、概念
标准盒模型采用的W3C标准,盒子的content内容部分由width宽度和height高度决定,添加padding内边距或border外边框后,宽高都会进行相应增长;
②怪异盒模型也称为IE盒模型,是IE浏览器设计元素时遵循的规则。怪异盒模型的宽高在div盒子初次设置时就已经规定,添加padding或者border,会从中减少content内容的占据区域,来为padding和border制造空间,宽高不会相对应的进行增长。
二、计算方法
标准盒子模型的内容计算:content=width*height,
盒子的总宽度=width+padding(左右)+margin(左右)+border(左右)
总宽度等于所有附加值,偏移值的总和;

怪异盒子模型的内容计算:content=width*height+padding+border
盒子的总宽度=width+margin(左右)此时的width宽度已经包含了padding和border的值;

三、默认盒模型
在编辑html文档时,只要在顶部声明了DOCTYPE,默认都会使用标准盒子模型。如果没有进行声明,则会根据浏览器类型自行调整;

四、盒模型转换
在CSS中对相应的div盒子进行box-sizing属性的设置,就可以让盒模型在标准和怪异中进行转换。
box-sizing:content-box; 盒模型设置为w3c标准盒子模型
box-sizing:border-box; 盒模型设置为怪异(IE)盒子模型
点击查看详细解释

如何让chrome浏览器显示小于12px的文字?

  • 添加谷歌私有属性: -webkit-text-size-adjust:none
  • 使用transform缩放:-webkit-transform:scale();

CSS选择器有哪些,优先级如何计算?

  • CSS 基础选择器:元素选择器,id选择器,群组选择器,类选择器,*通配符选择器,后代选择器
  • CSS 伪类选择器: :link/visited/hover/active
  • CSS3选择器:空格 > +相邻兄弟选择器 ~通用选择器(查找后面所有)
  • 结构伪类选择器:
    • 查找第几个nth-child(n)
    • 查找同一类型第几个nth-of-type
    • 查找唯一类型 only-of-type
    • 属性选择器:根据标签属性查找 [attr=value]
    • : root 查找根元素html标签
    • : empty 查赵空标签
  • 目标伪类选择器:(表单)
    • :enabled 查找可以使用的标签
    • :disabled 查找禁止使用的标签
    • :checked 查找被选中的标签
  • 伪元素选择器 :
    • :selection设置选中文本内容的高亮显示(只能用于背景色和文本颜色)
    • 否定伪类选择器 not()
    • 语言伪类选择器 lang()
  • 优先级(权重):
    • 元素选择器 1
    • 伪元素选择器 1
    • class选择器 10
    • 伪类选择器 10
    • 属性选择器 10
    • Id选择器 100
    • 内联样式 1000
    • 继承样式 0
    • !important 绝对优先属性
    • 包含选择器权重为权重之和

哪些CSS属性可以继承

  • CSS继承特性主要是文本方面
  • 所有元素可继承:visibility(元素显示)和 cursor(鼠标指针)
  • 块级元素可继承:text-indent(段落首行缩进)和 text-align(文本居中方式)
  • 列表元素可继承:list-style(设置列表标识符样式),list-style-type(设置列表标识符样式),list-style-position(设置列表标识符位置),list-style-image(自定义标识符样式)
  • 内联元素可继承:letter-spacing(字符间距),word-spacing(段落间距),line-height(行高),color(文字颜色),font(字体种类),font-family(字体类型),font-size(字体大小),font-style(设置字体风格),font-variant(字母大写转换),font-weight(字体粗细),text-decoration(文字下划线),text-transform,direction。

这里是万物之恋,我们下次再见了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值