前端问题记录总结

1.Html相关

2.Css相关

3.Vue相关


Html相关


  • html语义化

       根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。

需要注意的是

1 尽可能少的使用无语义的标签div和span;

2 在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;

3 不要使用纯样式标签,如:b、font、u等,改用css设置;

4 需要强调的文本,可以包含在strong或者em标签中(浏览器预设样式,能用CSS指定就不用他们),strong默认样式是加粗(不要用b),em是斜体(不用i);

5 使用表格时,标题要用caption,表头用thead,主体部分用tbody包围,尾部用tfoot包围。表头和一般单元格要区分开,表头用th,单元格用td;

6 表单域要用fieldset标签包起来,并用legend标签说明表单的用途;

7 每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。

新标签:

标签 描述
<article> 定义文档内的文章
<aside> 定义页面内容之外的内容
<bdi> 定义与其他不同的文本方向
<details> 定义用户可查看或隐藏的额外细节
<dialog> 定义对话框或窗口
<figure> 定义自包含内容,比如图片、图表、照片、代码清单等等
<figcaption> 定义<figure>元素的标题
<header> 定义文档或页的页眉
<footer> 定义文档或页的页脚
<main> 定义文档的主内容
<mark> 定义重要或强调的内容
<menuitem> 定义用户能够从弹出菜单调用的命令/菜单项目
<meter> 定义已知范围(尺度)内的标量测量
<nav> 定义文档内的导航链接
<progress> 定义任务进度
<time> 定义日期/时间



新标签兼容低版本:

  • ie9之前版本通过createElement创建html5新标签
  • 引入html5shiv.js

  • meta viewport相关
<!DOCTYPE html>  H5标准声明,使用 HTML5 doctype,不区分大小写

<head lang=”en”> 标准的 lang 属性写法

<meta charset=’utf-8′>    声明文档使用的字符编码

<meta http-equiv=”X-UA-Compatible” content=”IE=edge,chrome=1″/>   优先使用 IE 最新版本和 Chrome

<meta name=”description” content=”不超过150个字符”/>       页面描述

<meta name=”keywords” content=””/>      页面关键词

<meta name=”author” content=”name, email@gmail.com”/>    网页作者

<meta name=”robots” content=”index,follow”/>      搜索引擎抓取

<meta name=”viewport” content=”initial-scale=1, maximum-scale=3, minimum-scale=1, user-scalable=no”> 为移动设备添加 viewport

<meta name=”apple-mobile-web-app-title” content=”标题”> iOS 设备 begin

<meta name=”apple-mobile-web-app-capable” content=”yes”/>  添加到主屏后的标题(iOS 6 新增)
是否启用 WebApp 全屏模式,删除苹果默认的工具栏和菜单栏

<meta name=”apple-itunes-app” content=”app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL”>
添加智能 App 广告条 Smart App Banner(iOS 6+ Safari)

<meta name=”apple-mobile-web-app-status-bar-style” content=”black”/>
<meta name=”format-detection” content=”telphone=no, email=no”/>  设置苹果工具栏颜色

<meta name=”renderer” content=”webkit”>  启用360浏览器的极速模式(webkit)

<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>     避免IE使用兼容模式

<meta http-equiv=”Cache-Control” content=”no-siteapp” />    不让百度转码

<meta name=”HandheldFriendly” content=”true”>     针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓

<meta name=”MobileOptimized” content=”320″>   微软的老式浏览器

<meta name=”screen-orientation” content=”portrait”>   uc强制竖屏

<meta name=”x5-orientation” content=”portrait”>    QQ强制竖屏

<meta name=”full-screen” content=”yes”>              UC强制全屏

<meta name=”x5-fullscreen” content=”true”>       QQ强制全屏

<meta name=”browsermode” content=”application”>   UC应用模式

<meta name=”x5-page-mode” content=”app”>    QQ应用模式

<meta name=”msapplication-tap-highlight” content=”no”>    windows phone 点击无高光

设置页面不缓存
<meta http-equiv=”pragma” content=”no-cache”>
<meta http-equiv=”cache-control” content=”no-cache”>
<meta http-equiv=”expires” content=”0″>


