HTML代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Flex Layout Responsive</title>
</head>
<body>
<div class="parent">
<div class="child1"></div>
<div class="child2"></div>
<div class="child3"></div>
</div>
<script src="script.js"></script>
</body>
</html>
CSS代码
.parent {
display: flex;
}
.child1,
.child2,
.child3 {
background-color: lightblue;
margin: 10px;
}
JavaScript代码
function updateLayout() {
const parent = document.querySelector('.parent');
const windowWidth = window.innerWidth;
if (windowWidth > 800) {
parent.style.flexDirection = 'row';
parent.style.justifyContent = 'space-around';
document.querySelectorAll('.child1, .child2, .child3').forEach((child) => {
child.style.width = '30%';
child.style.height = 'auto';
});
} else {
parent.style.flexDirection = 'column';
document.querySelectorAll('.child1, .child2, .child3').forEach((child) => {
child.style.width = 'auto';
child.style.height = 'auto';
});
}
}
// 页面加载时调用一次
updateLayout();
// 窗口大小改变时调用
window.addEventListener('resize', updateLayout);