html css相关面试题

1、H5 的新特性有哪些?C3 的新特性有哪些?

    一、H5新特性:
      1、语义化更好的标签(header、nav、aside、footer、article、section);
      2、表单控件,新增search、number、date、color、image、file、time、email;
      3、自定义属性data-id;
      4、本地存储:sessionStorage(浏览器关闭后自动删除)、localStorage(长期存储数据,浏览器关闭后数据不清除);
      5、新增媒体标签:audio、video
以上为常用的,此外不经常用的还有:canvas、地理API(Geolocation)、webSocket、拖拽Api(ondrop)。
    二、C3新特性:
      1、边框:border-radius,边框阴影:box-shadow(水平阴影、垂直阴影、模糊距离、阴影尺寸、阴影颜色、inset(从外层的阴影(开始时)改变阴影内侧阴影))
      2、文字阴影:text-shadow(水平阴影、垂直阴影、模糊距离、阴影颜色)
      3、颜色:新增GRBA、HLSA模式
      4、2D转换、3D转换 transform(translate、rotate、scale)
      5、弹性布局(flex布局)
      6、盒子模型: box-sizing
      7、过渡 : transition 可实现动画
      8、媒体查询  @media screen and (width:800px){}
      9、字体图标font-face
      10、背景:background-size background-origin(背景原点、背景起始位置) background-clip(背景绘制区域:border-box|padding-box|content-box)

2、Localstorage、sessionStorage、cookie 的区别

    相同点:
           都是同源的,且存在于浏览器端。
    不同点:
           1、cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递,而sessionStorage和localStorage不会自动把数据发往服务器端,仅在本地保存。此外,cookie还有路径(path)的概念,可以限制cookie只属于某一路径下。
           2、存储大小限制不同。因为每次 http 请求都会携带 cookie、所以 cookie 只适合保存很小的数据,大小不能超过4K,比如可以存储会话标识。而sessionStorage和localStorage虽然也有大小限制,但是却比cookie大得多,可以达到5M或者更多。
           3、数据有效期不同。sessionStorage仅在当前浏览器关闭前有效,localStorage在关闭浏览器后依然存在。cookie则是在设置的有效期过期前有效。
           4、作用域不同。sessionStorage不在不同的浏览器窗口中共享,即使是同一页面,而localStorage和cookie则是在所有同源窗口中都是共享的。

3、如何使一个盒子水平垂直居中?

方法一、定位:
<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
  .parent { 
      width: 500px;
      height: 500px;
      border: 1px solid #000;
      position: relative;
  }

  .child { 
    width: 100px;
    height: 100px;
    border: 1px solid #999;
    position: absolute;
    top: 50%;
    left: 50%; 
    margin-top: -50px; 
    margin-left: -50px;
  }
  </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">我是子元素</div>
    </div>
  </body>
</html>
方法二、利用 margin:auto
<!DOCTYPE html>
<html lang="en">
  <head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
  .parent { 
    width: 500px;
    height: 500px;
    border: 1px solid #000;
    position: relative;
  }
  .child { 
    width: 100px;
    height: 100px;
    border: 1px solid #999;
    position: absolute; 
    margin: auto;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
  </style>
  </head>
  <body>
    <div class="parent">
      <div class="child">我是子元素</div>
    </div>
  </body>
</html>

方法三、利用 display:flex;设置垂直水平都居中

  .parent { 
      width: 500px;
      height: 500px;
      border: 1px solid #000;
      display: flex; //父元素设置display:flex;
      justify-content: center;
      align-items: center;
  }
  .child { 
      width: 100px;
      height: 100px;
      border: 1px solid #999;
  }

方法四、transform

    .parent { 
        width: 500px;
        height: 500px;
        border: 1px solid #000;
        position: relative;
    }
    .child { 
        width: 100px;
        height: 100px;
        border: 1px solid #999;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

4、如何垂直居中一个 img?

    #container  { 
        display:table-cell; //会使元素表现的类似一个表格中的单元格td,利用这个特性可以实现文字的垂直居中效果。
//同时它也会破坏一些CSS属性,使用table-cell时最好不要与float以及position: absolute一起使用,设置了table-cell的元素对高度和宽度高度敏感,对margin值无反应,可以响应padding的设置,表现几乎类似一个td元素。
        text-align:center; 
        vertical-align:middle; 
    }

5、CSS 的盒模型

box-sizing:content-box; // border 和 padding 不算到 width 范围内,可以理解为是 W3c 的标准模型(default)。总宽=width+padding+border+margin
box-sizing:border-box;//border 和 padding 划归到 width 范围内,可以理解为是 IE 的怪异盒 模型,总宽=width+margin

6、哪些是块级元素那些是行内元素,各有什么特点?

行内元素: a、span、b、img、strong、input、select、lable、em、button、textarea
块级元素:div、ul、li、dl、dt、dd、p、h1-h6、blockquote、form

7、CSS 选择器有哪些?哪些属性可以继承?

CSS 选择器:
1、id 选择器( # myid)
2、类选择器(.myclassname)
3、标签选择器(div, h1, p)
4、相邻选择器(h1 + p)
5、子选择器(ul > li)
6、后代选择器(li a)
7、通配符选择器( * )
8、属性选择器(a[rel = "external"])
9、伪类选择器(a:hover, li:nth-child)
继承问题:
可继承的样式: font-size font-family color, UL LI DL DD DT;
不可继承的样式:border padding margin width height

8、CSS 中哪些属性可继承,哪些不可以?

能继承的属性

  1. 字体系列属性:font、font-family、font-weight、font-size、font-style;
  2. 文本系列属性:
    2.1)内联元素:color、line-height、word-spacing、letter-spacing、
    text-transform;
    2.2)块级元素:text-indent、text-align;
  3. 元素可见性:visibility
  4. 表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、
    table-layout;
  5. 列表布局属性:list-style
    不能继承的属性
  6. display:规定元素应该生成的框的类型;
  7. 文本属性:vertical-align、text-decoration;
  8. 盒子模型的属性:width、height、margin 、border、padding;
  9. 背景属性:background、background-color、background-image;
  10. 定位属性:float、clear、position、top、right、bottom、left、min-width、
    min-height、max-width、max-height、overflow、clip

