html+css面试题

1.如何理解html语义化

html语义化是指从代码上展示页面的结构,而不是从最终视觉上来表现结构。

1.2 表现形式

html5新标签:

header-页眉、footer-页脚、aside-附属信息、nav-导航链接、section、article,

caption-表格标题、thead-表头、tbody-表格内容、tfoot-表尾

1.3 作用

有利于构建良好的html架构,有利于搜索引擎建立索引和抓取

页面结构清晰,有利于代码的维护和管理

有利于不同设备(盲人阅读器、屏幕阅读器)的解析

2.px,em,rem区别

px 表示绝对尺寸,这里并非真正的绝对,实际上就是css中定义的像素 em 相对尺寸(在自身没有设置font-size为绝对尺寸的情况下),相对父元素的字体大小而言的 rem 相对尺寸,相对html根元素的字体大小而言的,css3新增元素

3.盒子模型

1.IE盒子模型 宽度=内容宽度+padding 2+border 2

3.w3c盒子模型 宽度=内容宽度 通过box-sizing切换,默认为content-box(w3c盒子模型),border-box时为IE盒子模型

4.BFC

块级格式化上下文,让BFC里面的元素与外面元素隔离,使里外元素的定位不会相互影响。 触发条件:

根元素

overflow不为visible

float

position:absolute或fixed

display:inline-block或table 应用: 防止垂直方向margin重叠 不和浮动元素重叠 清除元素内部浮动

5.doctype作用,严格模式和混合模式的区别

<!doctype>声明位于文档的最前面,在html之前显示。用于告诉浏览器的解析器,用什么文档类型规范来解析文档。严格模式默认用浏览器支持的最高版本解析,混合模式以宽松的向后兼容的方式解析,doctype不存在或格式不正确时会让文档以混杂模式呈现

6.水平垂直居中的方法(盒子中的内容)

//方法一,flex+父

display:flex;

justify-content:center;

align-items:center;

//方法二,table-cell+父

display: table-cell;

vertical-align: middle;

text-align: center;

//方法三:适用于已知宽高且父元素定位不为static +子

postion:absolute;

width:100px;

height:100px;

top:50%;

left:50%;

margin:-50px 0 0 -50px;

//方法四+子

position:absolute;

top:50%;

left:50%;

transform:translate(-50%,-50%);

//方法五:适用于行内元素+父

display:inline-block;

width:100px;

height:100px;

text-align:center;

line-height:100px;

//方法六:水平居中

margin:0 auto;//块级元素+子

text-align:center;//行内元素+父

7.回流和重绘区别

回流:当渲染树中元素尺寸、结构或者某些属性发生变化时,浏览器重新渲染部分或全部页面的情况叫回流。下列元素改变引发回流:

getBoundingClientRect()

scrollTo()

scrollIntoView()或者scrollIntoViewIfneeded

clientTop、clientLeft、clientWidth、clientHeight

offsetTop、offsetLeft、offsetWidth、offsetHeight

scrollTop、scrollLeft、scrollWidth、scrollHeight

getComputedStyle() 重绘:当页面中元素样式变化不会改变它在文档流中的位置时,即不会使元素的几何属性发生变化,浏览器会将新样式赋给它并重新绘制页面(比如color、backgroundColor) 频繁回流和重绘会引起性能问题 避免方法:

1.减少table布局使用

2.减少css表达式的使用(如calc())

3.减少DOM操作,用documentFragment代替

4.将元素设为display:none;操作结束后把它显示回来,因为display:none不会引发回流重绘

5.避免频繁读取会引发回流重绘的元素,如果需要最好是缓存起来

6.对复杂动画元素使用绝对定位,使它脱离文档流

7.减少使用行内样式

8.如何让Chrome显示小于12px的文本

利用css3的转换属性的缩放函数来实现, 举例:让p标签的文本显示6px;css:font-size:6px;transform:sacle(.5) 如果这个样式只是在谷歌中显示,那要加上浏览器内核前缀webkit

9.iphoneX如何适配

1.问题定位:如何让页面适配iPhoneX的齐刘海,底部的操作区域以及大圆角的问题

2.iphonex虽然和其他手机一样都是一个屏幕,但是内部分为了好几个模块。 正常的网页放到iPhonex里面来的话,头部和底部会出现白框。(iPhonex里面有一个safedArea安全区域,也就是中间的大部分区域,而非安全区域部分是没有网页内容的。处于安全区域的内容不受圆角(corners)、齐刘海(sensor housing)、小黑条(Home Indicator)影响)

3.解决方案:

1.给body添加背景色,之前说头部和底部会出现白框,实际上不一定是白色,这个颜色是body的背景色。另外当我们上拉或者下拉内容的时候,显示网页下方的颜色其实也就是body的背景色。

2.在meta标签中引入viewport-fit=cover属性。使页面占满整个屏幕。但是导航栏却会被齐刘海遮住部分内容,并且发现原来设置了100%的高度并没有占据全部内容空间

3.首先对于头部和底部的高度是在iPhone X中是有匹配值的,另外的话在ios11的浏览器Chrome内核提供了一些属性类似于safe-area-inset-top、-right、-left、-bottom,用于设定安全区域与边界的距离。 给body上加一个css样式:content只有加上了viewport-fit=cover才会生效

