1,行内元素有哪些?块级元素有哪些?空元素有哪些?CSS的盒模型?  

  块级元素:div p h1 h2 h3 h4 form ul li

  行内元素: a b br i span input select

  行内块级元素   img   input

  空元素:即没有内容的HTML元素,例如:br、meta、hr、link、input、img

  css盒模型:content,padding,border ,margin(盒模型顺序)

  css盒模型分为:标准盒模型和IE盒模型

  标准盒模型:实际宽高就是自身的宽高

  IE盒模型:实际宽高是自身宽高+padding+border

  标准盒模型转换为IE盒模型:box-sizing:border-box;

  display:inline  强制将块级元素转换为行内元素

  display:block   强制将行内元素转换为块级元素    并不是实际意义上的块级元素,只是可以设置宽高

  用display:inline-block 强制将块级元素转为行内元素。注意有3px间距。letter-spacing可以消除这个间距

2,描述css reset的作用和用途。

  reset重置浏览器的css默认属性 浏览器的品种不同,样式不同,然后重置,让他们统一。

3,如何减轻服务器对图片请求的压力

  使用雪碧图,减少服务器请求图片的数量

4,CSS实现垂直水平居中

  HTML结构:

    <div class="wrapper">
<div class="content"></div>
</div>

  CSS:

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

5,简述一下src与href的区别

  href 是指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,用于超链接。

  src是指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部。

