css常见问题处理

文章目录

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;
}
相关推荐
软件聚导航17 分钟前
「聚小软 AI 助手」技术升级:从数据库检索到 RAG 知识库问答
前端·数据库·mysql·微信小程序·小程序·ai编程·rag
恋猫de小郭1 小时前
看懂大模型架构术语,帮助你理解目前常见的大模型开源架构
前端·人工智能·ai编程
yma161 小时前
通过提示词实现GitHub Pages 和 Nginx 双部署竟然这么简单?
前端
前端 贾公子1 小时前
第09章:上下文与记忆 (2)
java·服务器·前端
可乐鸡翅yeah_1 小时前
第三方接口对接 M3U8 流媒体排坑实战,解决外部服务商流兼容难题
前端·javascript·python·django·html·m3u8·m3u8在线
GoppViper1 小时前
RDF资源描述框架深度解析:语义Web的数据基石与实战逻辑
前端·数据库
郑州光合科技余经理1 小时前
本地生活服务系统:模块边界与结算字段怎么拆
java·开发语言·前端·后端·系统架构·uni-app·php
IT_陈寒2 小时前
Vue的嵌套组件竟然吃掉了我的事件?
前端·人工智能·后端
默_笙2 小时前
🏠 「LLM Notes」:我用 Next.js + Redis 给自己造了个笔记博客
前端·javascript
风骏时光牛马2 小时前
AI开发平台异常指标实时监控告警
前端