1. 行内元素和块级元素有哪些?

  • 行内元素:

    1. 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
    1. <a>     //标签可定义锚  
      <abbr>     //表示一个缩写形式  
      <acronym>     //定义只取首字母缩写  
      <b>     //字体加粗  
      <bdo>     //可覆盖默认的文本方向  
      <big>     //大号字体加粗  
      <br>     //换行  
      <cite>     //引用进行定义  
      <code>    // 定义计算机代码文本  
      <dfn>     //定义一个定义项目  
      <em>     //定义为强调的内容  
      <i>     //斜体文本效果  
      <img>     //向网页中嵌入一幅图像  
      <input>     //输入框  
      <kbd>     //定义键盘文本  
      <label>     //标签为 input 元素定义标注(标记)  
      <q>     //定义短的引用  
      <samp>     //定义样本文本  
      <select> // 创建单选或多选菜单  
      <small>     //呈现小号字体效果  
      <span>     //组合文档中的行内元素  
      <strong> //加粗  
      <sub>     //定义下标文本  
      <sup>     //定义上标文本  
      <textarea>     //多行的文本输入控件  
      <tt>     //打字机或者等宽的文本效果  
      <var>    // 定义变量
  • 块级元素:

    1. 1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
    1. <address>//定义地址  
      <caption>//定义表格标题  
      <dd>    //定义列表中定义条目  
      <div>     //定义文档中的分区或节  
      <dl>    //定义列表  
      <dt>     //定义列表中的项目  
      <fieldset> //定义一个框架集  
      <form> //创建 HTML 表单  
      <h1>    //定义最大的标题  
      <h2>    // 定义副标题  
      <h3>     //定义标题  
      <h4>     //定义标题  
      <h5>     //定义标题  
      <h6>     //定义最小的标题  
      <hr>     //创建一条水平线  
      <legend>    //元素为 fieldset 元素定义标题  
      <li>     //标签定义列表项目  
      <noframes>    //为那些不支持框架的浏览器显示文本,于 frameset 元素内部  
      <noscript>    //定义在脚本未被执行时的替代内容  
      <ol>     //定义有序列表  
      <ul>    //定义无序列表  
      <p>     //标签定义段落  
      <pre>     //定义预格式化的文本  
      <table>     //标签定义 HTML 表格  
      <tbody>     //标签表格主体(正文)  
      <td>    //表格中的标准单元格  
      <tfoot>     //定义表格的页脚(脚注或表注)  
      <th>    //定义表头单元格
  • 可变元素
    根据上下文语境决定转为块级元素还是行内元素

    1. 1
      2
      3
      4
      5
      6
      7
    1. <button>     //按钮
      <del>    // 定义文档中已被删除的文本
      <iframe>     //创建包含另外一个文档的内联框架(即行内框架)
      <ins>     //标签定义已经被插入文档中的文本
      <map>     //客户端图像映射(即热区)
      <object>     //object对象
      <script>     //客户端脚本

2.XHTML和HTML有什么区别

HTML是一种基本的WEB网页设计语言,XHTML是一个基于XMl的置标语言
最主要的不同
XHTML元素必须被正确地嵌套。
XHTML元素必须被关闭
标签名必须用小写字母
XHTMl文档必须拥有根元素

3.DISPLAY:NONE和VISIBLITY:HIDDEN的区别是什么?

display:隐藏对应元素但不挤占该元素原来的空间。
visiblity: 隐藏对应的元素并且挤占该元素原来的空间。
即是,使用CSS display:none属性后,HTML元素(对象)的宽度、高度等各种属性都将“丢失”;而使用visibility:hidden属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置任然存在。

4.什么是语义化的HTML?

1、用正确的标签做正确的事情。
2、html语义化让页面的内容结构化,结构更清晰,便于对浏览器,搜索引擎解析;
3、即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;
4、搜索引擎的爬虫也依赖于HTML标记确定上下文和各个关键字的权重,利用SEO;
5、使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

5.常见的浏览器内核有哪些?

Trident内核:IE,MaxThon,TT,The Word,360,搜狗浏览器等。[又称为MSHTML]
Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等;
Presto内核:Opera7及以上。[Opera内核原为:Presto,现为:Blink]
Webkit内核:Safari,Chrome等。[Chrome的:Blink(Webkit的分支)]

6.超链接访问过后HOVER样式就不出现的问题时什么?如何解决?