9、CSS 单位中 px、em 和 rem 的区别?

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

10、rem 适配方法如何计算 HTML 跟字号及适配方案?

通用方案
1、设置根 font-size:625%(或其它自定的值,但换算规则 1rem 不能小于 12px)
2、通过媒体查询分别设置每个屏幕的根 font-size
3、CSS 直接除以 2 再除以 100 即可换算为 rem
优:有一定适用性,换算也较为简单
劣:有兼容性的坑,对不同手机适配不是非常精准;需要设置多个媒体查询来适应不同
手机,单某款手机尺寸不在设置范围之内,会导致无法适配
网易方案
1、拿到设计稿除以 100,得到宽度 rem 值
2、通过给 html 的 style 设置 font-size,把 1 里面得到的宽度 rem 值代入
x document.documentElement.style.fontSize =
document.documentElement.clientWidth / x + ‘px‘;
3、设计稿 px/100 即可换算为 rem
优:通过动态根 font-size 来做适配,基本无兼容性问题,适配较为精准,换算简便
劣:无 viewport 缩放,且针对 iPhone 的 Retina 屏没有做适配,导致对一些手机的适
配不是很到位
手淘方案
1、拿到设计稿除以 10,得到 font-size 基准值
2、引入 flexible
3、不要设置 meta 的 viewport 缩放值
4、设计稿 px/ font-size 基准值,即可换算为 rem
优:通过动态根 font-size、viewpor、dpr 来做适配,无兼容性问题,适配精准。
劣:需要根据设计稿进行基准值换算,在不使用 sublime text 编辑器插件开发时,单
位计算复杂

11、CSS 中 link 和@import 的区别?

适用范围不同 :@import 可以在网页页面中使用,也可以在 CSS 文件中使用,用来将多个 CSS 文件引入到一个 CSS 文件中;而 link 只能将 CSS 文件引入到网页页面中。

功能范围不同: link 属于XHTML 标签,而@import 是 CSS 提供的一种方式,link 标签除了可以加载 CSS 外,还可以定义 RSS,定义 rel 连接属性等,@import 就只能加载 CSS。

加载顺序不同: 当一个页面被加载的时候,link 引用的 CSS 会同时被加载,@import引用CSS 会等到页面全部被下载完再被加载。所以有时候浏览@import 加载 CSS 的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显。

兼容性:由于@import 是 css2.1 提出的,所以老的浏览器不支持,@import 只有在 IE5以上的才能识别,而 link 标签无此问题控制样式时的差别 使用 link 方式可以让用户切换 CSS 样式.现代浏览器Firefox,Opera,Safari 都支持 rel=”alternate stylesheet”属性(即可在浏览器上选择不同 的风格), 当然你还可以使用 Javascript 使得 IE 也支持用户更换样式

权重区别 :link 引入的样式权重大于@import 引入的样式

12、Display:none 与 visibility:hidden 的区别?

最常用的为 display:none 和 visibility:hidden
dispaly:none 设置该属性后,该元素下的元素都会隐藏,占据的空间消失
visibility:hidden 设置该元素后,元素虽然不可见了,但是依然占据空间的位置
区别
1.visibility 具有继承性,其子元素也会继承此属性,若设置 visibility:visible,则子元
素会显示
2.visibility 不会影响计数器的计算,虽然隐藏掉了,但是计数器依然继续运行着。
3.在 CSS3 的 transition 中支持 visibility 属性,但是不支持 display,因为 transition 可
以延迟执行,因此配合 visibility 使用纯 CSS 实现 hover 延时显示效果可以提高用户 体

4.display:none 会引起回流(重排)和重绘 visibility:hidden 会引起重绘

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容