Css相关


  • 盒模型
    1、ie盒模型算上border、padding及自身(不算margin),标准的只算上自身窗体的大小 css设置方法如下:

          /* 标准模型 */
          box-sizing:content-box;
          /*IE模型*/
          box-sizing:border-box;
    

2、margin、border、padding、content由外到里 3.几种获得宽高的方式

dom.style.width/height   //这种方式只能取到dom元素内联样式所设置的宽高,也就是说如果该节点的样式是在style标签中或外联的CSS文件中设置的话,通过这种方法是获取不到dom的宽高的。
dom.currentStyle.width/height   //这种方式获取的是在页面渲染完成后的结果,就是说不管是哪种方式设置的样式,都能获取到。但这种方式只有IE浏览器支持。
window.getComputedStyle(dom).width/height   //这种方式的原理和2是一样的,这个可以兼容更多的浏览器,通用性好一些。
dom.getBoundingClientRect().width/height   //这种方式是根据元素在视窗中的绝对位置来获取宽高的
dom.offsetWidth/offsetHeight   //这个就没什么好说的了,最常用的,也是兼容最好的。

3、各种获得宽高的方式

/*获取屏幕的高度和宽度(屏幕分辨率):*/ window.screen.height/width
/*获取屏幕工作区域的高度和宽度(去掉状态栏):*/ window.screen.availHeight/availWidth
/*网页全文的高度和宽度:*/ document.body.scrollHeight/Width
/*滚动条卷上去的高度和向右卷的宽度:*/ document.body.scrollTop/scrollLeft
/*网页可见区域的高度和宽度(不加边线):*/ document.body.clientHeight/clientWidth
/*网页可见区域的高度和宽度(加边线):*/ document.body.offsetHeight/offsetWidth


Vue相关

生命周期顺序

组件通信:
父传子用props,父用子用ref 子调父用$emit,无关系用Bus

  • VueRouter
定义
var routes = [
    {
        path:"/one",

        component:导入的组件1
    },
    {
        path:"/two",
        component:导入的组件2
    },
];
// 定义路由组件
var router = new VueRouter({
    routes
});
// 定义路由
new Vue({
    el:"#box",
    router
});
访问设定的路由后 会将<router-view></router-view>替换成相应的模版
 html访问方式 <router-link to="/one">One</router-link>(类似a标签)
 js访问方式 this.$router.push('/one'); 
 replace方式 替换当前页面
 携带的参数 可以通过this.$route.query.xxxx来获取
  • Vue双向绑定

原理:利用了Object.defineProperty()这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的。 缺点:双向数据流是自动管理状态的, 但是在实际应用中会有很多不得不手动处理状态变化的逻辑, 使得程序复杂度上升, 难以调试。

  • computed watch methods
用法: 区别:
1、前两者自动追踪数据,执行相关函数,最后一个手动调用;
2、computed是计算属性,用法与data一致
3、watch像事件监听,对象发生变化时,执行相关操作
4、methods与js中执行方法类似
5、computed通常只有get属性
6、数据变化的同时进行异步操作或者是比较大的开销,那么watch为最佳选择
7、watch的对象必须事先声明
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,718评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,683评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,207评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,755评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,862评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,050评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,136评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,882评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,330评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,651评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,789评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,477评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,135评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,864评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,099评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,598评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,697评论 2 351

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,453评论 1 45
  • 前端目录 HTML相关 CSS相关 JAVASCRIPT相关 DOM相关 HTTP相关 VUE相关 算法相关 网络...
    keyuan0214阅读 452评论 0 2
  • 10月10日。 很多人都会在这个日子结婚,因为据说这是一个很完美的日子。顾名思义,10月10日就是十全十美的意思,...
    静谧而已阅读 519评论 0 3
  • 본 논문에서는, 한국 사람들에게 제시바람, 용량,로드 분명 희미한,황혼에, 다음 일몰, 얼마나 내가 한...
    鹿晗是我阅读 149评论 0 0
  • - 在这里,不让策划人孤单的成长- 韩寒有次带女儿去游乐场玩,感悟到说: 其实我一直觉得所谓爱, 就是陪伴,没太多...
    活动策划圈阅读 715评论 0 50