被点击访问过的超链接样式不再具有hover和active了,解决方式是改变CSS属性的排列顺序:L-V-H-A(linked, visited, hover, active)。

7.什么是CSS HACK?IE6,7,8的HACK分别是什么?

针对不同的浏览器写不同的CSS Code的过程,就是CSS Hack。实例如下:

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
  1. #test{
       width: 300px;
       height: 300px;
       background-color: blue;
       background-color: red\9; /*  all ie */
       background-color: yellow\0; /* ie8 */
       + /* ie7 */
       _background-color: orange; /* ie6  */
       :root #test{
           background: purple\9; /* ie9 */
       }
  2.  
  3.    @media all and {min-width: 0px} #test{background-color: black\0;} /* opera */
       @media screen and {-webkit-min-device-pixel-ratio: 0 } {#test { padding: 0px; max-width: 100%; box-sizing: border-box; word-wrap: break-word !important;">}

@media可以针对不同的媒体类型定义不同的样式。特别是如果你需要设计响应式的页面,@media是非常有用的。当你重置浏览器大小的过程中,页面也会根据浏览器宽度和高度重新渲染页面。

8.HTML5有哪些新特性,移除了哪些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?

HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,多任务等功能的增加。
绘画canvas
用于媒介回放的video和audio元素
本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失;
sessionStorage的数据在浏览器关闭后自动删除
语意化更好的内容元素,比如article,footer,header,nav,section
表单控件:calendar,date,time,email,url,search
新的技术webworker,websocktGeolocation
移除的元素
纯表现的元素:basefont,big,center,font,s,strike,tt,u;
对可用性产生负面影响的元素:frame,frameset,noframes;
支持HTML5新标签:
IE8/IE7/IE6支持通过document,createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式。

9.请描述一下COOKIES、SESSIONSTORAGE和LOCALSTORAGE区别?

cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
cookie数据始终在同源的http请求中携带(即使不需要),即会在浏览器和服务器间来回传递。
sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存
存储大小:
cookie数据大小不能超过4K。
sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
有期时间:
localStorage:存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
sessionStorage:数据在当前浏览器窗口关闭后自动删除
cookie:设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭

10.如何实现浏览器内多个标签页之间的通信?

 调用localstorage,cookies等本地存储方式
 WebSocket、SharedWorker
 localstroge另一个浏览器上下文被添加、删除或修改时,它都会触发一个事件,我们通过监听事件,控制它的值来进行页面信息通信。
 注意quirks:Safari在无痕迹模式下设置localstorge值抛出QuotExceededError的异常。

11.清除浮动有哪些方式?比较好的方式是哪一种?

1、父级div定义height。
2、结尾处加空div标签clear:both。
3、父级div定义伪类:after和zoom。
4、父级div定义overflow:hidden。
5、父级div定义overflow:auto。
6、父级div也浮动,需要定义宽度。
7、父级div定义display:table。
8、结尾处加br标签clear:both。
比较好的是第3种,好多网站都这样用

12.PX、EM、REM的区别?

1、px像素。绝对单位,像素px是相对于显示器屏幕分辨率而言的,是一个虚拟单位。是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定精度DPI。
2、em是相对长度单位,相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对浏览器的默认字体尺寸。它会继承父级元素的字体大小,因此并不是一个固定的值。
rem是CSS3新增的一个相对单位(root em,根em),使用rem为元素设定字体大小事,仍然是相对大小但相对的只是HTML根元素。
4、区别:IE无法调用那些使用px作为单位的字体大小,而em和rem可以缩放,rem相对的只是HTML根元素。这个单位可谓集相对大小和绝对大小的优点于一身,通过它既可以做到只修改根元素就成比例地调整所有字体大小,又可以避免字体大小逐层复合的连锁反应。目前,除了IE8及更早版本外,所有浏览器已支持rem。

13.CSS3新特性有哪些?

1、颜色:新增RGBA、HSLA模式
2、文字阴影(text-shadow)
3、边框:圆角(border-radius)边框阴影:box-shadow
4、盒子模型:box-sizing
5、背景:background-size设置背景图片的尺寸,background-origin设置背景图片的原点,background-clip设置背景图片的裁剪区域,以“,”分隔可以设置多背景,用于自适应布局
6、渐变:linear-gradient、radial-gradient
7、过渡:transition可实现动画
8、自定义动画
9、在CSS3中唯一引入的伪元素是::selection
10、多媒体查询、多栏布局
11、border-image
12、2D转换:transform:translate(x,y)rotate(x,y)skew(x,y)scale(x,y)
13、3D转换

14.DISPLAY有哪些值?说明它们的作用。

1、block 块类型。默认宽度为父元素宽度,可设置宽高,换行显示。
2、none 缺省值。像行内元素类型一样显示。
3、inline 行内元素类型。默认宽度为内容宽度,不可设置宽高,同行显示。
4、inline-block 默认宽度为内容宽度,可以设置宽高,同行显示。
5、list-item 像块类型元素一样显示,并添加样式列表标记。
6、table 此元素会作为块级表格来显示。
7、inherit 规定应该从父元素继承display属性的值。

15.描述CSS RESET的作用和用途?

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

16.项目做过哪些性能优化?

减少 HTTP 请求数
减少 DNS 查询
使用 CDN
避免重定向
图片懒加载
减少 DOM 元素数量
减少 DOM 操作
使用外部 JavaScript 和 CSS
压缩 JavaScript 、 CSS 、字体、图片等
优化 CSS Sprite
使用 iconfont
字体裁剪
多域名分发划分内容到不同域名
尽量减少 iframe 使用
避免图片 src 为空
把样式表放在 中
把脚本放在页面底部

17.水平垂直居中。

第一种

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
  1. #container{
       position:relative;
    }
    #center{
       width:100px;
       height:100px;
       position:absolute;
       top:50%;
       left:50%;
       transform: translate(-50%,-50%);
    }

