三行div 第一行四段文字 第二行相同图片 第三行 相同文字
时间: 2023-10-13 13:07:28 浏览: 42
<div>
<p>这是第一段文字</p>
<p>这是第二段文字</p>
<p>这是第三段文字</p>
<p>这是第四段文字</p>
</div>
<div>
<img src="图片地址" alt="图片描述">
</div>
<div>
<p>这是相同的文字</p>
</div>
相关问题
用vue写出一个按钮匹配一个勾选框,写四行。有一个开始按钮点击开始后按钮变色并变成停止按钮,第一行延时0.1秒触发。第二行0.2秒依次类推。然后有个开始按钮。勾选后按钮后。比如勾选了第一行。第三行。分别在每0.1秒点击下第一行按钮。每0.3秒点击下第三行按钮,并增加点击动画。
好的,根据您的需求,我给您提供一份 Vue 代码:
```
<template>
<div>
<button :class="{ active: isStart }" @click="toggleStart">{{ buttonText }}</button>
<div>
<label><input type="checkbox" v-model="checked[0]">第一行</label>
<label><input type="checkbox" v-model="checked[1]">第二行</label>
<label><input type="checkbox" v-model="checked[2]">第三行</label>
<label><input type="checkbox" v-model="checked[3]">第四行</label>
</div>
<div>
<button v-for="(item, index) in buttons" :key="index" :class="{ clicked: clicked[index] }" :disabled="!checked[index] || !isStart"
@click="clickButton(index)">{{ item }}</button>
</div>
</div>
</template>
<script>
export default {
data() {
return {
isStart: false,
buttonText: '开始',
checked: [false, false, false, false],
buttons: ['第一行', '第二行', '第三行', '第四行'],
clicked: [false, false, false, false],
intervals: []
}
},
methods: {
toggleStart() {
if (this.isStart) {
this.stop()
} else {
this.start()
}
},
start() {
this.isStart = true
this.buttonText = '停止'
this.buttons.forEach((item, index) => {
if (this.checked[index]) {
const interval = setInterval(() => {
this.clickButton(index)
}, (index + 1) * 100)
this.intervals.push(interval)
}
})
},
stop() {
this.isStart = false
this.buttonText = '开始'
this.intervals.forEach(interval => clearInterval(interval))
this.intervals = []
},
clickButton(index) {
this.clicked.splice(index, 1, true)
setTimeout(() => {
this.clicked.splice(index, 1, false)
}, 300)
}
}
}
</script>
<style>
button {
margin-right: 10px;
margin-bottom: 10px;
padding: 5px 10px;
border-radius: 5px;
background-color: #eee;
color: #333;
transition: all 0.3s;
}
button.active {
background-color: #4caf50;
color: #fff;
}
button.clicked {
animation: clickAnimation 0.3s;
}
@keyframes clickAnimation {
0% {
transform: scale(1);
}
50% {
transform: scale(1.2);
}
100% {
transform: scale(1);
}
}
</style>
```
这段代码实现了一个按钮和勾选框的交互。用户可以勾选想要点击的按钮,并在点击开始按钮后,程序会自动按照设定的时间间隔模拟用户点击按钮的行为。同时,点击的按钮会有一个点击动画。停止按钮也会在点击后变色。
写一个JSP页面, 包含CSS样式,具体要求:页面分为上中下三块, 1.第一块是新增行,删除行的按钮, 在下方列表的右边 2.第二块是个列表,居中,宽度占页面的一半 列表值初始化读取接口/query数据; 列表中包含标题名称为一,二,三,四,五,六共6列, 第一列的值为行选择框, 第二四六列的值为下拉选框,第三五列的值为数字填写框; 3.第三块是保存按钮,在上方列表的右边,用ajax调用后台接口/save保存
好的,这是一个比较具体的实现要求。我可以给你一个简单的示例代码,帮助你理解如何实现这个 JSP 页面。
首先是 HTML 代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>三块式页面</title>
<style>
/* 样式代码 */
.container {
display: flex;
flex-direction: column;
height: 100%;
}
.header, .footer {
height: 50px;
background-color: #ccc;
display: flex;
justify-content: flex-end;
align-items: center;
padding: 0 20px;
}
.content {
flex: 1;
display: flex;
justify-content: center;
align-items: center;
}
.list {
border: 1px solid #ccc;
width: 50%;
padding: 20px;
box-sizing: border-box;
}
.list table {
width: 100%;
}
.list th, .list td {
padding: 10px;
text-align: center;
}
.list th {
background-color: #eee;
}
.list td select, .list td input {
width: 100%;
box-sizing: border-box;
}
.list td:first-child {
text-align: center;
}
.button {
padding: 10px 20px;
background-color: #2196F3;
color: #fff;
border-radius: 5px;
cursor: pointer;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<div class="button">新增行</div>
<div class="button">删除行</div>
</div>
<div class="content">
<div class="list">
<table>
<tr>
<th>一</th>
<th>二</th>
<th>三</th>
<th>四</th>
<th>五</th>
<th>六</th>
</tr>
<tr>
<td><input type="checkbox"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
<td><input type="number"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
<td><input type="number"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
<td><input type="number"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
<td><input type="number"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
<td><input type="number"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
<td><input type="number"></td>
<td><select><option>选项1</option><option>选项2</option></select></td>
</tr>
</table>
</div>
</div>
<div class="footer">
<div class="button">保存</div>
</div>
</div>
</body>
</html>
```
这是一个比较简单的 HTML 页面,包含了三个部分:头部、内容和底部。其中内容部分又分为一个列表部分,样式代码中加了注释,你可以通过注释了解每个部分的具体实现细节。
接下来是 JS 代码:
```javascript
// 保存按钮点击事件
document.querySelector('.footer .button').addEventListener('click', function() {
// 获取列表中的数据
var data = [];
var rows = document.querySelectorAll('.list table tr');
for (var i = 1; i < rows.length; i++) {
var row = rows[i];
var checkbox = row.querySelector('input[type="checkbox"]');
var selects = row.querySelectorAll('select');
var inputs = row.querySelectorAll('input[type="number"]');
var rowData = {
checked: checkbox.checked,
select1: selects[0].value,
input1: inputs[0].value,
select2: selects[1].value,
input2: inputs[1].value,
select3: selects[2].value
};
data.push(rowData);
}
// 发送 AJAX 请求保存数据
var xhr = new XMLHttpRequest();
xhr.open('POST', '/save');
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
alert('保存成功!');
}
};
xhr.send(JSON.stringify(data));
});
```
这段代码中,我们为保存按钮添加了一个点击事件,当点击保存按钮时,会获取列表中的数据,并通过 AJAX 请求将数据发送给后台保存。这里使用了原生的 XMLHttpRequest 对象发送 AJAX 请求,你也可以使用 jQuery 或其他框架来发送请求。
以上就是一个简单的实现示例,你可以根据自己的具体需求进行修改和扩展。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)