6、什么是css hack ?css hack解决的问题?

  CSS hack是通过在CSS样式中加入一些特殊的符号,让不同的浏览器识别不同的符号(什么样的浏览器识别什么样的符号是有标准的,CSS hack就是让你记住这个标准),以达到应用不同的CSS样式的目的

  CSS hack用来解决有些css属性在不同浏览器中显示的效果不一样的问题(参考文档:http://www.kwstu.com/Admin/ViewArticle/201409011604277330)

  不同浏览器的内核:IE浏览器的内核Trident、 Mozilla的Gecko、google的WebKit、Opera内核Presto,Firefox:gecko内核;

7、px,em,rem的区别

  px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。

  em得值不是固定的,并且em会继承父级元素的字体大小。

  rem的大小依赖于根元素   html
  浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em

8,有哪些方式可以对一个DOM设置它的CSS样式? 

  外部样式表,引入一个外部css文件

  内部样式表,将css代码放在标签内部

  内联样式,将css样式直接定义在 HTML 元素内部

9、CSS都有哪些选择器? 派生选择器(用HTML标签申明)

  id选择器(用DOM的ID申明)

  类选择器(用一个样式类名申明)

  属性选择器(用DOM的属性申明,属于CSS2,IE6不支持,不常用,不知道就算了)

  除了前3种基本选择器,还有一些扩展选择器,包括

  后代选择器(利用空格间隔,比如div .a{  })

  群组选择器(利用逗号间隔,比如p,div,#a{  })

  选择器越特殊,选择指向越准确,优先级越高。

  css 奇数、偶数选择器。奇数:p:nth-child(odd);偶数:p:nth-child(even)

10,rgba()和opacity的透明效果有什么不同?

  rgba()和opacity都能实现透明效果,但最大的不同是opacity作用于元素,以及元素内的所有内容的透明度,

  而rgba()只作用于元素的颜色或其背景色。(设置rgba透明的元素的子元素不会继承透明效果!)

11,Sass、LESS是什么?大家为什么要使用他们?

   他们是CSS预处理器。他是CSS上的一种抽象层。他们是一种特殊的语法/语言编译成CSS。

  例如Less是一种动态样式语言. 将CSS赋予了动态语言的特性,如变量,继承,运算, 函数. LESS 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可一在服务端运行 (借助 Node.js)。

  为什么要使用它们?

  结构清晰,便于扩展。

  可以方便地屏蔽浏览器私有语法差异。这个不用多说,封装对浏览器语法差异的重复处理,减少无意义的机械劳动。

  可以轻松实现多重继承。

  完全兼容 CSS 代码,可以方便地应用到老项目中。LESS 只是在 CSS 语法上做了扩展,所以老的 CSS 代码也可以与 LESS 代码一同编译。

12、什么是外边距重叠?重叠的结果是什么?

  答案:

  外边距重叠就是margin-collapse。

  在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。

  折叠结果遵循下列计算规则:

  1.       两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。

  2.       两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。

  3.       两个外边距一正一负时,折叠结果是两者的相加的和。

13,css强制不换行,强制换行

  强制不换行 
  p { white-space:nowrap; }

  自动换行 
  p { word-wrap:break-word; }

  强制英文单词断行 
  p { word-break:break-all; } (设置强制将英文单词断行,需要将行内元素设置为块级元素。)

  超出显示省略号 
  p{text-overflow:ellipsis;overflow:hidden;}

  white-space: normal|pre|nowrap|pre-wrap|pre-line|inherit; 
    white-space 属性设置如何处理元素内的空白 
    normal 默认。空白会被浏览器忽略。 
    pre 空白会被浏览器保留。其行为方式类似 HTML 中的 pre 标签。 
    nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 br 标签为止。 
    pre-wrap 保留空白符序列,但是正常地进行换行。 
    pre-line 合并空白符序列,但是保留换行符。 
    inherit 规定应该从父元素继承 white-space 属性的值。

  word-wrap: normal|break-word; 
    word-wrap 属性用来标明是否允许浏览器在单词内进行断句,这是为了防止当一个字符串太长而找不到它的自然断句点时产生溢出现象。 
    normal: 只在允许的断字点换行(浏览器保持默认处理) 
    break-word:在长单词或URL地址内部进行换行 
    word-break: normal|break-all|keep-all;

  word-break 属性用来标明怎么样进行单词内的断句。 
    normal:使用浏览器默认的换行规则。 
    break-all:允许再单词内换行 
    keep-all:只能在半角空格或连字符处换行

14,如何让一个未知高度的div垂直居中?

  1,display:table-cell:让标签元素以表格单元格的形式展示。父级:display:table;子元素:display:table-cell(不兼容ie6,ie7)

  2,给要垂直居中的div再包一个div。然后让第一层div:position:relative,第二层div:{position:absolute;top:50%},第三层:{position:relative;top:-50%}

  3,flex布局

  4,

display:box;
display: -webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;
box-pack:center;
box-align:center;

15,css的上下文选择器

  1,后代选择器

  2,子元素选择器

  2,相邻兄弟选择器

前端面试问题css汇总的更多相关文章

  1. 2019前端面试系列——CSS面试题

    盒模型 /* 红色区域的大小是多少?200 - 20*2 - 20*2 = 120 */ .box { width: 200px; height: 200px; padding: 20px; marg ...

  2. 前端面试之CSS权重问题!

    前端面试之CSS权重问题! 下面的权重按照从小到大来排列! 1.通用选择器(*) 2.元素(类型)选择器 权重1 3.类选择器 权重10 4.属性选择器 5.伪类 6.ID 选择器 权重100 7.内 ...

  3. 前端面试之CSS常用的选择器!

    前端面试之CSS常用的选择器! 标签选择器 <style> /* <!-- 标签选择器 :写上标签名 -->*/ p { color: green; } div { color ...

  4. 前端面试问题js汇总

    1.javascript的typeof返回哪些数据类型 Object number function boolean underfind 2,数组方法pop() push() unshift()shi ...

  5. 前端面试问题html汇总

    1.对WEB标准以及W3C的理解与认识 结构层 html :表示层  css:行为层:js; 标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索机率.使用外链css和js脚本.结构行为表现的分离.文件下 ...

  6. 前端面试:css预处理

    css预处理定义: 定义了一种新的语言,其基本思想是用一种专门编程语言,为css增加了一些编程的特性,将css作为目标生成文件,然后开发者就只要使用这种语言进行编码工作. 几种预处理语言 sass l ...

  7. 2019前端面试系列——JS面试题

    判断 js 类型的方式 1. typeof 可以判断出'string','number','boolean','undefined','symbol' 但判断 typeof(null) 时值为 'ob ...

  8. 2019前端面试系列——Vue面试题

    Vue 双向绑定原理        mvvm 双向绑定,采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty()来劫持各个属性的 setter.getter,在数 ...

  9. 2019前端面试系列——JS高频手写代码题

    实现 new 方法 /* * 1.创建一个空对象 * 2.链接到原型 * 3.绑定this值 * 4.返回新对象 */ // 第一种实现 function createNew() { let obj ...

随机推荐

  1. 实现了一下Mp3播放器的功能

    实现了一下Mp3播放器的功能 简单的实现了一下Mp3播放器的功能,见面比较的不美好,讲 究看一下就好了. 主要功能: 1.显示文件列表,主要参照了一位前辈的代码,谢咯. 2.可以实现播放开始,暂停. ...

  2. windows安装AnyProxy 配合夜神模拟器抓包

    AnyProxy是阿里巴巴基于 Node.js 开发的一款开源代理服务器.做为中间代理服务器,它可以收集所有经过它的http请求流量(包括https明文内容):它提供了友好的web界面,便于直观的查看 ...

  3. Jupter 7个进阶功能

    1.  执行shell命令 Shell是一种与计算机进行文本交互的方式. 一般来讲,当你正在使用Python编译器,需要用到命令行工具的时候,要在shell和IDLE之间进行切换. 但是,如果你用的是 ...

  4. Matlab练习——rpy2tr函数与自己实现的ZYX欧拉角的结果不同的问题

    问题背景:在根据<机器人导论>这本书的Z-Y-X欧拉角原理用Matlab实现旋转矩阵求解时,发现与直接调用机器人工具箱中的rpy2tr()函数得出的结果并不相同. 首先:先检查自己写的函数 ...

  5. linux centos 基本命令

    init 3 进入命令行界面. init 5 进入图形界面. ifconfig 查询IP地址. nmtui 设置网卡. su - root 是切换到root账号使用,使用的是root用户的环境变量:s ...

  6. 大数据入门到精通4--spark的rdd的map使用方式

    学习了之前的rdd的filter以后,这次来讲spark的map方式 1.获得文件 val collegesRdd= sc.textFile("/user/hdfs/CollegeNavig ...

  7. Hadoop详细安装步骤

    hadoop安装:(分布式模式)参考地址:http://dblab.xmu.edu.cn/blog/install-hadoop/ http://dblab.xmu.edu.cn/blog/insta ...

  8. this.$router

    router.go(n)这个方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n) router.push(location)想要导航 ...

  9. openstack(Pike 版)集群部署(七)--- Cinder 部署

    一.介绍 参照官网部署:https://docs.openstack.org/cinder/pike/install/index-rdo.html 继续上一博客进行部署:http://www.cnbl ...

  10. Websocket实现群聊、单聊

    Websocket 使用的第三方模块:gevent-websocket 群聊 ws群聊.py中的内容 from flask import Flask, request, render_template ...