前端基础知识点四部曲(一)

CSS面试篇

    面试是一个漫长的过程。但是也是一个让你快速提升的过程。去面试前首先我们必须有牢固的基础知识,足够丰富的项目经历。然后就是表述能力,你要能把你的答案给面试官描述清楚,注意专业词汇,这将大大提高面试官对你的印象分!

1、盒子模型

css中的盒子模型包括IE盒子模型和标准的W3C盒子模型。其盒子模型还是要归宗于box-sizing的属性,盒子模型对应的分被为border-box,content-box。所谓的标准盒子模型(border-box):width = 左右border+左右padding+contentwidth,而我们的IE盒子模型(border-box): width = content+padding+border 元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。

2、前端一像素问题(画一条0.5px的线)

方法一:transform:scaleY(0.5)使用伪元素设置1px的边框,然后对边框进行缩放(scaleY)

实现思路:

  • 1、设定目标元素的参考位置
  • 2、给目标元素添加一个伪元素before或者after,并设置绝对定位
  • 3、给伪元素添加1px的边框
  • 4、用box-sizing: border-box 属性把边框都包进宽和高里面
  • 5、宽和高设置为 200%
  • 6、整个盒子模型缩小为0.5
  • 7、调整盒子模型的位置,以左上角为基准 transform-origin: 0

方法二: border-image 设置图片的边框

3、transition和animation的区别

Animation和transition大部分属性是相同的,他们都是随时间改变元素的属性值,他们的主要区别是transition需要触发一个事件才能改变属性,

而animation不需要触发任何事件的情况下才会随时间改变属性值,并且transition为2帧,从from .... to,而animation可以一帧一帧的。

4、不定高的DIV居中

1.使用flex

在父盒子设置display: flex; justify-content: center;align-items: center

2.使用css的transform

父盒子设置:display:relative
    Div 设置: transform: translate(-50%,-50%);position: absolute;top: 50%;left: 50%;

3.display:table-cell

父盒子设置:display:table-cell; text-align:center;vertical-align:middle;
    Div 设置: display:inline-block;vertical-align:middle;

5、浮动

  • 特性:浮动元素影响的不仅是自己,他会影响周围元素对其进行环绕
  • 为什么要清除浮动?(解决父元素高度坍陷问题)

一个块级元素如果没有设置height,其height由子元素撑开,对子元素使用了浮动之后,子元素就会脱离文档流也就是说,父及元素中没有内容可以撑开其高度,这样父级元素height就会被忽略。这就是所谓的高度坍塌

  • 如何清除浮动

    1.给父级元素定义高度
    2.让父级元素也浮动
    3.父级定义display:table
    4.父元素设置overflow:hidden
    5.clearfix:使用内容生成的方式清除浮动
    .clearfix:after { // :after选择器向选定的元素之后插入内容
    content:""; // 生成内容为空
    display: block; // 块级元素显示
    clear:both; // 清除前面元素
    }
    不破坏文档流,没有副作用

6、css选择器分类

基本的:
    1.id选择器(id="name")
    2.类选择器(class="head")
    3.标签选择器(body, div, ul, li)
    4.全局选择器(*)
复杂的:
    1.组合选择器(.head .head_logo)
    2.后代选择器 (#head .nav ul li 从父集到子孙集)
    3.群组选择器 (div, span, img {color:Red} 具有相同样式的标签分组显示)
    4.继承选择器
    5.伪类选择器(链接样式,a元素的伪类)
    6.子选择器(div>p, 带大于号>)
    7.CSS相邻相邻兄弟选择器(h1+p, 带加号+)

优先级:

不同级别:总结排序:!important > 行内样式 > ID选择器 > 类选择器 > 标签 > 通配符 > 继承 > 浏览器默认属性

  • 1.属性后面加!import 会覆盖页面内任何位置定义的元素样式
  • 2.作为style属性写在元素内的样式
  • 3.id选择器
  • 4.类选择器
  • 5.标签选择器
  • 6.通配符选择器(*)
  • 7.浏览器自定义或继承

同一级别:后写的会覆盖先写的

css选择器的解析原则:选择器定位DOM元素是从右往左的方向,这样可以尽早的过滤掉一些不必要的样式规则和元素

7、行内元素和块元素

块元素 行内元素
块元素会独占一行,默认情况下,其宽度自动填满父元素宽度 行元素不会占据一行,会一直排在一行,直到一行排不下 行元素没有宽度和高度属性,块级元素即使设置了宽度,还是会独占一行
块级元素: div p forn ul li h1-h6 行内元素:span img input a i

注意:对于行内元素,font-size指定 他们的content area的高度,由于inline box = 上下的helf-leading,如果leading为0,在这种情况下,font-size指定了inline box的高度font-size指的是字体的高度,但是不能指定每个字形给定字体高度下的实际高度,导致了span的高度大于line-height

8、如何画一个三角形

设置宽高,然后用border去画
          width: 0;
            height: 0;
            border-bottom: 100px solid cyan;
            border-left: 50px solid transparent;
            border-right: 50px solid transparent;

9、使元素消失的方法

visibility:hidden、display:none、z-index=-1、opacity:0

  • 1.opacity:0,该元素隐藏起来了,但不会改变页面布局,并且,如果该元素已经绑定了一些事件,如click事件也能触发
  • 2.visibility:hidden,该元素隐藏起来了,但不会改变页面布局,但是不会触发该元素已经绑定的事件
  • 3.display:node, 把元素隐藏起来,并且会改变页面布局,可以理解成在页面中把该元素删掉

10、为什么css放在顶部而js写在后面

  • 1.浏览器预先加载css后,可以不必等待HTML加载完毕就可以渲染页面了
  • 2.其实HTML渲染并不会等到完全加载完在渲染页面,而是一边解析DOM一边渲染。
  • 3.js写在尾部,主要是因为js主要扮演事件处理的功能,一方面很多操作是在页面渲染后才执行的。另一方面可以节省加载时间,使页面能够更加的加载,提高用户的良好体验

但是随着JS技术的发展,JS也开始承担页面渲染的工作。比如我们的UI其实可以分被对待,把渲染页面的js放在前面,时间处理的js放在后面

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,759评论 1 92
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,513评论 1 45
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,468评论 5 15
  • 学会使用CSS选择器熟记CSS样式和外观属性熟练掌握CSS各种选择器熟练掌握CSS各种选择器熟练掌握CSS三种显示...
    七彩小鹿阅读 6,317评论 2 66
  • 之前看了很多泡沫剧,读了很多小说,里面描写关于分手,很潇洒的转身离开,一步都不回头,就这样很厉害的分手了。总觉得很...
    声声慢啊阅读 190评论 0 0