第二种

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
  1. #container{
       position:relative;
    }
    #center{
       width:100px;
       height:100px;
       position:absolute;
       top:50%;
       left:50%;
       margin:-50px 0 0 -50px;
    }

第三种

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
  1. #container{
       position:relative;
    }
    #center{
       position:absolute;
       margin:auto;
       top:0;
       bottom:0;
       left:0;
       right:0;
    }

第四种

  1. 1
    2
    3
    4
    5
  1. #container{
       display:flex;
       justify-content:center;
       align-items: center;
    }

18.四种定位的区别。

static 是默认值
relative 相对定位 相对于自身原有位置进行偏移,仍处于标准文档流中
absolute 绝对定位 相对于最近的已定位的祖先元素, 有已定位(指 position不是 static的元素)祖先元素, 以最近的祖先元素为参考标准。如果无已定位祖先元素, 以 body元素为偏移参照基准, 完全脱离了标准文档流。
fixed 固定定位的元素会相对于视窗来定位,这意味着即便页面滚动,它还是会停留在相同的位置。一个固定定位元素不会保留它原本在页面应有的空隙。

19.移动端适配怎么做的?

使用媒体查询做的响应式布局,根据不同屏幕宽度加载不同 css.

20.右边宽度固定,左边自适应。

第一种

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
  1. <style>
    body{
       display: flex;
    }
    .left{
       background-color: rebeccapurple;
       height: 200px;
       flex: 1;
    }
    .right{
       background-color: red;
       height: 200px;
       width: 100px;
    }
    </style>
    <body>
       <div class="left"></div>
       <div class="right"></div>
    </body>

第二种

  1. 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
  1. <style>
       div {
           height: 200px;
       }
       .left {
           float: right;
           width: 200px;
           background-color: rebeccapurple;
       }
       .right {
           margin-right: 200px;
           background-color: red;
       }
    </style>
    <body>
       <div class="left"></div>
       <div class="right"></div>
    </body>

21.使用CSS实现一个持续的动画效果。

  1. 1
    2
    3
    4
    5
  1. animation:mymove 5s infinite;
    @keyframes mymove {
       from {top:0px;}
       to {top:200px;}
    }

4.哪些常见操作会造成内存泄漏?
内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。
垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。如果一个对象的引用数量为 0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。
setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。
闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)
5.线程与进程的区别
一个程序至少有一个进程,一个进程至少有一个线程.
线程的划分尺度小于进程,使得多线程程序的并发性高。
另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。
从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

