Files
hsa/Html/apps/static/css/lesson.css
2025-11-03 16:14:57 +08:00

136 lines
3.8 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 问号图标 */
.help-icon {
display: inline-block;
margin-left: 8px;
color: #888;
font-weight: bold;
cursor: help;
}
.help-icon:hover { color: #4CAF50; }
/* Portal Tooltip挂在 body 下) */
.tooltip-portal {
position: fixed; /* 不受父级 overflow 影响 */
left: 0; top: 0;
z-index: 999999; /* 足够高,覆盖侧栏等 */
display: none;
opacity: 0;
transition: opacity .08s linear;
background: rgba(0,0,0,.9);
color: #fff;
padding: 6px 10px;
border-radius: 6px;
font-size: 13px;
line-height: 1.4;
pointer-events: none; /* 鼠标穿透,避免闪烁 */
white-space: nowrap;
box-shadow: 0 4px 12px rgba(0,0,0,.25);
}
.add-step-btn, .add-phase-btn {
background-color: #4CAF50;
color: white;
display: block;
border: none;
padding: 5px 10px;
font-size: 14px;
border-radius: 5px;
cursor: pointer;
margin-top: 5px;
margin-left: 10px;
}
.add-step-btn{
margin-left: 30px;
}
.add-step-btn:hover, .add-phase-btn:hover {
background-color: #45a049;
}
/* 增加按钮与大纲列表的间距 */
#outline-tree li {
margin: 5px 0;
}
#outline-tree li.lvl2 {
padding-left: 1px;
}
#outline-tree li.lvl3 {
padding-left: 20px;
}
/* 删除模式下可删除的节点样式 */
.outline.delete-mode #outline-tree .lvl2,
.outline.delete-mode #outline-tree .lvl3 {
border: 1px solid #dc2626; /* 红色边框 */
border-radius: 6px;
padding: 4px 6px;
transition: background-color .15s ease, box-shadow .15s ease;
cursor: pointer;
}
.outline.delete-mode #outline-tree .lvl2:hover,
.outline.delete-mode #outline-tree .lvl3:hover {
background: rgba(220,38,38,.06); /* 微红背景 */
box-shadow: 0 0 0 2px rgba(220,38,38,.15) inset;
}
/* 删除按钮样式(可按需调整) */
.delete-btn {
margin-left: 6px;
border: none;
background: transparent;
cursor: pointer;
padding: 6px;
border-radius: 8px;
}
.delete-btn[aria-pressed="true"] {
background: rgba(220,38,38,.12);
outline: 2px solid #dc2626;
}
.delete-btn:focus-visible { outline: 2px solid #4c9ffe; }
.details-header { display:flex; justify-content:space-between; align-items:center; }
.close-btn { border:none; background:transparent; font-size:22px; cursor:pointer; }
/* 主体布局 */
.lesson-editor { display:flex; height: calc(100vh - 20px); gap: 12px; padding: 12px; }
.outline {
width: 280px; border:1px solid #eee; border-radius:10px; padding:10px;
overflow:auto; background:#fafafa;
}
.outline-header { font-weight:700; margin-bottom:8px; }
#outline-tree { list-style:none; padding-left:0; }
#outline-tree li { margin:4px 0; cursor:pointer; }
#outline-tree .lvl1 { font-weight:700; }
#outline-tree .lvl2 { margin-left:12px; }
#outline-tree .lvl3 { margin-left:24px; }
#outline-tree li.active { background:#eaf6ff; border-radius:6px; font-weight: bold; }
.editor-pane {
flex:1; display:flex; flex-direction:column; min-width:0;
border:1px solid #eee; border-radius:10px;
}
.editor-tabs { display:flex; align-items:center; gap:8px; padding:8px; border-bottom:1px solid #eee; }
.tab-btn { border:1px solid #ddd; background:#fff; padding:6px 10px; border-radius:8px; cursor:pointer; }
.tab-btn.active { background:#f0f8ff; border-color:#a0c4ff; }
.actions { margin-left:auto; }
.actions button { padding:6px 12px; border:none; border-radius:8px; background:#4CAF50; color:#fff; cursor:pointer; }
.tab-content { flex:1; padding:8px;display: flex; }
.tab { display:none; height:100%; }
.tab.active { display:block; height:100%; }
textarea {
width:100%; height: calc(100vh - 180px);
border:1px solid #ddd; border-radius:8px; padding:10px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
box-sizing:border-box; resize: vertical;
}