- 评论项/表单/工具栏/筛选/分页/空状态 DOM 全部替换为 zibll 原始类名 (li.comment、comt-main、comt-meta、list-inline、dropup 工具栏、 theme-pagination/pagenav、post_ajax_loader 骨架等) - 移植 zibll main.css L9412–9751 桌面 + 移动端评论样式, 缺失基础组件(title-theme/dropdown-menu/line-form/tab-nav-theme 等) 以 #comments 作用域补齐 - 删除全部 aksrt-comment__* 旧类名与旧样式,无兼容层 - JS 选择器对齐 zibll DOM:片段整块替换 #postcomments、骨架加载、 跳页输入、prepend 插入、addComment onclick 剥离, 移除 WP comment-reply enqueue 避免双 moveForm - 表情资源替换为 zibll 全套 gif(内容逐字节一致,git 无差异) - REST 后端 (CommentActions) 不变 验证:php -l 全部通过;5 个改动 JS 语法校验通过; node --test tests/widget-system/post-visual-contract.test.cjs 12/12 通过
697 lines
14 KiB
CSS
697 lines
14 KiB
CSS
/* ============================================================
|
||
* AKSRT Comments — Zibll 1:1 移植
|
||
*
|
||
* 来源:zibll/css/main.css L9412–9751(评论模块 + 分页)及评论所依赖的
|
||
* 基础组件(title-theme / dropdown-menu / line-form / tab-nav-theme /
|
||
* 工具栏下拉 / placeholder 骨架)。除 Zibll 原生 #comments/#postcomments
|
||
* 作用域外,缺失的全局基础类一律以 #comments 前缀作用域移植,避免影响
|
||
* 主题其它模块。
|
||
* ============================================================ */
|
||
|
||
/*------评论模块------*/
|
||
#comments .comment-box .comments-closed,
|
||
#comments .action-text,
|
||
#comments #cancel-comment-reply-link {
|
||
display: none;
|
||
}
|
||
|
||
#comments #postcomments .action-text,
|
||
#comments #postcomments #cancel-comment-reply-link {
|
||
display: inline-block;
|
||
}
|
||
|
||
#comments .comt-title {
|
||
width: 90px;
|
||
}
|
||
|
||
#comments .comt-title .comt-avatar .avatar {
|
||
width: 60px;
|
||
height: 60px;
|
||
}
|
||
|
||
#comments #postcomments .comt-title {
|
||
display: none;
|
||
}
|
||
|
||
#respond:not(.mobile-fixed) #postcomments .comt-box {
|
||
padding: 5px 5px 4px 5px;
|
||
background: var(--main-bg-color);
|
||
border-radius: 4px;
|
||
margin-top: 12px;
|
||
}
|
||
|
||
#comments #postcomments .comt-ctrl .but {
|
||
margin-bottom: 2px;
|
||
}
|
||
|
||
#comments .list-inline {
|
||
padding: 15px;
|
||
margin-left: 0;
|
||
}
|
||
|
||
#comments .list-inline > li {
|
||
vertical-align: middle;
|
||
}
|
||
|
||
#comment {
|
||
margin-bottom: 5px;
|
||
width: 100%;
|
||
}
|
||
|
||
.comment-signarea {
|
||
background: var(--main-shadow);
|
||
}
|
||
|
||
#respond + #postcomments .comment-filter,
|
||
.comment-signarea + #postcomments .comment-filter {
|
||
margin-top: 20px;
|
||
}
|
||
|
||
#postcomments .tab-nav-theme {
|
||
margin-top: 0;
|
||
}
|
||
|
||
#postcomments .tab-nav-theme li {
|
||
padding-bottom: 1px;
|
||
}
|
||
|
||
#postcomments .tab-nav-theme li::before {
|
||
bottom: -2px;
|
||
}
|
||
|
||
.smilie-icon {
|
||
width: 30px !important;
|
||
display: inline-block;
|
||
padding: 3px;
|
||
}
|
||
|
||
#postcomments .comment-footer {
|
||
position: relative;
|
||
}
|
||
|
||
#postcomments .avatar-img {
|
||
--this-size: 45px;
|
||
margin-right: 20px;
|
||
}
|
||
|
||
#postcomments .children .avatar-img {
|
||
--this-size: 26px;
|
||
vertical-align: 2px;
|
||
margin-right: 6px;
|
||
}
|
||
|
||
#postcomments .commentlist > .comment > .list-inline .author-box {
|
||
align-items: start;
|
||
}
|
||
|
||
#postcomments .commentlist > .comment > .list-inline .comment-footer {
|
||
margin-left: 65px;
|
||
margin-top: -25px;
|
||
}
|
||
|
||
#postcomments .comment .list-inline > .comt-main {
|
||
width: 100%;
|
||
}
|
||
|
||
#postcomments .commentlist .comment + .comment {
|
||
border-top: 1px solid var(--main-border-color);
|
||
}
|
||
|
||
#postcomments .comment .list-inline > li {
|
||
padding: 10px;
|
||
vertical-align: top;
|
||
}
|
||
|
||
#postcomments .comment-header {
|
||
font-size: 15px;
|
||
position: relative;
|
||
}
|
||
|
||
#postcomments .action count {
|
||
margin-left: 4px;
|
||
}
|
||
|
||
#postcomments .comt-meta > span:not(:empty) {
|
||
margin-right: 10px;
|
||
vertical-align: middle;
|
||
}
|
||
|
||
#postcomments .comt-meta > span a {
|
||
color: inherit;
|
||
}
|
||
|
||
#postcomments .comt-meta > span .but {
|
||
padding: 0.2em 0.8em;
|
||
}
|
||
|
||
#postcomments .comment-approve-link.unapprove {
|
||
color: #e87725;
|
||
}
|
||
|
||
#postcomments .comment-approve-link.approve {
|
||
color: #3695ff;
|
||
}
|
||
|
||
#postcomments .comt-meta > span .comment-trash-link {
|
||
color: #ff4b4b;
|
||
}
|
||
|
||
#postcomments .children {
|
||
margin-left: 86px;
|
||
background: var(--main-shadow);
|
||
border-radius: var(--main-radius);
|
||
margin-bottom: 6px;
|
||
}
|
||
|
||
#postcomments .children .children {
|
||
margin-left: 23px;
|
||
}
|
||
|
||
#postcomments .children .avatar-icontag {
|
||
font-size: 8px;
|
||
height: 14px;
|
||
width: 14px;
|
||
}
|
||
|
||
.content-after-box,
|
||
.comment-content {
|
||
word-wrap: break-word;
|
||
white-space: pre-wrap;
|
||
}
|
||
|
||
.comment-content .enlighter-default {
|
||
margin-bottom: 0;
|
||
opacity: 0.9;
|
||
}
|
||
|
||
#postcomments .comment-content img:not(.smilie-icon) {
|
||
max-width: 260px;
|
||
max-height: 350px;
|
||
display: block;
|
||
width: auto;
|
||
height: auto;
|
||
}
|
||
|
||
.virtual-input {
|
||
display: none;
|
||
}
|
||
|
||
.commentlist .no-more,
|
||
#comments .theme-pagination.pagenav {
|
||
margin: 0;
|
||
padding-bottom: 10px;
|
||
}
|
||
|
||
/*--------AJAX翻页按钮-----*/
|
||
#comments .theme-pagination {
|
||
margin: 20px 0;
|
||
}
|
||
|
||
#comments .chat-next a,
|
||
#comments .theme-pagination .ajax-next a,
|
||
#comments .theme-pagination .order-ajax-next a {
|
||
border-radius: 30px;
|
||
padding: 5px 15px;
|
||
color: var(--muted-color);
|
||
opacity: 0.6;
|
||
display: inline-block;
|
||
}
|
||
|
||
#comments .chat-next a:hover,
|
||
#comments .theme-pagination .ajax-next a:hover,
|
||
#comments .theme-pagination .order-ajax-next a:hover {
|
||
background: var(--main-border-color);
|
||
opacity: 1;
|
||
}
|
||
|
||
#comments .chat-next a .fa,
|
||
#comments .theme-pagination .ajax-next .fa,
|
||
#comments .theme-pagination .ajax-next .icon,
|
||
#comments .theme-pagination .order-ajax-next .fa,
|
||
#comments .theme-pagination .order-ajax-next .icon {
|
||
margin-right: 15px;
|
||
transition: 0.3s;
|
||
}
|
||
|
||
#comments .chat-next a:hover .fa,
|
||
#comments .theme-pagination .ajax-next a:hover .fa,
|
||
#comments .theme-pagination .ajax-next a:hover .icon,
|
||
#comments .theme-pagination .order-ajax-next a:hover .fa,
|
||
#comments .theme-pagination .order-ajax-next a:hover .icon {
|
||
margin-right: 8px;
|
||
}
|
||
|
||
/*--------数字分页按钮-----*/
|
||
#comments .pagenav {
|
||
overflow: hidden;
|
||
text-align: center;
|
||
padding: 20px 0;
|
||
transition: 0.2s;
|
||
line-height: 1.4;
|
||
}
|
||
|
||
#comments .pagenav .current,
|
||
#comments .pagenav .page-numbers,
|
||
#comments .pagenav a {
|
||
padding: 6px 9px 5px;
|
||
color: var(--muted-color);
|
||
display: inline-block;
|
||
border-radius: 3px;
|
||
background-color: var(--main-border-color);
|
||
margin: 3px;
|
||
min-width: 31px;
|
||
}
|
||
|
||
#comments .pagenav .current {
|
||
background-color: var(--focus-color) !important;
|
||
color: #fff !important;
|
||
}
|
||
|
||
#comments .pagenav a:hover {
|
||
opacity: 0.7;
|
||
}
|
||
|
||
#comments .pagenav .pag-jump {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
position: relative;
|
||
}
|
||
|
||
#comments .pagenav .pag-jump .jump-icon {
|
||
z-index: 1;
|
||
}
|
||
|
||
#comments .pagenav .pag-jump .jump-icon:hover {
|
||
color: var(--focus-color);
|
||
}
|
||
|
||
#comments .pagenav .pag-jump .jump-input {
|
||
opacity: 0;
|
||
height: 100%;
|
||
width: 100%;
|
||
border-radius: 3px;
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
transition: 0.2s;
|
||
padding: 5px 22px 5px 5px;
|
||
}
|
||
|
||
#comments .pagenav .jump-input:focus,
|
||
#comments .pagenav .pag-jump:hover .jump-input {
|
||
opacity: 1;
|
||
}
|
||
|
||
/* ============================================================
|
||
* 评论依赖的基础组件(zibll main.css,作用域 #comments)
|
||
* ============================================================ */
|
||
|
||
/* 标题(zibll .title-theme) */
|
||
#comments .title-theme {
|
||
position: relative;
|
||
padding-left: 1.2em;
|
||
font-size: 15px;
|
||
}
|
||
|
||
#comments .title-theme small {
|
||
font-size: 80%;
|
||
opacity: 0.7;
|
||
margin-left: 0.4em;
|
||
}
|
||
|
||
#comments .title-theme::before {
|
||
position: absolute;
|
||
content: '';
|
||
width: 4px;
|
||
background: var(--theme-color);
|
||
top: 10%;
|
||
left: 2px;
|
||
bottom: 10%;
|
||
border-radius: 5px;
|
||
box-shadow: 1px 1px 3px -1px var(--theme-color);
|
||
}
|
||
|
||
/* 下拉菜单(zibll .dropdown-menu) */
|
||
#comments .dropdown-menu {
|
||
border-color: transparent;
|
||
background: var(--main-bg-color);
|
||
--this-color: var(--main-color);
|
||
color: var(--this-color);
|
||
box-shadow: 0 0 10px 8px var(--main-shadow);
|
||
min-width: 100px;
|
||
opacity: 0;
|
||
transform: translateY(6px);
|
||
transition: 0.3s;
|
||
display: block;
|
||
margin-top: 6px;
|
||
visibility: hidden;
|
||
list-style: none !important;
|
||
z-index: 992;
|
||
border-radius: var(--main-radius);
|
||
}
|
||
|
||
#comments .dropdown-menu a {
|
||
border-radius: var(--mini-radius);
|
||
}
|
||
|
||
#comments .dropup {
|
||
position: relative;
|
||
}
|
||
|
||
#comments span.dropup,
|
||
#comments span.dropdown {
|
||
display: inline-block;
|
||
}
|
||
|
||
#comments .dropup .dropdown-menu {
|
||
bottom: 100%;
|
||
margin-bottom: 6px;
|
||
margin-top: 0;
|
||
transform: translateY(-6px);
|
||
}
|
||
|
||
#comments .open > .dropdown-menu,
|
||
#comments .dropdown.open > .dropdown-menu {
|
||
visibility: unset;
|
||
opacity: 1;
|
||
transform: translateY(0);
|
||
}
|
||
|
||
#comments .dropdown-menu > li > a {
|
||
color: var(--this-color);
|
||
padding: 6px 20px;
|
||
text-shadow: none;
|
||
display: block;
|
||
}
|
||
|
||
#comments .dropdown-menu > li > a:hover {
|
||
background: var(--focus-color-opacity05);
|
||
}
|
||
|
||
/* 游客信息 line-form(zibll .line-form / .scale-placeholder / .line-form-input) */
|
||
#comments .line-form {
|
||
position: relative;
|
||
}
|
||
|
||
#comments .line-form .abs-right {
|
||
margin-top: 3px;
|
||
}
|
||
|
||
#comments .line-form-input {
|
||
outline: 0 !important;
|
||
border: none;
|
||
display: block;
|
||
width: 100%;
|
||
padding: 1em 2em 0.4em 0.3em;
|
||
opacity: 0.8;
|
||
transition: 0.3s;
|
||
background: transparent !important;
|
||
}
|
||
|
||
#comments .line-form-input::-webkit-input-placeholder {
|
||
color: var(--muted-2-color);
|
||
}
|
||
|
||
#comments .line-form-input:focus {
|
||
opacity: 1;
|
||
}
|
||
|
||
#comments .scale-placeholder {
|
||
position: absolute;
|
||
bottom: 5px;
|
||
opacity: 0.5;
|
||
transition: 0.2s;
|
||
padding-left: 4px;
|
||
transform-origin: left top;
|
||
user-select: none;
|
||
pointer-events: none;
|
||
backface-visibility: hidden;
|
||
z-index: 1;
|
||
cursor: text;
|
||
}
|
||
|
||
#comments .scale-placeholder.is-focus,
|
||
#comments input:focus ~ .scale-placeholder {
|
||
transform: translateY(-20px);
|
||
font-size: 11px;
|
||
}
|
||
|
||
#comments input:focus ~ .scale-placeholder {
|
||
color: var(--focus-color);
|
||
opacity: 0.9;
|
||
}
|
||
|
||
/* 排序筛选标签(zibll .tab-nav-theme) */
|
||
#comments .tab-nav-theme {
|
||
border-bottom: 1px solid var(--main-border-color);
|
||
padding-bottom: 6px;
|
||
margin: 8px 0 5px;
|
||
list-style: none;
|
||
}
|
||
|
||
#comments .tab-nav-theme li,
|
||
#comments .tab-nav-theme ul {
|
||
list-style: none;
|
||
}
|
||
|
||
#comments .tab-nav-theme li {
|
||
position: relative;
|
||
display: inline-block;
|
||
padding: 0 8px 6px;
|
||
}
|
||
|
||
#comments .tab-nav-theme li::before {
|
||
content: '';
|
||
position: absolute;
|
||
width: 20px;
|
||
height: 2px;
|
||
background: var(--theme-color);
|
||
border-radius: 5px;
|
||
left: 0;
|
||
right: 0;
|
||
margin: auto;
|
||
bottom: 5px;
|
||
opacity: 0;
|
||
transition: 0.4s;
|
||
}
|
||
|
||
#comments .tab-nav-theme li.active::before {
|
||
opacity: 1;
|
||
}
|
||
|
||
#comments .tab-nav-theme li a {
|
||
color: var(--muted-color);
|
||
display: inline-block;
|
||
}
|
||
|
||
#comments .tab-nav-theme li.active a {
|
||
color: var(--focus-color);
|
||
}
|
||
|
||
/* 置顶徽章(zibll badge.badge-topping) */
|
||
#comments badge.badge-topping {
|
||
min-width: 1.4em;
|
||
padding: 0 2px;
|
||
line-height: 1.4em;
|
||
border-radius: 0.45em 2px;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
text-align: center;
|
||
color: #fff;
|
||
}
|
||
|
||
/* 工具栏下拉(zibll .dropdown-smilie / .dropdown-code / .dropdown-image / .dropdown-link / quick) */
|
||
#comments .dropdown-smilie {
|
||
width: 260px;
|
||
height: 300px;
|
||
padding: 8px 10px;
|
||
white-space: inherit;
|
||
text-align: center;
|
||
}
|
||
|
||
#comments .dropdown-smilie .smilie-icon {
|
||
display: inline-block;
|
||
padding: 3px;
|
||
width: 38px !important;
|
||
}
|
||
|
||
#comments .dropdown-smilie .smilie-icon img {
|
||
width: 30px;
|
||
height: 30px;
|
||
display: block;
|
||
}
|
||
|
||
#comments .dropdown-quick-often {
|
||
width: 260px;
|
||
}
|
||
|
||
#comments .dropdown-quick-often .scroll-y {
|
||
max-height: 280px;
|
||
}
|
||
|
||
#comments .dropdown-quick-often .list-inline {
|
||
padding: 0 10px !important;
|
||
}
|
||
|
||
#comments .quick-reply-item {
|
||
padding: 6px 0;
|
||
color: var(--muted-color);
|
||
margin: 0 10px;
|
||
cursor: pointer;
|
||
}
|
||
|
||
#comments .quick-reply-item + .quick-reply-item {
|
||
border-top: 1px solid var(--main-border-color);
|
||
}
|
||
|
||
#comments .quick-reply-item:hover {
|
||
color: var(--focus-color);
|
||
}
|
||
|
||
#comments .dropdown-link,
|
||
#comments .dropdown-code,
|
||
#comments .dropdown-image {
|
||
width: 250px;
|
||
padding: 8px 10px;
|
||
}
|
||
|
||
#comments .dropdown-menu .dropdown-link,
|
||
#comments .dropdown-menu .dropdown-code,
|
||
#comments .dropdown-menu .dropdown-image,
|
||
#comments .dropdown-menu .dropdown-quick-often {
|
||
box-shadow: none;
|
||
background: transparent;
|
||
min-width: 0;
|
||
opacity: 1;
|
||
visibility: unset;
|
||
transform: none;
|
||
margin: 0;
|
||
display: block;
|
||
}
|
||
|
||
#comments .scroll-y {
|
||
overflow-y: auto;
|
||
}
|
||
|
||
/* 占位骨架(zibll .placeholder) */
|
||
#comments .placeholder {
|
||
background: linear-gradient(118deg, rgba(121, 121, 121, 0.1) 25%, rgba(121, 121, 121, 0.2) 37%, rgba(121, 121, 121, 0.1) 63%);
|
||
opacity: 1;
|
||
border-radius: 4px;
|
||
animation: aksrt-comment-placeholder 1.5s ease infinite !important;
|
||
background-size: 400% 100% !important;
|
||
}
|
||
|
||
#comments .placeholder.k2 {
|
||
height: 20px;
|
||
}
|
||
|
||
#comments .placeholder.s1 {
|
||
width: 70px;
|
||
height: 15px;
|
||
display: inline-block;
|
||
}
|
||
|
||
#comments .placeholder.radius {
|
||
border-radius: 50%;
|
||
width: 45px;
|
||
height: 45px;
|
||
}
|
||
|
||
#comments .post_ajax_loader {
|
||
display: none;
|
||
}
|
||
|
||
@keyframes aksrt-comment-placeholder {
|
||
0% {
|
||
background-position: 100% 50%;
|
||
}
|
||
100% {
|
||
background-position: 0 50%;
|
||
}
|
||
}
|
||
|
||
/* 工具类(zibll,作用域 #comments) */
|
||
#comments .text-right {
|
||
text-align: right;
|
||
}
|
||
|
||
#comments .hide-sm {
|
||
display: inline;
|
||
}
|
||
|
||
#comments .pw-1em {
|
||
padding-left: 1em;
|
||
padding-right: 1em;
|
||
}
|
||
|
||
#comments .p2-10 {
|
||
padding: 2px 10px;
|
||
}
|
||
|
||
#comments .padding-6 {
|
||
padding: 6px;
|
||
}
|
||
|
||
#comments .mb6 {
|
||
margin-bottom: 6px;
|
||
}
|
||
|
||
/* 评论作者行布局补充(zibll author-box / name) */
|
||
#comments .comment-header .author-box {
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
#comments .comment-header name {
|
||
display: flex;
|
||
align-items: center;
|
||
min-width: 0;
|
||
}
|
||
|
||
#comments .comment-header name a,
|
||
#comments .comment-header name b {
|
||
max-width: 14em;
|
||
}
|
||
|
||
#comments .comment-header .action-comment-like {
|
||
text-decoration: none;
|
||
color: var(--muted-2-color);
|
||
}
|
||
|
||
#comments .comment-header .action-comment-like.actived,
|
||
#comments .comment-header .action-comment-like.actived .fa {
|
||
color: var(--focus-color);
|
||
}
|
||
|
||
#comments .comt-meta {
|
||
font-size: 12px;
|
||
}
|
||
|
||
#comments .comt-meta .dropdown-menu a {
|
||
display: block;
|
||
}
|
||
|
||
/* 身份徽章(AKSRT 渲染于 <name> 内,随 zibll ml3 间距) */
|
||
#comments .comment-header .aksrt-identity-chip {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 3px;
|
||
vertical-align: middle;
|
||
max-width: 9em;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
font-size: 11px;
|
||
}
|
||
|
||
#comments .comment-header .aksrt-identity-medal {
|
||
display: inline-block;
|
||
width: auto;
|
||
height: 1.1em;
|
||
max-width: 6em;
|
||
object-fit: contain;
|
||
vertical-align: -0.15em;
|
||
}
|