padding:

env(safe-area-inset-top)

env(safe-area-inset-right)

env(safe-area-inset-bottom)

env(safe-area-inset-left);

一般只设置bottom,它对应的就是小黑条的高度

在安卓手机上constant是不会被识别的。

4.100%的高度并没有占据全部内容空间: 设置body的高度为100vh,占满全屏高度

10.什么是vw和视口

1.视口,浏览器上(也可能是一个app中的webview)用来显示网页的那部分区域

在pc端中视口指的是浏览器的可视区域,而在移动端中涉及三个视口,一个是布局视口,二是视觉视口,三是理想视口。

浏览器默认的视口是布局视口

浏览器可视区域的大小是视觉视口

完美适配移动设备的视口是理想视口

2.vw就是相对于视口的宽度,而不是父元素的宽

vw,1vw = 1%的视口宽度

vh,1vh = 1%的视口高度

vmin,选取vw和vh中的较小值

vmax,选取vw和vh中的较大值

11. 谈谈你是如何做移动端适配的

1.meta viewport的使用(字体)

为什么移动端初始视口默认都是980像素呢?原因是市面上绝大多数pc网页的版心宽度为980像素,如果网页没有专门做移动端适配,此时用手机访问网页旁边刚好没有留白,不过页面缩放后文字会变得非常小。 为了解决页面缩放的体验问题,在网页代码的头部,加入一行viewport元标签。

<meta name="viewport" content="width=device-width, initial-scale=1">​这里的device-width告诉浏览器,将视口的宽度设置为设备宽度(这个宽度是人为预设的,不设的话就是980px)。

2.图片适配

通常对图片的处理时是这样的img { width: 100%;},但是这样的话,当容器大于图片宽度时,图片会无情的拉伸变形,一些图片会失真 解决方案:

img { max-width: 100%; }

此时图片会自动缩放,同时图片最大显示为其自身的100%(即最大只可以显示为自身那么大)

3.媒体查询(模块)

1.什么是媒体查询 针对不用的设备提前为网页设定各种 CSS 样式.利用CSS3中的Media Query模块,自动检测屏幕宽度,然后加载相应的CSS文件

2.例子

@media screen and (min-width:1200px){

        body{       

            background-color: red;

        }

4.动态 rem 方案(整体)

让1rem = 100px;方便其他元素尺寸转换

根据设计稿宽度尺寸给html根元素的font-size设置大小:calc(100vw/7.5);假设设计稿是750px的

1vw = 7.5px 100vw = 750px

1rem =100px =100vw/7.5 px

通常和媒体查询配合,实现响应式布局 如果我们做的H5页面只在移动端访问,这是因为REM不兼容低版本的浏览器。而如果移动端和PC端公用一套代码,建议使用流式布局(百分比布局)

12.移动端1像素边框方案

当设计稿的边框为1px

1.为什么会有这个问题?

设备像素也被称之为物理像素,不同设备自带不同像素。逻辑像素指的是css中记录的像素,也就是css像素。因为移动端布局,根据不同的手机会有不同的dpr,设备独立像素比= 物理像素/逻辑像素

iphone6 = 2,iPhone X = 3,当逻辑像素=1,在6和x中显示的就是2px和3px。所以说,因为dpr大于1,所以在手机上显示的要更粗一些。

2.解决方案

1.媒体查询 非高清屏设置1px没有问题,如果在高清屏,比如说dpr=2,则设置边框为0.5px。

2.css3缩放(更常用) 伪元素选择器,height:1px;用媒体查询,当dpr=2,通过transform:scaleY(.5).如果是3,transform: scaleY(0.333333);

13.bootstrap如何实现响应式布局

1.将一个页面分为12个格子区域,根据终端设备不同的宽度来设定模块内容所占格子区域的大小或者多少来最终决定模块所占空间的实际大小。

2.将模块分为container容器>row行>column列三个概念,

3.设定终端宽度,根据定义不同终端的宽度,来调整容器行列不同的显示效果,一般有xs,s,sm,md,lg五种显示方式,分别占1,2,3,4,6列,不同的宽度下,按照列的不同显示方式最终来实现响应式布局

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

推荐阅读更多精彩内容

  • 1.web标准: (1)结构标准:其语言主要包括XHTML(实现HTML向XML的过渡。)和XML(用于弥补HTM...
    张果果阅读 3,776评论 0 13
  • 1. 浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层、表示层、行为层分别是:HTML、CSS、Ja...
    程序猿人王小贱阅读 1,872评论 1 11
  • 问:对WEB标准以及W3C的理解与认识? 答:标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css...
    LuckyJin阅读 2,744评论 0 11
  • HTML 1.Doctype作用?标准模式与兼容模式各有什么区别? (1)<!DOCTYPE>声明位于位于HTML...
    lucky婧阅读 737评论 1 4
  • 1. 什么是盒子模型? 2. 行内元素有哪些?块级元素有哪些? 空(void)元素有那些? 3. CSS实现垂直水...
    王帅同学阅读 567评论 0 0