前端常用面试题目及答案-HTML&CSS篇的更多相关文章

  1. 【转】React 常用面试题目与分析

    作者:王下邀月熊链接:https://zhuanlan.zhihu.com/p/24856035来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本文有一定概率为水文,怕 ...

  2. Android面试题目及其答案

    转自:http://blog.csdn.net/wwj_748/article/details/8868640 Android面试题目及其答案 1.Android dvm的进程和Linux的进程, 应 ...

  3. 33条C#、.Net经典面试题目及答案

    33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如".NET中类和结构的区别"."ASP.NET页面之间传递值的几种方式? ...

  4. 33条C#、.Net经典面试题目及答案[zt]

    33条C#..Net经典面试题目及答案[zt] 本文集中了多条常见的C#..Net经典面试题目例如“.NET中类和结构的区别”.“ASP.NET页面之间传递值的几种方式?”,并简明扼要的给出了答案,希 ...

  5. 2017最全的php面试题目及答案总结

    最近在网上看到很多的小伙伴们都在询问如何应对php面试,这个对于有工作经验和实战项目的小伙伴来说是没什么问题的,但是对于刚刚学习完php的小伙伴们.php面试却是一个很重要的一步,那么今天php中文网 ...

  6. Web前端面试题目及答案汇总

    HTML/CSS部分 1.什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元素的边框(border),元素的外边 ...

  7. [转]asp.net c# 网上搜集面试题目(附答案)

    本文转自:http://www.cnblogs.com/hndy/articles/2234188.html 1.String str=new String("a")和String ...

  8. 2018最新Web前端经典面试试题及答案

    javascript: JavaScript中如何检测一个变量是一个String类型?请写出函数实现 typeof(obj) === "string" typeof obj === ...

  9. 网上找的hadoop面试题目及答案

    1.Hadoop集群可以运行的3个模式? 单机(本地)模式 伪分布式模式全分布式模式2. 单机(本地)模式中的注意点? 在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM ...

随机推荐

  1. HA集群基本概念详解

    一.高可用集群的定义 二.高可用集群的衡量标准 三.高可用集群的层次结构 四.高可用集群的分类 五.高可用集群常用软件 六.共享存储 七.集群文件系统与集群LVM 八.高可用集群的工作原理 一.高可用 ...

  2. 第二节 PHPUnit测试的剖析

    现在,让我们仔细看看测试结构的样子. 让我们从一个简单的测试用例开始,它将显示基本的PHPUnit测试结构. 以下代码片段是测试用于排序数组的两个PHP函数的一个非常基本的示例:asort()用于对数 ...

  3. WebIDE

    1 1 1 WebIDE 是什么? WebIDE 是 一款在线集成开发环境( Integrated Development Environment ). 开发者只需要一个浏览器就可以编写代码,并在We ...

  4. NativeScript Vue 和 Weex 对比与分析

    Weex Weex是一个项目,由阿里巴巴创造.它的口号是“一次编写,到处运行”,这意味着你可以使用完全相同的代码库构建网站(HTML5),Android和iOS的应用.目前有几个Weex的生产项目,在 ...

  5. Search Engine —— Regular Expression(Spider)

    Regular Expression,即正则表达式:用来查找符合某些负责规则的字符串的需要.它真是用于描述这些规则的工具. 1. \b 是一个元字符,用来匹配一个位置,代表着单词的开头或结尾,也就是单 ...

  6. navicat for mysql 2003错误

    最近又一次碰到navicat for mysql 2003错误,之前碰到好几次了,问题再次出现还是有些不知所措,所以记下来,再次遇到时就可以迎韧有余了. 解决方案1: 重启防火墙:关闭再重新开启. 解 ...

  7. Fiddler配置代理hosts的方法

    1 背景 fiddler本身代理hosts配置表,修改后,可以省去在手机等代理使用者的系统中修改hosts 2 使用场景 客户端升级测试 3 修改方法 3.1 打开fiddler,工具栏-->T ...

  8. query的list()和iterate()区别 面试题

    query的list()和iterate()区别 1.返回的类型不一样,list返回List,iterate返回iterator 2.查询策略不同. 获取数据的方式不一样,list会直接查询数据库,i ...

  9. 除了IE浏览器,其他浏览器都联不上网怎么办~转载百度经验

    百度师傅最快的到家服务,最优质的电脑清灰 百度经验:jingyan.baidu.com 有个网友遇到一个非常奇怪的上网问题,刚才始,发现QQ不能登录,后来接着发现火狐浏览器也打不开网页,刚开始,以为只 ...

  10. c /c++变参函数(转)

    原文转自 https://blog.csdn.net/wwzcx/article/details/8940092 实现c/c++语言的变参函数. 变参函数 :void fun(para,...) 变参 ...