0
点赞
收藏
分享

微信扫一扫

前端面试题----HTML与CSS(随机排序)

陆佃 2022-04-27 阅读 92
前端

1 Doctype 作用? 严格模式与混杂模式如何区分?它们有何意义?

(1)、 声明位于文档中的最前面,处于 标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档。

(2)、严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。

(3)、在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。

(4)、DOCTYPE 不存在或格式不正确会导致文档以混杂模式呈现。

2 五大浏览器以及内核?

Chrome 内核 Blink

Safari 内核 Webkit

Opera 内核 Blink

Firefox 内核 Gecko

IE 内核 Trident

3 对语义化如何理解?

用正确的标签做正确的事情!(根据元素的内容选择合适的标签)

HTML 语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;

在没有样式 CCS 情况下也以一种文档格式显示,并且是容易阅读的。

搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。

使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

4 css样式引入方式

行内引入:css样式写在标签上。

内嵌引入: css样式写在style标签中,css样式是嵌入在当前页面中。

外链引入: 通过link引入外边的css文件。

5 css基本选择器?那权重呢?

类型选择器 : div{css样式}

类选择器 : .类名{css样式}

ID选择器:   #id名{css样式}

通配符选择器 : *{css样式}

以下是权重的规则:标签的权重为 1,class 的权重为 10,id 的权重为 100,以下例子是演示各种定义的权重值:/_ 权重为 1_ /div{}/_ 权重为 10_/.class1{}/_ 权重为 100_/#id1{}/_ 权重为 100+1=101_/#id1 div{}/_ 权重为 10+1=11_ /.class1 div{}/_ 权重为 10+10+1=21_/.class1 .class2 div{} 如果权重相同,则最后定义的样式会起作用,但是应该避免这种情况出现        

6 css复合选择器有哪些?

后代选择器  选择器1 选择器2{css样式}

子代选择器   选择器1 > 选择器2{css样式}

交集选择器 选择器1选择器2{css样式}

群组选择器  选择器1,选择器2...,选择器n{css样式}

伪类选择器   选择器:伪类{css样式}

7 XHTML 和 HTML 有什么区别?

(1)、HTML 是一种基本的 WEB 网页设计语言,XHTML 是一个基于 XML 的置标语言最主要的不同:

(2)、XHTML 元素必须被正确地嵌套。

(3)、XHTML 元素必须被关闭。标签名必须用小写字母。

(4)、XHTML 文档必须拥有根元素。

8 请描述一下 cookies,sessionStorage 和 localStorage 的区别?

cookie 在浏览器和服务器间来回传递。 sessionStorage 和 localStorage 不会 sessionStorage 和 localStorage 的存储空间更大;sessionStorage 和 localStorage 有更多丰富易用的接口;sessionStorage 和 localStorage 各自独立的存储空间;

9 为什么要初始化 CSS 样式?

因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对 CSS 初始化往往会出现浏览器之间的页面显示差异。当然,初始化样式会对 SEO 有一定的影响,但鱼和熊掌不可兼得,但力求影响最小的情况下初始化。

10 块元素以及行内元素有什么区别?

块元素 : div,p,h1~h6,ul,li,ol,dt,dd,header,footer,nav。。。

特点 :

独占一行,可以设置宽高

如果不设置宽,它的宽等同于父元素内容的宽

如果不设置宽,高是由内容撑开

完全支持盒模型属性

行内元素 : a,b,span,del,em,i,label,sup,sup,time,mark,select...

特点 :

不独占一行,并排排列

不能设置宽高,宽高是由内容撑开

不支持上下外边距

作为其他的行内元素或者文本的父盒子

行内块元素:img,input(表单元素,出去form)

在一行排列 

宽高生效

11 link 和@import 的区别是?

(1)link 属于 XHTML 标签,而@import 是 CSS 提供的。

(2)页面被加载的时,link 会同时被加载,而@import 引用的 CSS 会等到页面被加载完再加载。

(3)import 只在 IE5 以上才能识别,而 link 是 XHTML 标签,无兼容问题。

(4)link 方式的样式的权重 高于@import 的权重。

12 写出几种 IE6 BUG 的解决方法?

(1)双边距 BUG float 引起的 使用 display

(2)3 像素问题 使用 float 引起的 使用 dislpay:inline -3px

(3)超链接 hover 点击后失效 使用正确的书写顺序 link visited hover active

(4)Ie z-index 问题 给父级添加 position:relative

(5)Png 透明 使用 js 代码 改

(6)Min-height 最小高度 !Important 解决’

(7)select 在 ie6 下遮盖 使用 iframe 嵌套

(8)为什么没有办法定义 1px 左右的宽度容器(IE6 默认的行高造成的,使用       over:hidden,zoom:0.08 line-height:1px)

(9)ie 6 不支持!important

13 浮动产生的问题?你是怎么解决的?

浮动产生的问题 :

父元素高度塌陷,子元素浮动,脱离了文档流,不占位置,不能把没有设置高度的父元素的高 度撑开,导致父元素的高度塌陷。

解决方案:

(1)直接给父元素设置高 ,代码简单,通俗易懂, 不灵活。

(2)额外标签:是W3C推荐的做法是通过在浮动元素末尾添加一个空的标签,通俗易懂,书写方便,添加许多无意义的标签,结构化较差。

