body { font-family: Arial, sans-serif; background-color: #f0f0f0; display: flex; justify-content: center; align-items: flex-start; min-height: 100vh; margin: 0; padding-top: 20px; } .card-container { width: 90%; max-width: 1200px; display: flex; flex-wrap: wrap; gap: 1em; } .card { background: white; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); overflow: hidden; padding: 1em; text-align: center; cursor: pointer; width: calc(33% - 1em); } .add-card { display: flex; justify-content: center; align-items: center; cursor: pointer; height: 150px; font-size: 2em; color: #888; border: 2px dashed #ccc; width: calc(33% - 1em); order: 999; } .add-icon { font-weight: bold; } .card img { width: 100%; height: auto; border-radius: 10px; margin-bottom: 0.5em; } .card .title { font-size: 1.2em; font-weight: bold; margin-bottom: 0.5em; } .card .content { font-size: 1em; color: #555; } .card .date { font-size: 0.8em; color: #999; margin-top: 0.5em; } /*点击卡片弹出的模态框*/ .card-modal { position: fixed; /* 固定定位,使模态框相对于视口固定 */ top: 0; /* 距离视口顶部0,贴齐顶部 */ left: 0; /* 距离视口左侧0,贴齐左边 */ width: 100%; /* 宽度占满整个视口 */ height: 100%; /* 高度占满整个视口 */ background: rgba(0, 0, 0, 0.5);/* 半透明黑色背景,营造遮罩效果 */ display: flex; /* 使用Flex布局 */ visibility: hidden; /* 初始状态下隐藏模态框 */ } .card-modal.active { visibility: visible; /* 添加active类后,模态框可见 */ } .card-modal-container { width: 100%; /* 容器宽度为父元素的90% */ display: flex; /* 使用Flex布局 */ flex-wrap: wrap; /* 允许子元素换行 */ gap: 1em; /* 子元素之间的间距为1em */ } .card-modal-left { width: 10%; background: #f3f3f3; } .card-modal-right { width: 85%; background: #f3f3f3; } .card-modal-group-box-container { margin-left: 250px; /* 左外边距 */ display: flex; /* 使用Flex布局 */ flex-wrap: wrap; /* 允许子元素换行 */ gap: 1em; /* 子元素之间的间距为1em */ } /*模态框里的节点组*/ .card-modal-group-box { background: white; /* 背景颜色为白色 */ border-radius: 10px; /* 圆角半径为10像素 */ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* 添加阴影效果 */ overflow: hidden; /* 隐藏超出部分内容 */ padding: 1em; /* 内边距为1em */ margin-left: 25px; /* 左外边距 */ margin-top: 30px; text-align: center; /* 文本居中对齐 */ cursor: pointer; /* 鼠标悬停时显示指针样式 */ width: calc(18% - 1em); /* 宽度为33%减去1em */ } .card-modal-group-box .state-box { width: 100%; /* 设置宽度为60像素 */ height: 90px; /* 设置高度为90像素 */ display: flex; /* 使用 Flex 布局 */ justify-content: center; /* 水平居中对齐内容 */ align-items: center; /* 垂直居中对齐内容 */ background: linear-gradient(to bottom, #f9f9f9, #eaeaea); /* 添加柔和的渐变背景 */ border-radius: 12px; /* 圆角半径为12像素,营造圆润效果 */ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 添加细腻的阴影 */ font-size: 16px; /* 设置字体大小 */ font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; /* 使用苹果常用字体 */ color: #333; /* 设置深灰色字体 */ } .card-modal-group-box .title { font-size: 1.2em; font-weight: bold; margin-bottom: 0.5em; } .card-modal-group-box .content { font-size: 1em; color: #555; } /*关闭模态框按钮*/ .card-modal-close-button { position: absolute; top: 10px; left: 10px; background: #007bff; color: #fff; border: none; border-radius: 5px; padding: 0.5em 1em; cursor: pointer; } .menu-bar { background: #ffffff; border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2); padding: 0.5em; visibility: hidden; } .menu-bar button { display: block; width: 100%; margin-bottom: 0.5em; padding: 0.5em; background: #007bff; color: #fff; border: none; border-radius: 5px; cursor: pointer; } .menu-bar button:last-child { margin-bottom: 0; } .card-modal-group-box:hover .menu-bar { visibility: visible; } .modal-content input { width: 100%; padding: 0.5em; margin: 0.5em 0; border: 1px solid #ccc; border-radius: 5px; } .modal-buttons { display: flex; justify-content: space-between; margin-top: 1em; } /* 组内节点详情模态框样式 */ .group-node-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: none; /* 默认隐藏 */ justify-content: center; align-items: center; background-color: rgba(0, 0, 0, 0.3); /* 柔和的半透明背景 */ z-index: 9999; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; } .group-node-modal.active { display: flex; /* 显示模态框 */ } .group-node-modal-container { background-color: #f9f9f9; padding: 20px; border-radius: 15px; width: 500px; max-width: 90%; max-height: 90%; /* 限制模态框的高度 */ overflow-y: auto; /* 超出内容时启用滚动 */ position: relative; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); } /* 关闭按钮样式 */ .group-node-modal-close-button { position: absolute; top: 10px; right: 10px; background: none; border: none; font-size: 18px; color: #007aff; cursor: pointer; } /* 字段容器 */ .group-node-modal-content p { background-color: #fff; padding: 10px; border-radius: 10px; border: 1px solid #e5e5ea; margin-bottom: 10px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); font-size: 16px; color: #333; display: flex; flex-direction: column; /* 让标签和内容垂直排列 */ word-break: break-word; /* 防止超长内容溢出,自动换行 */ overflow-wrap: break-word; /* 长词自动换行 */ } /* 标签与内容的分隔 */ .group-node-modal-content p strong { color: #8e8e93; margin-bottom: 5px; } /* 模态框标题 */ .group-node-modal-content h3 { margin-bottom: 15px; font-size: 20px; color: #333; font-weight: bold; text-align: center; } /* iOS 风格的按钮 */ .group-node-modal-container button { background-color: #007aff; color: white; border: none; padding: 10px 15px; border-radius: 10px; font-size: 16px; cursor: pointer; margin-top: 15px; width: 100%; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); } .group-node-modal-container button:hover { background-color: #005dbb; } /* 超长文本处理 */ .group-node-modal-content p { max-height: 80px; /* 限制每个字段的最大高度 */ overflow: hidden; text-overflow: ellipsis; /* 超出内容时添加省略号 */ white-space: nowrap; /* 禁止换行 */ } .group-node-modal-content p:hover { white-space: normal; /* 当鼠标悬停时显示完整内容 */ max-height: none; /* 取消高度限制 */ overflow: visible; /* 显示完整文本 */ }