HTML CSS 基础知识

1.空白折叠

含义:指的是在源代码中的连续空白字符(空格、换行、制表符),在页面显示时,会被折叠成一个空格。

2.pre

含义:在pre元素中的内容,不会出现空白折叠,就是pre元素中的内容会按照源代码格式显示 。本质是通过css样式控制的,white-space: pre;其它的元素加上这个属性页可以达到同样的效果。

3.code

含义: 语义化标签,当要把一些代码显示到页面上时,可以把代码放到code标签中,可以配合pre标签让代码的格式按照源代码中的格式显示。

4.a标签的href属性

含义: href的全称是 hyper reference(引用),它的值有以下几种情况:

  1. 跳转地址。(普通链接)
  2. 跳转到某个锚点。当前页面的某个位置,(锚链接)
    例子:
<body style="text-align: center;">
  <h2>
    <a name="start">顶部</a>
  </h2>
  <p><a href="#A">前端三件套--标题</a></p>
  <div style="height: 100vh;"></div>
  <p><a name="A">前端三件套--内容</a></p>
  <p><a href="#start">底部-返回顶部</a></p>
</body>

5. a标签的target属性

target的取值:

  1. _self: 在当前页面窗口打开,默认值。
  2. _blank: 在新窗口打开。

6.块级元素和行级元素

含义: 在页面上独占一行(块级元素),某些元素不会(块级元素),到了HTML5已经弃用了这种说法。

7.元素包含关系

以前: 块级元素可以包含行级元素,行级元素不能包含块级元素。a标签除外。
现在: 每一个标签都属于一个或多个类别,包含关系是有内容类别决定的。
总结:

  1. 容器元素可以包含任何元素。
  2. a标签几乎可以包含任何元素。
  3. 某些元素有固定的子元素(ul > li、ol > li、dl> dt + dd)。

7. 层叠

声明冲突: 同一个样式,多次应用到了同一个元素。
含义: 解决声明冲突的过程,浏览器自动处理 (权重计算)。

1.比较重要性

作者样式表: 开发者书写的样式
重要性从高到底:
1 )作者样式表中的 !important。
2 )作者样式表中的普通样式。
3 )浏览器默认样式

2.比较特殊性

看选择器,总体规则:选择器的范围更窄,越特殊。
具体规则:通过选择器,计算出一个4位数(XXXX),最终来比较这四位数,哪个四位数越大,哪个胜出。

  1. 千位: 如果是内联样式,记作1,否则记0。
  2. 百位: 看ID选择器的数量,有多少个百位数字就位几,不是十进制。
  3. 十位: 等于选择器中所有类选择器、属性选择器、伪类选择器的数量。
  4. 个位: 等于选择器中元素选择器,伪元素选择器的数量。

3.比较源次序

含义:代码书写靠后的胜出。

8.CSS属性的计算过程

浏览器要渲染一个页面,必须一个一个元素来渲染,顺序按照文档的树形目录结构进行。渲染每个元素的前提条件,该元素的所有CSS属性必须有值。
含义: 一个元素,从所有属性没有值,到所有属性都有值的计算过程就叫属性的计算过程。

  1. 确定声明值: 参考样式表(作者样式表和浏览器默认样式表)中没有冲突的声明,作为CSS属性值。
  2. 层叠冲突:对样式表中,有冲突的声明值使用层叠规则,确定CSS属性值。
  3. 使用继承,对仍没有值的属性,若可以继承,则继承父元素的值。
  4. 对仍然没有值的属性,使用默认值。

9.断词规则

work-break: 会影响文字在什么位置被阶段换行。
normal: 普通,CJK字符,中日韩国家的字符在文字出截断,非CJK在单词出截断。
break-all: 截断所有,所有字符都在文字出截断。英文会在中间截断。
keep-all: 所有文字都在单词之前截断。英文没有变化,中文没有空格的话不会换行。

10. 可替换元素和非可替换元素

  • 大部分元素,页面上显示的结果,取决于元素的内容,成为非可替换元素
  • 少部分元素,页面上显示的结果,取决于元素的属性,称为可替换元素
    可替换元素img、video、audio,绝大部分可替换元素均为行盒,尽管它们是行盒,但它们可以设置宽高。

11.object-fit 图片、视频的适应方式

  • 默认值:fill,适应整个图片的宽度和高度,不能保持比例。
  • contain: 保持图片的宽高比例,图片的全部内容会显示出来,可能会有空白。
  • cover:保证把区域填充慢,且爆出宽高比例,所有会有些图片区域可能不能显示完全。
  • 图片的宽高,当没有设置图片的高度时,当图片的宽度变化时,图片的高度也会按照宽高比例变化。

12.作用域值变量提升

在同一个作用域之下,变量和函数的声明与在代码的书写顺序无关,JS都会把它们的声明提到前面。

console.log(a);
var a = 1
// 输出结果 undefined
fn()
var fn = function() {
  console.log('fn');
}
// 报错:TypeError: fn is not a function

13.全局对象window

  • 所有的全局变量,全局函数都会附加到全局对象。
    这称之为全局污染,又称之为全局暴露,简称污染、暴露。
    如果要避免污染,需要使用立即执行函数改变其作用域。
    立即执行函数又称之为IIFE,它的全称是Immediately invlked Function Expression.
    IIFE通常用于强行改变作用域
  • 立即执行函数写法:
(function(){
})()
  • 当我外部想用立即执行函数中的一些变量和函数时,可以在立即执行函数中将它们放在一个对象中,将这个对象暴露出去。
var data = (function () {
  var a = 1;
  var b = 2;
  var user = {
    name: 'Tom',
    age: 18
  }
  var fn = function () {
    console.log(a + b);
  } 
  return {
    user: user,
    fn: fn
  }
})() 
console.log('data',data);
console.log(data.fn());

14.ES6新变化 let 和const

  • ES6建议不再使用var定义变量,而使用let定义变量,使用const定义常量
let a = 1
a = 2

const b = 3
b = 4 //报错: 常量的值不可修改

对于开发的影响,所有的变量使用const,实在需要修改变量,再改为let
使用let和const定义变量,有以下特点:

  • 全局定义的变量不会再作为属性添加到全局对象中。
  • 在变量定义之前使用会报错。
  • 不可重复定义同名变量。
  • 使用const定义的变量,声明的时候必须初始化。
  • 变量具有块级作用域,在代码块之外不可使用。
    注意: 在for循环中使用let定义变量,变量所在的作用域是循环体,因此在循环外不能使用,另外,for循环会对变量做特殊处理,让每次循环使用的都是一个独立的循环变量,这可以解决JS由来已久的问题。

15.ES6新变化 for of 循环

含义:可以遍历数组和伪数组。

const arr = [1,2,3]
for (const item of arr) {
  console.log(item);
  //输出1 2 3 
}

const btns = document.querySelectorAll('button')
for (const item of btns) {
  console.log(item);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值