(3)父元素设置overflow:hidden|auto|scroll。可以通过触发BFC的方式,可以实现清除浮动效果,代码简洁,内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示。

(4)after伪元素进行清除浮动,:after方式为空元素的升级版,好处是不用单独添加标签 。

符合闭合浮动思想  结构语义化正确,由于IE6-7不支持:after,使用 zoom:1  。

14 浅谈一下BFC?

BFC : 块级格式化上下文,它是指一个独立的块级渲染区域,只有 Block-level BOX 参与, 该区域拥有一套渲染规则来约束块级盒子的布局,且与区域外部无关。

特点:

(1)内部的标签会在垂直方向上一个接一个的放置

(2)垂直方向上的距离由 margin 决定,属于同一个 BFC 的两个相邻标签的 margin 会发生重叠

(3)每个标签的左外边距与包含块的左边界相接触(从左 向右),即使浮动标签也是 如此。

(4)BFC 的区域不会与 float 的标签区域重叠

(5)计算 BFC 的高度时,浮动子标签也参与计算

(6)BFC 就是页面上的一个隔离的独立容器,容器里面的子 标签不会影响到外面标 签。

解决的问题:

清除浮动      两栏三栏自适应     防止图文环绕     外边距折叠

15 如何制作一个三角形?

#Three {

width: 0;

border-left: 50px solid transparent;

border-right: 50px solid transparent;

border-bottom: 100px solid red;

}

或者利用旋转将正方形进行旋转在把多余的部分进行隐藏。

16 你能想出那些方法让元素在页面中消失?

  (1)display : none

   (2)visibility :hidden

   (3) opacity : 0;

   (4)定位到浏览器窗口外边 不显示在页面

   (5)定位,z-index为负值

   (6)transform:scale(0,0) 

17 哪些css属性可以继承?

(1)字体系列属性

  font-family:字体系列

   font-weight:字体的粗细

   font-size:字体的大小

   font-style:字体的风格

   line-height:行高

(2)文本系列属性

   text-indent:文本缩进

   text-align:文本水平对齐

   color:文本颜色

   text-decoration:文本装饰

18 html5 有哪些新特性?

新增结构标签 header nav footer hgroup figure  section article aside   mark  time等

新增多媒体标签

新增智能表单

canvas绘图

SVG绘图等

19 CSS3 新增选择器有哪些?

结构伪类选择器

目标伪类选择器

状态伪类选择器

属性伪类选择器

20 让块级元素水平垂直居中?

方法一 : position: fixed; left: 50%; top: 50%; margin-left: -盒子宽度一半; margin-top: -盒子高度的一半;

方式二: margin:auto 实现绝对定位元素的居中 弊端:兼容ie8以上浏览器 position: fixed? left: 0; right: 0; top: 0; bottom: 0; margin: auto

方式三:弹性盒子。

21 了解定位吗?

(1)static: (静态)默认值。

(2)relative :相对定位 ,不脱离文档流,是以自身原来位置来定位的

(3)absolute:绝对定位,脱离文档流,以最近已定位的“父元素”来定位的,如果“父元素”没有定位,则以html为参照物定位。

(4)fixed :固定定位:脱离文档流,以浏览器窗口为参照物定位的。

22 说出你知道的布局优缺点?

(1)float 布局

优点: 比较简单,兼容性也比较好。只要清除浮动做的好,是没有什么问题的缺点:浮动元素是脱离文档

流,要做清除浮动,这个处理不好的话,会带来很多问题,比如高度塌陷等。

(2) 绝对布局

优点:很快捷,设置很方便,而且也不容易出问题缺点:绝对定位是脱离文档流的,意味着下面的所有子

元素也会脱离文档流,这就导致了这种方法的有效性和可使用性是比较差的。

(3)flex 布局

优点:简单快捷缺点:不支持 IE8 及以下

(4)table布局

优点:实现简单,代码少缺点:当其中一个单元格高度超出的时候,两侧的单元格也是会跟着一起变高

的,而有时候这种效果不是我们想要的。

(5)grid布局

跟 flex 相似

23 解释盒模型宽高值得计算方式,边界塌陷,负值作用,box-sizing概念?

(1) 盒模型:IE 678 下(不添加doctype) 使用ie盒模型,宽度 = 边框 + padding + 内容宽度; chrom、

IE9+、(添加doctype) 使用标准盒模型, 宽度 = 内容宽度。

(2)box-sizing : 为了解决标准黑子和IE盒子的不同,CSS3增添了盒模型属性box-sizing,content

box(默认),border-box 让元素维持IE传统盒子模型, inherit 继承 父盒子模型;

(3)边界塌陷:块元素的 top 与 bottom 外边距有时会合并(塌陷)为单个外边距(合并后最大的外边

距),这样的现象称之为 外边距塌陷。

(4)负值作用:负margin会改变浮动元素的显示位置,即使我的元素写在DOM的后面,我也能让它显示

在最前面。

24 介绍一下 CSS 的盒子模型?

(1)有两种, IE 盒子模型、标准 W3C 盒子模型;IE 的 content 部分包含了 border 和 pading。

(2)盒模型: 内容(content)、填充(padding)、边界(margin)、 边框(border)。

举报

相关推荐

0 条评论