136 lines
3.8 KiB
CSS
136 lines
3.8 KiB
CSS
/* 问号图标 */
|
||
.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;
|
||
}
|
||
|