文章目录
-
- 1:禁止文字被复制粘贴
-
- [1.1 Css 处理](#1.1 Css 处理)
- [1.2 Js 处理](#1.2 Js 处理)
- 2:元素垂直水平居中
-
- 2.1:方案一
- [2.2 方案二](#2.2 方案二)
- [2.3 方案三](#2.3 方案三)
- [2.4 方案四](#2.4 方案四)
- [2.5 方案五](#2.5 方案五)
1:禁止文字被复制粘贴
1.1 Css 处理
html
<div class="text">我不可以复制信息</div>
<div>
我可以复制
</div>
<style>
.text {
-webkit-user-select: none;
}
</style>
1.2 Js 处理
javascript
<script>
<!-- 禁止右键 -->
document.oncontextmenu = () => false
<!-- 禁止文字选择 -->
document.onselectstart = () => false
</script>
2:元素垂直水平居中
2.1:方案一
使用弹性布局,父元素设置display: flex另外再设置属性:水平布局justify-content: center;和垂直布局 align-items: center;
html
<div class="ha"><div class="child"></div></div>
<style>
.ha {
display: flex;
justify-content: center;
align-items: center;
width: 200px;
height: 200px;
background-color: #000;
}
.child {
width: 80px;
height: 80px;
background-color: blue;
}
</style>
2.2 方案二
position: absolute; 位移属性
使用position: absolute; 属性各百分之五十,top: 50%;left: 50%;然后margin减去元素的一半(在已知宽高情况下);
html
<div class="ha"><div class="child"></div></div>
<style>
.ha {
width: 600px;
height: 600px;
background-color: grey;
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
margin-top: -100px;
margin-left: -100px;
width: 200px;
height: 200px;
background-color: #000;
}
</style>
2.3 方案三
使用calc()函数进行计算,这个方法和上面方案二类似
html
<div class="ha"><div class="child"></div></div>
<style>
.ha {
width: 600px;
height: 600px;
background-color: grey;
position: relative;
}
.child {
position: absolute;
top: calc(50% - 100px);
left: calc(50% - 100px);
width: 200px;
height: 200px;
background-color: blue;
}
</style>
2.4 方案四
使用 平移属性 transform: translate(x轴,y轴)进行位移,各减去元素宽高的一半
margin 和 calc() 函数是在已知元素宽高的情况下进行的处理,在不知道元素宽高的情况下,可以使用transform平移属性进行处理
css
.child {
position: absolute;
top: 50%;
left: 50%;
// transform: translate(-100px, -100px); //已知元素宽高
transform: translate(-50%, -50%); // 元素比例
width: 200px;
height: 200px;
background-color: blue;
}
2.5 方案五
使用网格布局 父元素声明 display: grid; 子元素使用 align-self: center; justify-self: center;
html
<div class="ha"><div class="child"></div></div>
<style>
.ha {
width: 600px;
height: 600px;
background-color: grey;
display: grid;
}
.child {
align-self: center;
// margin: 0 auto; // 让元素水平居中
justify-self: center; // 网格布局的属性
width: 200px;
height: 200px;
background-color: blue;
}
</style>
只在父元素上添加属性
display: grid; align-items: center; justify-content: center;
css
.ha {
width: 600px;
height: 600px;
background-color: grey;
display: grid;
align-items: center;
justify-content: center;
}
.child {
width: 200px;
height: 200px;
background-color: blue;
}