python - 如何在 Python 中更改 CSS 类 - 烧瓶网站
问题描述
在下面的示例中使用 python 和 flask 框架将类名形式.black
更改为最简单的方法是什么?.white
例如:鼠标点击 div 后#area
?
CSS 文件:
#area {position:absolute;width:100px;height:100px;}
.black {background-color:#000;}
.white {background-color:#fff;}
HTML 文件:
<!doctype html>
<html>
<head>
<title>Title</title>
<link rel="stylesheet" href="{{ url_for('static',filename='style.css')}}">
</head>
<body>
<div id="area" class="black"></div>
</body>
</html>
解决方案
这个需求JavaScript
和它无关Flask
使用示例querySelector()
<div id="area" class="black" onclick="change();"></div>
<script>
area = document.querySelector('#area');
function change(){
area.classList.replace('black', 'white');
}
</script>
或使用特殊变量this
<div id="area" class="black" onclick="change(this);"></div>
<script>
function change(item){
item.classList.replace('black', 'white');
}
</script>
最终你可以使用addEventListener
而不是onclick
<div id="area" class="black"></div>
<script>
function change(){
this.classList.replace('black', 'white');
}
area = document.querySelector('#area');
area.addEventListener('click', change);
</script>
或更短
<div id="area" class="black"></div>
<script>
area = document.querySelector('#area');
area.addEventListener('click', function(){
this.classList.replace('black', 'white');
});
</script>
甚至更短一点
<div id="area" class="black"></div>
<script>
document.querySelector('#area').addEventListener('click', function(){
this.classList.replace('black', 'white');
});
</script>
最小的工作代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Title</title>
<style>
#area1 {width:100px;height:100px;}
#area2 {width:100px;height:100px;}
#area3 {width:100px;height:100px;}
#area4 {width:100px;height:100px;}
.black {background-color:#000;}
.white {background-color:#fff;}
</style>
</head>
<body>
<div id="area1" class="black" onclick="change1();"></div>
<br>
<div id="area2" class="black" onclick="change2(this);"></div>
<br>
<div id="area3" class="black"></div>
<br>
<div id="area4" class="black"></div>
<script>
area1 = document.querySelector('#area1');
function change1(){
area1.classList.replace('black', 'white');
console.log('change1');
}
function change2(item){
item.classList.replace('black', 'white');
console.log('change2');
}
function change3(){
this.classList.replace('black', 'white');
console.log('change3');
}
area3 = document.querySelector('#area3');
area3.addEventListener('click', change3);
area4 = document.querySelector('#area4');
area4.addEventListener('click', function(){
this.classList.replace('black', 'white');
console.log('change4');
});
</script>
</body>
</html>
推荐阅读
- android - Android 画中画模式
- odoo-13 - odoo13 错误创建新产品公共类别(电子商务)
- azure-devops - 在 Azure DevOps Services 管道中安装 Terraform 时出现自签名证书错误
- azure - Azure App Service Kudu 工具“LogFiles”自动删除——容器应用服务(linux)
- quantum-computing - 为什么量子计算机中的恒定运算需要第二个 qbit?
- c++ - 如何擦除字符串中的第一个和最后一个字符?
- graphite - 石墨 - 计算包含多个值的两个系列的差异
- node.js - 在 Mongodb 的数组中删除元素 null
- excel - Excel,如何制作一个for循环?
- vba - 访问VBA过滤出多个标准一个表标记完成时完成