.parent {
display: flex;
justify-content: center; //水平居中
align-items: center; //垂直居中
}
详情请戳:https://blog.csdn.net/a1056244734/article/details/106759185
有<section>、<header>、<footer>、<aside>、<nav>、<video>、<audio>、<canvas>等...
详细瞅这里:https://blog.csdn.net/a1056244734/article/details/106865698
iframe是一种框架,也是一种很常见的网页嵌入方式
iframe的优点:
iframe的缺点:
分析了这么多,现在基本上都是用Ajax来代替iframe,所以iframe已经渐渐的退出了前端开发。
简言之:百分比布局+媒体查询
Bootstrap响应式布局是利用其栅格系统,对于不同的屏幕采用不同的类属性。在开发中可以只写一套代码在手机平板,PC端都能使用,而不用考虑使用媒体查询(针对不同的设备分别写不同的代码)。Bootstrap的官方解释:Bootstrap提供了一套响应式、移动设备优先的流式栅格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为做多12列。
栅格系统用于通过一系列的行(row)与列(column)的组合来创建页面布局。
使用Bootstrap响应式布局
首先需要在head中引入meta标签,添加viewpirt属性,content中宽度等于设备宽度, initial-scale:页面首次被显示可见区域的缩放级别,取值1则页面按实际尺寸显示,无任何缩放;
maximum-scale:允许用户缩放到的最小比例;
user-scalable:用户是否可以手动缩放。代码如下:
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="stylesheet" type="text/css" href="/stylesheets/bootstrap.min.css">
盒模型又被分为 IE盒模型 和 W3C标准盒模型 两种类型。
在 IE8+ 的浏览器中要使用哪个盒模型可以由 box-sizing 控制。
box-sizing: content-box //W3C标准盒模型,默认
box-sizing: border-box //IE盒模型
这两者的区别在于:
详情请戳:CSS 盒模型(Box Model),box-sizing
rem是根据根的font-size变化,而em是根据父级的font-size变化
rem:相对于根元素html的font-size
html {
font-size: 20px;
}
div {
font-size: 2rem;
}
//相当于
div {
font-size: 40px;
}
em:相对于父元素计算
p {
font-size: 20px;
}
// p为span父元素
p span {
font-size: 2rem;
}
//相当于
p span {
font-size: 40px; // 20*2=40
}
通配符选择器:*
ID选择器:#myid
类选择器:.myclassname
元素选择器:div、span、p、a 等
相邻选择器(h1+p)
子选择器(ul < li)
后代选择器:p span、div a 等
伪类选择器:a:hover、 li:nth-child 等
属性选择器:a[rel="external"]、input[type="text"]
[class*="col-"]
选择所有类名中含有"col-"的元素
[class^="col-"]
选择所有类名中以"col-"开头的元素
[class$="-col"]
选择所有类名中以"-col"结尾的元素
!important --> 行内样式 --> #id --> .class --> 元素和伪元素 --> * --> 继承 --> 默认
值 | 描述 |
---|---|
absolute | 生成绝对定位的元素,相对于static定位以外的第一个父元素(最近的已定位的祖先元素)进行定位。元素的位置通过left, right, top, bottom进行规定 |
fixed | 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过left, right, top, bottom进行规定 |
relative | 生成相对定位的元素,相对于其正常位置定位。元素的位置通过left, right, top, bottom进行规定 |
static | 默认值,忽略 top, bottom, left, right和z-index |
inherit | 从父元素继承该属性的值 |
"CSSurl路径" rel="stylesheet" type="text/css">
/*单行*/
.single {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
}
/*多行*/
.mutiple {
display: -webkit-box; /*重点,不能用block等其他,将对象作为弹性伸缩盒子模型显示*/
-webkit-box-orient: vertical; /*从上到下垂直排列子元素(设置伸缩盒子的子元素排列方式)*/
-webkit-line-clamp: 3; /*行数,超出三行隐藏且多余的用省略号表示...*/
line-clamp: 3;
overflow: hidden;
max-width: 100%;
}
/*多行考虑兼容性*/
p.compatible {
position: relative;
line-height: 20px;
max-height: 40px;
overflow: hidden;
}
p.compatible::after {
content: "...";
position: absolute;
bottom: 0;
right: 0;
padding-left: 40px;
background: -webkit-linear-gradient(left, transparent, #fff 55%);
background: -o-linear-gradient(right, transparent, #fff 55%);
background: -moz-linear-gradient(right, transparent, #fff 55%);
background: linear-gradient(to right, transparent, #fff 55%);
}
详情戳:https://blog.csdn.net/a1056244734/article/details/106772336
V8 编译 JS 代码的过程
Undefined
、Null
、Boolean
、Number
、String
、ES6新增:Symbol
Object是JavaScript中所有对象的父对象
数据封装对象:Object
、Array
、Boolean
、Number
和String
其他对象:Function
、Arguments
、Math
、Date
、RegExp
、Error
1、不要在同一行声明多个变量
2、请使用===/!==来比较true/false或者数值
3、使用对象字面量[1,2]替代new Array这种形式
4、不要使用全局变量
5、Switch语句必须带有default分支
6、函数不应该有时候有返回值,有时候没有返回值
7、for循环必须使用大括号
8、if语句必须使用大括号
9、for-in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污染
行内引入
<body>
<input type="button" onclick="alert('行内引入')" value="按钮"/>
<button onclick="alert(123)">点击我</button>
</body>
内部引入
<html>
<head>head>
<body>
<script>
window.onload = function () {
alert("js 内部引入!")
}
script>
body>
html>
外部引入
<body>
<div>div>
<script type="text/javascript" src="./js/index.js">script>
body>
注意
1,不推荐行内引入或者HTML中插入