- 在
html
标签中定义,形式如 data-name=vlaue
- 在
css
中使用attr(data-name)
<h1 data-text="悬崖上的金鱼姬">悬崖上的金鱼姬</h1>
<style>
h1::before {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
text-shadow: -5px 5px 20px #333,
-10px 10px 30px #333,
-20px 15px 40px #333,
-25px 20px 50px #333;
z-index: -1;
</style>
实现效果如图所示:
<div class="img-box">
<img src="./images/2000171622.jpeg" alt="" style="--i: 2; --j: 0" />
<img src="./images/2000171622.jpeg" alt="" style="--i: 1; --j: 1" />
<img src="./images/2000171622.jpeg" alt="" style="--i: 0; --j: 2" />
<img src="./images/2000171622.jpeg" alt="" style="--i: -1; --j: 3" />
<img src="./images/2000171622.jpeg" alt="" style="--i: -2; --j: 4" />
</div>
</body>
padding: 0;
margin: 0;
box-sizing: border-box;
body {
min-height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background-color: #262e31;
.img-box {
position: relative;
width: 300px;
height: 300px;
margin: 100px auto;
transform-style: preserve-3d;
perspective: 1000px;
.img-box img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
transition: 0.5s;
z-index: calc(var(--i)+1);
opacity: calc(1- (0.2 * var(--j)));
.img-box:hover img {
transform: rotate(-30deg) skew(25deg) translateX(calc(-35px * var(--i)))
translateY(calc(35px * var(--i)));
box-shadow: -20px 20px 20px rgba(0, 0, 0, 0.25);
实现效果如图:
<!DOCTYPE html>
<html lang="en">
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Wooden Text Typography</title>
<style>
padding: 0;
margin: 0;
box-sizing: border-box;
body {
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
overflow: hidden;
background: url(../images/2000171622.jpeg);
background-size: 100% 100%;
h1 {
position: relative;
margin: 0;
padding: 0;
text-transform: uppercase;
text-align: center;
font-size: 10rem;
font-weight: 700;
background: url(../images/2000171622.jpeg);
background-size: 100% 100%;
background-attachment: fixed;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
h1::before {
content: attr(data-text);
position: absolute;
top: 0;
left: 0;
text-shadow: -5px 5px 20px #333,
-10px 10px 30px #333,
-20px 15px 40px #333,
-25px 20px 50px #333;
z-index: -1;
</style>
</head>
<h1 data-text="悬崖上的金鱼姬">悬崖上的金鱼姬</h1>
</body>
</html>
--name:value 方式在html标签属性style中定义变量名和变量值,形式如 --name:value在css中使用var(--name)<div class="box" style="--top:200px;--left:100"></div><style>.box { width: 200px; height: 200px; background: #ccc; position: absolute; top: var(--
&lt;html lang="en"&gt;
&lt;head&gt;
&lt;meta charset="UTF-8"&gt;
&lt;title&gt;1&lt;/titl
var tmpWrap = document.getElementById(‘editor’);
var outWrap = document.createElement(‘div’);
outWrap.setAttribute(‘style’,para ); //para为outWrap的style样式的变量
tmpWrap.appendChild(outWrap);
2.var getOutWrap = para //
注:学习笔记基于小甲鱼学习视频,官方论坛:https://fishc.com.cn/forum.php
鱼C课程案例库:https://ilovefishc.com/html5/
html5速查手册:https://man.ilovefishc.com/html5/
css速查手册:https://man.ilovefishc.com/css3/
<!DOCTYPE>声明用来声明文档类型(位于<html>与</html>用来描述文档类型),有助于浏览器显示正确显示页面,doctype声明是不分大小写的。
定义元素内容的语言类型
lang属性可用于网页或部分网页的语言。这对搜索引擎和浏览器是有帮助的。根据W3C推荐标准,应该通过<html>标签中的lang属性...
// 获取元素
const reduceBtns = document.querySelectorAll('.reduce');
const addBtns = document.querySelectorAll('.add');
const amountEles = document.querySelectorAll('.amount');
const subtotalEles = document.querySelectorAll('.subtotal');
const totalPriceEle = document.querySelector('#totalPrice');
// 定义变量
let totalPrice = 0;
// 绑定事件
for (let i = 0; i < reduceBtns.length; i++) {
reduceBtns[i].addEventListener('click', function() {
let amount = parseInt(amountEles[i].textContent);
if (amount > 1) {
amount--;
amountEles[i].textContent = amount;
let price = parseFloat(subtotalEles[i].textContent) / (amount + 1);
subtotalEles[i].textContent = (price * amount).toFixed(2);
totalPrice = parseFloat(totalPrice) - price;
totalPriceEle.textContent = totalPrice.toFixed(2);
for (let i = 0; i < addBtns.length; i++) {
addBtns[i].addEventListener('click', function() {
let amount = parseInt(amountEles[i].textContent);
amount++;
amountEles[i].textContent = amount;
let price = parseFloat(subtotalEles[i].textContent) / (amount - 1);
subtotalEles[i].textContent = (price * amount).toFixed(2);
totalPrice = parseFloat(totalPrice) + price;
totalPriceEle.textContent = totalPrice.toFixed(2);
// 计算初始总价
for (let i = 0; i < subtotalEles.length; i++) {
totalPrice += parseFloat(subtotalEles[i].textContent);
totalPriceEle.textContent = totalPrice.toFixed(2);
</script>
</body>
</html>
代码解释:
1. HTML部分:使用`<table>`标签创建表格,包括表头和表体两部分。每个商品行都有一个数量`<td>`单元格,里面包含一个减少按钮、一个显示数量的`<span>`元素和一个增加按钮。总价小计使用`<td>`标记,总价使用`<td>`标记和一个`id`属性。
2. CSS部分:设置表格样式,包括边框、对齐和背景色。
3. JavaScript部分:获取所有需要操作的元素,并定义一个变量`totalPrice`用于统计总价。为减少按钮和增加按钮绑定`click`事件,用于修改数量和小计,并更新总价。在页面加载时计算初始总价。
以上代码仅供参考,实际应用中可能需要根据实际情况进行调整和优化。