Files
wordpress-kratos-yang/assets/css/kratos.css
T
laoyang c1dde099d7 「个人简介」挂件:头像/昵称/简介/背景四项可单独填 + 修大图撑爆 #21
一、头像 / 昵称 / 简介原来**只读主题设置**,挂件表单里没有字段
  · 用户点开侧栏「个人简介」只能改背景图,头像和那句话得跑去
    「主题设置 → 站长信息」改全站共用的那份。
  · 现在四项都是挂件实例字段:avatar / nickname / introduce / background。
  · 取值顺序:实例 → 主题设置 → 内置兜底,**留空即回落**,
    老站点升级后显示一点不变。
  · pick() 判空统一用「trim 后是不是空串」,不用 empty()
    (!empty('0') 是 false,昵称就叫「0」会被当没填)。
  · 简介用 sanitize_textarea_field(保留换行),URL 用 esc_url_raw
    (不做 HTML 实体化,避免与 esc_attr 双重转义)。

二、后台 form() 补齐五个字段
  · 头像 / 背景各带「选择图片」按钮(调媒体库),背景另有「清除」。
  · 输入框显示用户填的原始值,缩略图显示前台最终会用的那张,刻意分开。
  · 资源加载统一到 yang_widget_admin_assets(),不再每个挂件各挂一次。

三、大图撑爆挂件的真因:CSS 选择器依赖三层祖先
  · 老规则是 `.k-main .sidebar .w-about .wrapper img`,而后台
    「外观 → 小工具」预览里没有 `.k-main .sidebar` 这层祖先,
    规则一条都不生效 ⇒ 头像按原图 2136×2136 铺开、背景塌成 0。
    前台看着正常是因为前台恰好有那层祖先,问题被完全掩盖。
  · 改为只管 `.w-about` 内部元素,并补 max-width/max-height 双保险。
  · 老规则必须**删掉**而不是并存:它是 (0,3,1),新规则是 (0,2,1),
    并存时老规则在前台永远赢,新规则只对后台生效。
  · 保留 `.k-main .sidebar .w-about { padding:0 }`:通用规则
    `.k-main .sidebar .widget` 是 (0,3,0),少了这条会多出内边距、整体高 57px。
  · 头像保持 inline(display:block 会让它脱离 text-align:center 的居中)。
  · 顺带:object-fit 从 fill 改 cover(超宽图不再压扁);
    背景 url() 补引号(文件名带空格时不再整条声明作废)。

验证
  · 行为测试 67 条全通过;反向验证 13 组全部真红。
  · 浏览器几何 76 条全通过(前台/后台 × 四种极端原图)。
  · 修复前 CSS 跑同一套判据:38 条报红,精确复现用户症状
    (后台挂件高 2217、头像 2136×2136、横向滚动 2146)。
  · 线上真实页面 + 新版 CSS:16 条全通过。
2026-10-26 23:51:20 +08:00

2444 lines
52 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.
@charset "UTF-8";
/*--------------------------------------------------------------
>>> Kratos 样式表
>>> Yongquan Yang <yangyq.net>
----------------------------------------------------------------
1. 全局
2. 导航
3. Banner
4. 分页按钮
5. 文章列表
6. 文章正文
7. 内容工具区
8. 文章评论
9. 小工具
10. 404
11. 页脚
--------------------------------------------------------------*/
/*--------------------------------------------------------------
1. 全局
--------------------------------------------------------------*/
body {
overflow-x: hidden;
background: #f5f5f5;
font-weight: 350;
font-size: 16px;
font-family: -apple-system, BlinkMacSystemFont, opensans, Optima,
"Microsoft Yahei", sans-serif;
line-height: 1.8;
}
a {
color: #00a2ff;
-webkit-transition: 0.3s;
-o-transition: 0.3s;
transition: 0.3s;
}
a:hover {
color: #0097ee;
text-decoration: none;
}
a:focus {
outline: 0;
text-decoration: none;
}
ol,
p,
ul {
margin-bottom: 16px;
color: #333;
font-size: 16px;
}
ul,
ol {
margin: 0 0 16px;
padding-left: 16px;
}
ol > li {
margin-bottom: 6px;
padding-left: 2px;
list-style: decimal;
line-height: 22px;
}
ul > li {
margin-bottom: 6px;
padding-left: 2px;
list-style: circle;
line-height: 22px;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin: 0 0 30px 0;
color: #333;
font-weight: 400;
}
.tooltip-inner {
padding: 7px 6px;
font-size: 13px;
}
:active,
:focus,
button:focus {
outline: none;
}
.btn-outline-primary.focus,
.btn-outline-primary:focus,
.btn-outline-primary:not(:disabled):not(.disabled).active:focus,
.btn-outline-primary:not(:disabled):not(.disabled):active:focus,
.show > .btn-outline-primary.dropdown-toggle:focus,
.form-control:focus {
box-shadow: none;
}
::-moz-placeholder {
color: #ffffff;
}
::-webkit-input-placeholder {
color: #ffffff;
}
:-ms-input-placeholder {
color: #ffffff;
}
::selection {
background: #ddd;
color: #000;
text-shadow: none;
}
::-webkit-selection {
background: #ddd;
color: #000;
text-shadow: none;
}
::-moz-selection {
background: #ddd;
color: #000;
text-shadow: none;
}
::-webkit-scrollbar {
overflow: auto;
width: 10px;
height: 6.4px;
}
::-webkit-scrollbar-thumb {
min-width: 25px;
min-height: 25px;
border: 1px solid #e0e0e0;
background-color: #bbbbbb;
}
::-webkit-scrollbar-track {
border: 1px solid #efefef;
background-color: #f7f7f7;
}
.k-main {
padding: 23px 0;
}
.k-main.color {
padding-top: 103px;
}
@media only screen and (max-width: 992px) {
.k-main.color {
padding-top: 92px;
}
}
@media only screen and (max-width: 768px) {
.k-main.color {
padding-top: 83px;
}
}
/*--------------------------------------------------------------
2. 导航
--------------------------------------------------------------*/
.k-nav {
position: absolute;
background-color: rgba(40, 42, 44, 0.6);
}
.k-nav .navbar-brand {
color: #ffffff;
font-size: 24px;
}
.k-nav .navbar-brand img {
width: 100px;
}
.k-nav .navbar-toggler {
padding: 13px;
border-color: transparent;
border-radius: 0;
color: #343a40;
text-transform: uppercase;
font-weight: 600;
font-size: 12px;
}
.k-nav .navbar-nav {
position: relative;
}
.k-nav .navbar-nav li {
margin-bottom: 0;
padding-left: 0;
list-style: none;
}
.k-nav .navbar-nav > li.nav-item > a {
text-transform: uppercase;
letter-spacing: 1px;
font-weight: 400;
font-size: 17px;
}
.k-nav .line {
display: flex;
width: 24px;
height: 2px;
background: #ffffff;
transition: all 0.3s ease-out;
}
.k-nav .second-line {
margin: 5px 0;
}
.nav-close .first-line {
transform: rotate(45deg) translate3d(5px, 5px, 0);
transform-origin: center;
}
.nav-close .second-line {
transform: scale3d(0, 1, 1);
}
.nav-close .third-line {
transform: rotate(-45deg) translate3d(5px, -5px, 0);
transform-origin: center;
}
.navbar-light .navbar-nav .nav-link,
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .show > .nav-link {
color: #ffffff;
}
.navbar-light .navbar-nav .nav-link:hover {
color: rgba(255, 255, 255, 0.8);
}
.navbar-light .navbar-nav .nav-link .fas {
margin-right: 3px;
}
.navbar-light .navbar-nav .dropdown-menu {
margin: 2px 0 0;
padding: 5px 0;
min-width: 140px;
border: none;
font-size: 15px;
}
.dropdown-item.active,
.dropdown-item:active {
background-color: #00a2ff;
}
.dropdown-toggle::after {
display: inline-block;
margin-left: 2px;
border-top: 0;
border-right: 0;
border-bottom: 0;
border-left: 0;
content: "\e62e";
vertical-align: unset;
font-size: 16px;
font-family: kicon;
transform: rotate(180deg);
}
/*--------------------------------------------------------------
导航多级下拉(3.2.27)
--------------------------------------------------------------
* Bootstrap 4 原生不支持嵌套下拉(.dropdown-submenu 在 BS3 有、
* BS4 删了),主题自己补齐。标记来自 theme-navwalker.php:
* 深层父项 <li class="... dropdown-submenu">,子菜单仍是 <ul class="dropdown-menu">。
*
* 桌面端(>992px)交互:**悬停父项,子菜单从右侧弹出**——
* left:100% 让子菜单左边缘贴住 li 右边缘,无缝隙(有缝隙鼠标
* 移过去就会离开 li,子菜单闪没);top:0 让两行首行对齐。
* 子菜单触发链接不带 data-toggle,开合完全走 CSS hover,
* 避免 Bootstrap 的 dropdown JS 用 Popper 重算位置、把子菜单
* 拽回"父项正下方",跟"从右侧弹出"打架。
*
* 移动端(≤992px):悬停不存在,改为**随父级展开直接平铺**:
* position:static + display:block,用左缩进表达层级。
* 整个菜单收起时它也在 .collapse 里,不会提前露出。 */
.navbar-light .navbar-nav .dropdown-submenu {
position: relative;
}
.navbar-light .navbar-nav .dropdown-submenu > .dropdown-menu {
top: 0;
left: 100%;
margin-top: -6px;
}
.navbar-light .navbar-nav .dropdown-submenu:hover > .dropdown-menu {
display: block;
}
/* 深层父项的箭头:顶层的 kicon 下箭头在这里换成朝右的 CSS 三角,
表达"向右还有一层"。必须同时清掉 kicon 字体与 rotate(180deg),
否则 content:"" 配上图标字体渲染不出任何东西。 */
.navbar-light .navbar-nav .dropdown-submenu > a.dropdown-toggle::after {
content: "";
border-top: 0.32em solid transparent;
border-bottom: 0.32em solid transparent;
border-left: 0.32em solid currentColor;
font-family: inherit;
transform: none;
vertical-align: 0.08em;
}
@media screen and (max-width: 992px) {
.navbar-light .navbar-nav .dropdown-submenu > .dropdown-menu {
position: static;
display: block;
float: none;
margin-left: 16px;
border-left: 1px solid rgba(255, 255, 255, 0.25);
}
.navbar-light .navbar-nav .dropdown-submenu > a.dropdown-toggle::after {
display: none;
}
}
@media only screen and (min-width: 992px) {
.k-nav {
border-bottom: 1px solid transparent;
background: transparent;
-webkit-transition: background-color 0.2s;
-moz-transition: background-color 0.2s;
transition: background-color 0.2s;
-webkit-transform: translate3d(0, 0, 0);
-moz-transform: translate3d(0, 0, 0);
-o-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
}
.k-nav .navbar-brand {
padding: 10px 20px;
color: #fff;
}
.k-nav .navbar-brand:focus,
.k-nav .navbar-brand:hover {
color: rgba(255, 255, 255, 0.8);
}
.k-nav .navbar-nav > li.nav-item > a {
padding: 10px 20px;
color: #fff;
}
.k-nav .navbar-nav > li.nav-item > a:focus,
.k-nav .navbar-nav > li.nav-item > a:hover {
color: rgba(255, 255, 255, 0.8);
}
.k-nav.is-fixed {
position: fixed;
top: -67px;
border-bottom: 1px solid white;
background-color: rgba(255, 255, 255, 0.9);
-webkit-transition: -webkit-transform 0.2s;
-moz-transition: -moz-transform 0.2s;
transition: transform 0.2s;
}
.k-nav.is-fixed .navbar-brand {
color: #212529;
}
.k-nav.is-fixed .navbar-brand:focus,
.k-nav.is-fixed .navbar-brand:hover {
color: #007bff;
}
.k-nav.is-fixed .navbar-nav > li.nav-item > a {
color: #212529;
}
.k-nav.is-fixed .navbar-nav > li.nav-item > a:focus,
.k-nav.is-fixed .navbar-nav > li.nav-item > a:hover {
color: #007bff;
}
.k-nav.is-visible {
-webkit-transform: translate3d(0, 100%, 0);
-moz-transform: translate3d(0, 100%, 0);
-o-transform: translate3d(0, 100%, 0);
transform: translate3d(0, 100%, 0);
-ms-transform: translate3d(0, 100%, 0);
}
}
@media screen and (max-width: 992px) {
.navbar-light .navbar-nav .dropdown-menu,
.navbar-light .navbar-nav .dropdown-item.active,
.navbar-light .navbar-nav .dropdown-item:active,
.navbar-light .navbar-nav .dropdown-item:focus,
.navbar-light .navbar-nav .dropdown-item:hover {
background-color: transparent;
}
.k-nav .navbar-nav > li.nav-item > a {
font-size: 16px;
}
.navbar-light .navbar-nav .dropdown-item {
color: #ffffff;
}
.navbar-light .navbar-nav .dropdown-menu {
padding: 0;
}
}
@media screen and (max-width: 768px) {
.k-nav .navbar-brand {
font-size: 19px;
}
.navbar-light .navbar-nav .nav-link {
font-size: 16px;
}
.navbar-light .navbar-brand:hover {
color: rgba(255, 255, 255, 0.8);
}
.k-nav .navbar-nav > li.nav-item > a {
font-size: 14px;
}
}
/*--------------------------------------------------------------
3. Banner
--------------------------------------------------------------*/
.k-header .banner {
position: relative;
height: 300px;
}
.k-header .banner .overlay {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1;
width: 100%;
background: rgba(66, 64, 64, 0.2);
}
.k-header .banner .content {
position: relative;
height: 300px;
background-position: center center;
background-size: cover;
}
.k-header .banner .content .introduce {
position: absolute;
top: 37%;
z-index: 10;
width: 100%;
color: #fff;
text-shadow: 2px 2px 2px #666;
cursor: default;
}
.k-header .banner .content .introduce .title {
margin-bottom: 5px;
font-size: 35px;
}
.k-header .banner .content .introduce .mate {
font-size: 25px;
}
@media screen and (max-width: 768px) {
.k-header .banner {
height: 290px;
}
.k-header .banner .content {
height: 290px;
}
.k-header .banner .content .introduce {
top: 43%;
}
.k-header .banner .content .introduce .title {
font-size: 30px;
}
.k-header .banner .content .introduce .mate {
font-size: 20px;
}
}
/*--------------------------------------------------------------
4. 分页按钮
--------------------------------------------------------------*/
.k-main .board .paginations {
margin: 23px auto;
width: 100%;
text-align: center;
font-size: 14px;
}
.k-main .board .paginations a {
padding: 8px 12px;
background: #fff;
color: #444;
}
.k-main .board .paginations .current {
padding: 8px 12px;
background: #00a2ff;
color: #fff;
font-weight: 400;
}
.k-main .board .paginations .dots {
padding: 8px 12px;
background: #fff;
color: #444;
}
.k-main .details .article .content .paginations {
padding-top: 20px;
width: 100%;
font-size: 14px;
}
.k-main .details .article .content .paginations a {
margin: 0 3px;
}
.k-main .details .article .content .paginations a span {
padding: 7px 12px;
border: solid 1px #00a2ff;
background-color: #f0f8ff;
color: #00a2ff;
}
.k-main .details .article .content .paginations .current span,
.k-main .details .article .content .paginations a span:hover {
padding: 7px 12px;
border: solid 1px #00a2ff;
background: #00a2ff;
color: #ffffff;
font-weight: 400;
}
/*--------------------------------------------------------------
5. 文章列表
--------------------------------------------------------------*/
.k-main .board .article-panel {
margin: 0 0 23px;
border-radius: 0;
background-color: #fff;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.k-main .board .article-panel:last-of-type {
margin: 0;
}
.k-main .board .article-panel .a-thumb {
position: relative;
float: left;
overflow: hidden;
margin: 20px;
width: 240px;
height: 145px;
}
.k-main .board .article-panel .a-thumb img {
padding: 2px;
width: 100%;
height: 100%;
border: 1px solid #f3f3f3;
}
.k-main .board .article-panel .a-post {
margin-left: 255px;
padding: 21px 20px 0 3px;
height: 160px;
}
.k-main .board .article-panel .a-post.a-none {
margin-left: 0;
padding: 20px;
height: auto;
}
.k-main .board .article-panel .a-post .header {
display: -webkit-box;
overflow: hidden;
margin: 3px 0 6px;
/* 下面两条已废弃:新版 Chrome 里 max-height 与 -webkit-line-clamp 同时生效会截断成半行。
直接删除而不是注释,因为注释会被 CSS 压缩器剥掉,产物里等于没改。 */
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
.k-main .board .article-panel .a-post .header .label {
position: relative;
top: -2px;
display: inline-block;
margin-right: 5px;
padding: 4px 6px 3px;
border-radius: 0;
background-color: #00a2ff;
color: #fff;
vertical-align: baseline;
text-align: center;
white-space: nowrap;
font-size: 12px;
line-height: 14px;
}
.k-main .board .article-panel .a-post .header .label .label-arrow {
position: absolute;
top: 6px;
right: -4px;
width: 0;
height: 0;
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
border-left: 4px solid #00a2ff;
content: "";
vertical-align: top;
}
.k-main .board .article-panel .a-post .header .title {
display: inline;
margin: 0;
font-size: 21px;
}
.k-main .board .article-panel .a-post .header .title a {
color: #333;
}
.k-main .board .article-panel .a-post .header .title a:hover {
color: #0097ee;
}
.k-main .board .article-panel .a-post .content {
display: block;
display: -webkit-box;
overflow: hidden;
max-height: 110px;
text-overflow: ellipsis;
word-wrap: break-word;
cursor: default;
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
}
.k-main .board .article-panel .a-post .content p {
margin-bottom: 0;
font-size: 15px;
}
.k-main .board .article-panel .a-meta {
clear: both;
overflow: hidden;
padding: 8px 20px;
border-top: 1px solid #f3f3f3;
font-size: 12px;
line-height: 27px;
}
.k-main .board .article-panel .a-meta span {
font-size: 13px;
line-height: 24px;
cursor: default;
}
.k-main .board .article-panel .a-meta span > i {
margin-right: 3px;
}
.k-main .board .article-panel .a-meta span > a {
color: #333;
}
.k-main .board .article-panel .a-meta span > a:hover {
color: #0097ee;
text-decoration: none;
}
.k-main .board .article-panel .a-meta span > a > i {
margin-left: 3px;
}
.k-main .board .article-panel .search-title {
padding: 20px 25px;
color: #000;
font-size: 18px;
}
.k-main .board .article-panel .nothing {
padding: 50px;
text-align: center;
}
.k-main .board .article-panel .nothing img {
width: 50%;
}
.k-main .board .article-panel .nothing .sorry {
margin-top: 30px;
font-size: 20px;
}
@media screen and (max-width: 768px) {
.k-main .board .article-panel .a-thumb {
position: relative;
float: none;
overflow: hidden;
margin: 0;
margin-bottom: 14px;
padding: 0;
padding-bottom: 53%;
width: auto;
height: 0;
max-width: 100%;
}
.k-main .board .article-panel .a-thumb img {
padding: 0;
height: auto;
max-width: 100%;
border: 0;
}
.k-main .board .article-panel .a-post {
margin-left: 0;
padding: 0 12px;
height: auto;
}
.k-main .board .article-panel .a-post .header {
margin: 0 0 9px;
}
.k-main .board .article-panel .a-post .header .label {
display: none;
}
.k-main .board .article-panel .a-post .header .title {
font-size: 20px;
}
.k-main .board .article-panel .a-post .content {
margin-bottom: 10px;
}
.k-main .board .article-panel .a-post.a-none .content {
margin-bottom: 0;
}
.k-main .board .article-panel .a-meta {
padding: 5px 12px;
}
.k-main .board .article-panel .a-meta span {
font-size: 12px;
}
.k-main .board .article-panel .nothing .sorry {
font-size: 18px;
}
}
/*--------------------------------------------------------------
6. 文章正文
--------------------------------------------------------------*/
.k-main .details .article {
background-color: #fff;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
word-wrap: break-word;
word-break: break-all;
}
.k-main .details .article .breadcrumb-box {
border-bottom: 1px solid #f7f7f7;
}
.k-main .details .article > :first-child {
margin-top: 0;
}
.k-main .details .article > :last-child {
margin-bottom: 0;
}
.k-main .details .article .breadcrumb-box .breadcrumb {
margin-bottom: 0;
padding: 12px 16px;
border-radius: 0;
background-color: inherit;
font-size: 13px;
}
.k-main .details .article .breadcrumb-box .breadcrumb li {
margin-bottom: 0;
list-style: none;
}
.breadcrumb-item + .breadcrumb-item {
padding-left: 0.3rem;
}
.breadcrumb-item + .breadcrumb-item::before {
padding-right: 0.2rem;
}
.k-main .details .article .breadcrumb-box .breadcrumb-item.active {
cursor: default;
}
.k-main .details .article .header {
padding: 0 16px 16px;
}
.k-main .details .article .header .title {
padding-bottom: 0;
border: none;
}
.k-main .details .article .header .meta {
color: #5a5a5a;
font-size: 14px;
cursor: default;
}
.k-main .details .article .header .meta a {
color: inherit;
}
.k-main .details .article .header .meta > span:not(:last-child):after {
margin-right: 5px;
margin-left: 5px;
color: #71777c;
content: "\B7";
}
.k-main .details .article .content {
padding: 0 16px 16px;
word-wrap: break-word;
line-height: 1.8;
word-break: break-all;
}
.k-main .details .article .content::after,
.k-main .details .article .content p::after {
clear: both;
display: block;
content: "";
}
.k-main .details .article h1,
.k-main .details .article .content h2,
.k-main .details .article .content h3,
.k-main .details .article .content h4,
.k-main .details .article .content h5,
.k-main .details .article .content h6 {
margin-top: 24px;
margin-bottom: 16px;
font-weight: 500;
line-height: 32px;
}
.k-main .details .article h1 {
padding-bottom: 4.8px;
/* border-bottom: 1px solid #eaecef; */
font-size: 30px;
line-height: 38px;
}
.k-main .details .article .content h2 {
font-size: 24px;
}
.k-main .details .article .content h2.title {
margin: 16px -16px;
padding: 0 10px;
border-left: 5px solid #00a2ff;
background-color: rgba(243, 243, 243, 0.7);
font-size: 20px;
line-height: 41px;
}
.k-main .details .article .content h3 {
font-size: 18px;
}
.k-main .details .article .content h4 {
font-size: 16px;
}
.k-main .details .article .content h5 {
font-size: 14px;
}
.k-main .details .article .content h6 {
font-size: 12px;
}
.k-main .details .article .content p {
color: #151515;
line-height: 30px;
}
.k-main .details .article .content .progress {
margin-bottom: 16px;
}
.k-main .details .article .content .video-container {
margin-bottom: 16px;
}
.k-main .details .article .content blockquote {
margin-bottom: 16px;
padding: 16px;
border-left: 6px solid #dce6f0;
background: #f2f7fb;
color: #819198;
font-size: 15px;
}
.k-main .details .article .content blockquote p {
margin-bottom: -3px;
}
.k-main .details .article .content hr {
margin: 24px 0;
height: 1px;
border: none;
border-top: 1px solid #a5a5a5;
}
.k-main .details .article .content pre {
margin: 10px 0;
padding: 11px 16px;
border-radius: 4px;
background-color: #f8f8f8;
word-wrap: break-word;
font-size: 11px;
line-height: 1.7;
word-break: break-all;
}
.k-main .details .article .content code {
margin: 0 3px;
padding: 2px 4px;
border-radius: 4px;
background-color: #eff0f1;
color: #333;
font-size: 13px;
word-break: inherit;
}
.k-main .details .article .content kbd {
display: inline-block;
margin: -3px 1.6px 0;
padding: 2.4px 9.6px;
border: 1px solid #adb3b9;
border-radius: 3px;
background-color: #e1e3e5;
box-shadow: 0 1px 0 rgba(12, 13, 14, 0.2), 0 0 0 2px #fff inset;
color: #242729;
vertical-align: middle;
text-shadow: 0 1px 0 #fff;
white-space: nowrap;
font-size: 10px;
line-height: 1.5;
}
.k-main .details .article .content pre code {
margin: 0;
padding: 0;
background-color: transparent;
}
.k-main .details .article .content pre ol {
padding: 0;
}
.k-main .details .article .content pre li {
margin: 0;
list-style: none;
}
.k-main .details .article .content .wp-caption-text {
margin-bottom: 0;
font-size: 14px;
}
.k-main .details .article .content .wp-block-image {
margin-bottom: 0;
}
.k-main .details .article .content .wp-block-image figcaption {
font-size: 14px;
}
.k-main .details .article .content figure {
margin: 0;
}
.k-main .details .article .content .alignleft::after,
.k-main .details .article .content .aligncenter::after,
.k-main .details .article .content .alignright::after {
clear: both;
display: block;
content: "";
}
.k-main .details .article .content .alignleft {
float: left;
margin-right: 16px;
}
.k-main .details .article .content p > img,
.k-main .details .article .content p a > img {
display: block;
}
.k-main .details .article .content .wp-smiley {
display: inline;
}
.k-main .details .article .content .aligncenter {
margin-right: auto;
margin-left: auto;
}
.k-main .details .article .content .alignright {
float: right;
margin-left: 16px;
}
.k-main .details .article .content img {
height: auto;
max-width: 100%;
}
.k-main .details .article .content table {
display: table;
overflow: auto;
width: 100%;
table-layout: fixed;
word-break: break-all;
}
.k-main .details .article .content table th,
.k-main .details .article .content table td {
padding: 8px 16px;
border: 1px solid #e9ebec;
}
.k-main .details .article .content table th {
font-weight: bold;
}
.k-main .details .article .content table tr:nth-child(2n) {
background-color: #f8f8f8;
}
.k-main .details .article .content .alert,
.k-main .details .article .content .card,
.card-header:first-child {
border-radius: 0;
}
.k-main .details .article .content .card-header {
padding: 6px 15px;
}
.k-main .details .article .content .card-body {
padding: 10px 15px;
}
.k-main .details .article .content .alert {
padding: 10px 15px;
}
.k-main .details .article .content .downbtn {
display: inline-block;
margin-bottom: 16px;
padding: 3px 10px;
border: 1px solid #39aaf9;
background: #39aaf9;
color: #fff;
font-size: 14px;
}
.k-main .details .article .content .downbtn:hover {
background: #37a0eb;
color: #fff;
}
.k-main .details .article .content .downbtn:focus {
color: #fff;
text-decoration: none;
}
.k-main .details .article .content .video-container {
position: relative;
overflow: hidden;
padding-bottom: 75%;
height: 0;
}
.k-main .details .article .content .video-container embed,
.video-container iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.k-main .details .article .content > :last-child {
margin-bottom: 0;
}
.k-main .details .article .copyright {
padding: 0 16px 16px;
}
.k-main .details .article .copyright span {
display: block;
padding: 18px;
background-color: #f7f7fa;
color: #333333;
font-size: 14px;
line-height: 20px;
cursor: default;
}
.k-main .details .article .footer {
padding: 0 16px 10px;
border-top: 1px solid #f2f2f2;
}
.k-main .details .article .footer .tags,
.k-main .details .article .footer .tool {
margin-top: 10px;
}
.k-main .details .article .footer .tags span,
.k-main .details .article .footer .tool span {
color: #333333;
font-size: 14px;
cursor: default;
}
.k-main .details .article .footer .tags a {
margin: 0 5px 0 0;
padding: 2px 7px;
background-color: #a9a9a9;
color: #fff;
font-size: 13px;
}
.k-main .details .article .content .accordion {
margin-bottom: 16px;
border: 1px solid #e5e8ed;
}
.k-main .details .article .content .accordion .acheader {
position: relative;
padding: 5px 15px;
background: #f7f8fa;
}
.k-main .details .article .content .accordion .acheader span {
font-weight: 600;
font-size: 17px;
}
.k-main .details .article .content .accordion .acheader .icon {
position: absolute;
right: 15px;
font-size: 17px;
}
.k-main .details .article .content .accordion .acheader .icon .kicon {
font-size: 17px;
}
.k-main .details .article .content .accordion.active .icon {
-webkit-transition: 0.3s;
transition: 0.3s;
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.k-main .details .article .content .accordion .contents {
display: none;
border-top: 1px solid #e6e6e6;
}
.k-main .details .article .content .accordion .contents .inner {
padding: 5px 15px;
}
@media screen and (max-width: 768px) {
.k-main .details .article .header {
padding: 0 16px 12px;
}
.k-main .details .article h1 {
margin-top: 14px;
margin-bottom: 14px;
font-size: 22px;
}
.k-main .details .article .header .meta {
font-size: 12px;
}
.k-main .details .article .content p {
font-size: 15px;
}
.k-main .details .article .content table {
display: block;
word-break: keep-all;
}
.k-main .details .article .header .meta span:not(:first-child) {
margin-left: 5px;
}
.k-main .details .article .header .meta > span:not(:last-child):after {
content: none;
}
.k-main .details .article .content .alert {
padding: 10px 15px;
font-size: 15px;
}
.k-main .details .article .content .card-header {
font-size: 15px;
}
.k-main .details .article .content .card-body {
padding: 12px 15px;
}
.k-main .details .article .content .card-text {
font-size: 14px;
}
}
/*--------------------------------------------------------------
7. 内容工具区
--------------------------------------------------------------*/
.k-main .details .toolbar {
margin-top: 16px;
padding: 20px;
background-color: #fff;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.k-main .details .toolbar .meta {
width: 50%;
cursor: default;
}
.k-main .details .toolbar img {
float: left !important;
margin-right: 8px !important;
width: 56px;
height: 56px;
border-radius: 50%;
}
.k-main .details .toolbar .name {
margin-bottom: -5px;
}
.k-main .details .toolbar .motto {
display: -webkit-box;
overflow: hidden;
margin-top: 10px;
color: #666;
text-overflow: ellipsis;
font-size: 14px;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
.k-main .details .toolbar .meta .name a {
color: #4a4a4a;
}
.k-main .details .toolbar .share {
margin-top: 12px;
}
.k-main .details .toolbar .share .btn {
width: 90px;
height: 35px;
font-size: 15px;
line-height: 1.65;
}
.k-main .details .toolbar .share .btn-donate {
padding: 3px;
border: 1px solid #00a2ff;
border-radius: 0;
color: #00a2ff;
}
.k-main .details .toolbar .share .btn-donate:focus,
.k-main .details .toolbar .share .btn-donate:hover {
border-color: #00a2ff;
background-color: #00a2ff;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
color: #fff;
}
.k-main .details .toolbar .share .btn-thumbs {
padding: 3px;
border: 1px solid #fb5235;
border-radius: 0;
color: #fb5235;
}
.k-main .details .toolbar .share .btn-thumbs:focus,
.k-main .details .toolbar .share .btn-thumbs:hover {
border-color: #fb5235;
background-color: #fb5235;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
color: #fff;
}
.k-main .details .toolbar .share .btn-primary.focus,
.btn-primary:focus {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.donate-box .meta-pay {
margin-top: 14px;
margin-bottom: 14px;
cursor: default;
}
.donate-box .qr-pay img {
width: 200px;
height: 200px;
}
.donate-box .choose-pay input {
display: none;
}
.donate-box .choose-pay input:checked + label {
border-color: #0092ee;
color: #0092ee;
}
.donate-box .pay-button {
margin: 10px 5px;
width: 132px;
height: 45px;
border: 1px solid #e6e6e6;
border-radius: 2px;
text-align: center;
line-height: 40px;
cursor: pointer;
}
.donate-box .pay-button img {
height: 26px;
}
.k-main .details .post-navigation {
margin-top: 16px;
}
.k-main .details .post-navigation .nav-previous a {
color: #5a5a5a;
}
.k-main .details .post-navigation .nav-next a {
color: #5a5a5a;
}
.k-main .details .post-navigation .nav-previous {
float: left;
padding: 7px 18px;
max-width: 40%;
background-color: #fff;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1);
text-align: left;
}
.k-main .details .post-navigation .nav-next {
float: right;
padding: 7px 18px;
max-width: 40%;
background-color: #fff;
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.1);
text-align: right;
}
@media screen and (max-width: 768px) {
.k-main .details .toolbar .meta {
margin: 14px 0;
padding-bottom: 16px;
width: 100%;
border-bottom: 1px solid #eee;
}
.k-main .details .toolbar .meta span {
font-size: 12px;
}
.k-main .details .toolbar .meta .love {
display: none !important;
}
.k-main .details .toolbar .share {
margin-top: 16px;
}
.k-main .details .toolbar .motto {
padding-bottom: 5px;
}
.k-main .details .toolbar .share .btn {
width: 88px;
height: 35px;
font-size: 14.5px;
line-height: 1.5;
}
}
/*--------------------------------------------------------------
8. 文章评论
--------------------------------------------------------------*/
.k-main .details .comments {
margin-top: 16px;
padding: 1.6px 16px 16px;
border-radius: 2px;
background-color: #fff;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.k-main .details .post-2 .comments {
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.k-main .details .comments .comment-form-author {
padding-right: 5px;
}
.k-main .details .comments .comment-form-email {
padding-left: 5px;
}
.k-main .details .comments .input-group-text {
border: 1px solid #eeeeee;
background-color: #f8f8f8;
}
.k-main .details .comments .form-control {
border: 1px solid #eeeeee;
}
.k-main .details .comments .title {
margin-bottom: 0;
padding: 16px 0;
border-bottom: 1px solid #f0f0f0;
font-size: 19px;
cursor: default;
}
.k-main .details .comments .comment {
padding: 16px 0;
list-style: none;
}
.k-main .details .comments .list > li {
border-bottom: 1px solid #f0f0f0;
}
.k-main .details .comments .comment .avatar {
vertical-align: middle;
}
.k-main .details .comments .comment .avatar img {
display: block;
width: 50px;
height: 50px;
border: 1px solid #eaeaea;
border-radius: 50%;
}
.k-main .details .comments .comment .info {
overflow: hidden;
}
.k-main .details .comments .comment .info .author_name {
display: inline-block;
margin-top: 3px;
color: #252525;
font-weight: 600;
font-style: normal;
font-size: 14px;
line-height: 1.375;
}
.k-main .details .comments .comment .info .author_name a {
color: #252525;
font-weight: 600;
font-size: 14px;
}
.k-main .details .comments .comment .info .content {
margin-bottom: 0 !important;
}
.k-main .details .comments .comment .info .content p {
margin: 0;
color: #000000;
font-size: 13px;
}
.k-main .details .comments .comment .info .content p span {
color: #333;
}
.k-main .details .comments .comment .info .meta,
.k-main .details .comments .comment .info .meta a {
color: #9b9b9b;
font-size: 12.5px;
}
.k-main .details .comments .children {
margin-bottom: 0px;
padding-left: 0px;
}
.k-main .details .comments .children .comment {
margin-bottom: 0px;
padding-bottom: 0px;
}
.k-main .details .comments .comment-respond .comment-textarea {
border: 1px solid #eee;
border-radius: 3px;
background-color: hsla(0, 0%, 71%, 0.1);
}
.k-main .details .comments .comment-respond .comment-textarea textarea {
height: 130px;
border: none;
border-radius: 0;
resize: none;
}
.k-main .details .comments .comment-respond .comment-textarea .text-bar {
overflow: hidden;
padding: 6.4px 8px;
background-color: #f8f8f8;
}
.k-main .details .comments .comment-respond .comment-textarea .text-bar .tool {
padding-top: 4.8px;
}
.k-main
.details
.comments
.comment-respond
.comment-textarea
.text-bar
.tool
a
img {
width: 100%;
}
.k-main .details .comments .comment-respond .comment-textarea .btn-primary {
width: 100px;
border: none;
border-radius: 3px;
background-color: #00a2ff;
font-size: 14px;
}
.k-main .details .comments .comment-respond .comment-textarea .addbtn {
padding: 0 8px;
color: #333333;
}
.k-main .details .comments .comment-respond .comment-textarea .addbtn:hover {
color: #333333;
}
.k-main
.details
.comments
.comment-respond
.comment-textarea
#cancel-comment-reply-link {
display: inline-block;
padding: 6px 12px;
border: none;
border-radius: 3px;
background-color: rgba(0, 0, 0, 0.3);
color: #fff;
vertical-align: middle;
text-align: center;
white-space: nowrap;
font-size: 14px;
line-height: 1.5;
user-select: none;
}
.k-main .details .comments .comment-respond .comment-textarea .text-bar .smile {
position: absolute;
z-index: 9;
visibility: hidden;
padding: 2px;
width: 230px;
height: 102px;
background-color: #fff;
box-shadow: 0 2px 10px 2px rgba(0, 0, 0, 0.11);
transition: all 0.15s ease-out;
transform: perspective(500px) rotateX(-15deg);
transform-origin: 50% 0;
}
.k-main
.details
.comments
.comment-respond
.comment-textarea
.text-bar
.smile
a {
float: left;
display: block;
padding: 4px;
width: 32px;
height: 32px;
border: 2px solid #fff;
background-color: #f0f0f0;
}
.k-main .details .comments .comment-respond .comment-textarea .text-bar .open {
visibility: visible;
transform: none;
}
.k-main .details .comments .comment-respond .error {
padding: 20px;
border: 1px solid #e5e5e5;
border-radius: 4px;
background-color: hsla(0, 0%, 71%, 0.1);
}
.k-main .details .comments .i-reply {
font-size: 12px;
}
#commentpage {
display: block;
}
#commentpage a {
display: inline-block;
width: 144px;
height: 37px;
border: none;
border-radius: 2px;
background-color: #00a2ff;
color: #fff;
font-size: 15px;
line-height: 2.4;
transition: all 0.15s ease-in-out;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
@media screen and (max-width: 768px) {
.k-main .details .comments .comment-form-author {
padding-right: 15px;
}
.k-main .details .comments .comment-form-email {
padding-left: 15px;
}
}
/*--------------------------------------------------------------
9. 小工具
--------------------------------------------------------------*/
.k-main .sidebar img {
width: 100%;
height: auto;
}
.k-main .sidebar .widget {
margin: 0 0 23px;
padding: 15px 30px;
border-radius: 0;
background-color: #fff;
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}
.k-main .sidebar > div:last-child {
margin: 0;
}
/* ══════════════════════════════════════════════════════════════════════
* 「个人简介」挂件(.w-about):尺寸自持(3.2.51)
*
* ── 原来为什么会被大图撑爆 ──────────────────────────────────────────
* 这一组规则原来全部写成三段祖先选择器:
*
* .k-main .sidebar .w-about .wrapper img { width:100px; height:100px }
* .k-main .sidebar .w-about .background { height:120px }
*
* `.k-main` → `.sidebar` → `.w-about` 这三段是**前台文章页/首页的布局**。
* 挂件一旦出现在没有这层祖先的地方:
*
* · WordPress 后台「外观 → 小工具」的挂件预览
* · 区块小工具(Widgets Block Editor)的预览面板
* · 侧栏被别的主题/插件改写结构时
*
* 这些规则**一条都不生效**,头像 <img> 没有任何宽高约束,直接按原图
* 尺寸铺开;`.background` 也会塌成 0 高。
*
* 线上实测(avatar.jpg 原图 2136×2136):
* 有祖先 → 挂件 397×285, 头像 100×100 ✅
* 无祖先 → 挂件 1400×2217,头像 2136×2136 ❌ 撑爆,横向滚动 2156px
*
* ── 现在的做法 ──────────────────────────────────────────────────────
* 只依赖**挂件自己的类名** `.w-about`,不再依赖外层布局。这样无论挂件
* 被丢进什么容器,头像都是固定小圆、背景都是固定高。
*
* 🔴 必须把老的三段选择器**删掉**,不是"再补一条新的"。
* 实测过:`.k-main .sidebar .w-about .wrapper img` 优先级 (0,3,1),
* 而 `.w-about .wrapper img` 只有 (0,2,1)。两条并存时**老规则在前台永远赢**,
* 于是新规则只在后台生效 —— 前台改新规则等于白改,而且会让人误以为
* "改了没反应"。我把头像故意改成 200px 反证过:像素完全不变,
* 因为前台根本用的是老规则。单一真相来源才不会有这个坑。
*
* 🔴 为什么不用 !important:那会让用户/子主题以后想改头像尺寸时
* 完全改不动。
* ══════════════════════════════════════════════════════════════════════ */
/* 背景条:高度不依赖祖先 */
.w-about .background {
height: 120px;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
/* 挂件自身去掉内边距。
*
* 原来写的是 `.k-main .sidebar .w-about, .k-main .sidebar .w-ad { padding:0 }`
* —— 依赖祖先,所以后台预览里会吃 `.widget` 的 15px 内边距,跟前台不一致。
* 下面这组把它拆成两条:
* ① `.w-about` / `.w-ad`(无祖先)—— 覆盖后台/其它容器里的 `.widget` 内边距;
* ② `.k-main .sidebar .w-about` / `.w-ad`(前台)—— 覆盖主题自己的
* `.k-main .sidebar .widget { padding: 15px 30px }`。
*
* 🔴 ② 这条**不能省**:它的对手 `.k-main .sidebar .widget` 优先级 (0,3,0),
* 而 ① 只有 (0,1,0),光靠 ① 在前台会被压回去 —— 实测挂件会多出
* 15px/30px 内边距、整体高 57px(284→341),头像和文字全部错位。
* 两处的**值必须一致**(都是 0),前后台才不会出现分歧。 */
.w-about,
.w-ad {
padding: 0;
}
.k-main .sidebar .w-about,
.k-main .sidebar .w-ad {
padding: 0;
}
/* 头像:固定尺寸 + 裁切,永远不可能超出自己的盒子。
*
* object-fit:cover 是关键 —— 原图 2136×2136、1×1、4000×100、100×4000
* 都能被忠实裁进 100×100 的圆里,不会变形,也不会把盒子撑开。
* 在没有祖先约束的环境里尤其重要:那里没有别的规则兜底。
* (原来是 fill,非正方形头像会被拉伸变形,这次一并修掉。)
*
* 🔴 不要写 display:block —— 实测会带来两处前台外观变化:
* ① 头像从「行内被 text-align:center 居中」变成「块级独占一行」,
* 父级 .wrapper 高度从 50px 变 100px;
* ② x 坐标从 1096.66(居中)变成 948.33(左对齐)。
* 两处都是肉眼可见的位移。保持 inline(默认)才能原样继承 text-center。
*
* 🔴 margin 保持 `-50px 0 0`(水平 0)而不是 `auto`:水平居中本来就由
* 父级 text-align:center 完成,写 auto 在 inline 元素上也不生效。 */
.w-about .wrapper img {
margin: -50px 0 0;
width: 100px;
height: 100px;
max-width: 100px;
max-height: 100px;
object-fit: cover;
border: rgba(255, 255, 255, 0.4) 4px solid;
border-radius: 50%;
}
/* 文字区:同样不依赖祖先 */
.w-about .textwidget {
padding: 5px 20px 20px;
}
.w-about .textwidget p {
margin-bottom: 0;
cursor: default;
}
.w-about .textwidget .username {
font-size: 17px;
font-weight: 500;
margin-bottom: 5px;
}
.w-about .textwidget .about {
font-size: 15px;
}
.k-main .sidebar .w-ad {
position: relative;
}
.k-main .sidebar .w-ad .prompt {
position: absolute;
top: 10px;
right: 10px;
width: 39px;
height: 19px;
background-color: rgba(0, 0, 0, 0.33);
color: #dedede;
text-align: center;
font-size: 12px;
line-height: 19px;
}
.k-main .sidebar .w-recommended .bookmark-item {
display: block;
overflow: hidden;
padding: 8px 0;
border-bottom: 1px dashed #b4afaf;
color: #333;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
}
.k-main .sidebar .w-recommended .bookmark-item:last-child {
border-bottom: none;
}
.k-main .sidebar .w-recommended .bookmark-item .i-book {
margin-right: 7px;
}
.k-main .sidebar .w-recommended .nav-link .kicon {
margin-right: 8px;
}
/* 标签页图标:xl(≥1200px)显示,更窄时隐藏。
*
* 🔴 3.2.50 之前这件事是靠**渲染两份 DOM** 做的:PHP 里输出
* 一个 `d-none d-xl-flex` 的带图标版本和一个 `d-xl-none` 的无图标版本,
* 于是 nav-tab / nav-new-tab / nav-hot-tab / nav-random-tab
* 四个 id 在同一个页面里各出现两次(HTML 非法,aria-labelledby 失效)。
* 现在 DOM 只有一份,显隐交给下面的媒体查询。 */
.k-main .sidebar .w-recommended .nav-link .tab-icon {
display: none;
}
@media (min-width: 1200px) {
.k-main .sidebar .w-recommended .nav-link .tab-icon {
display: inline-block;
}
}
/* 无图标时补一点内边距,避免三个标签挤在一起 */
@media (max-width: 1199.98px) {
.k-main .sidebar .w-recommended .nav-tabs .nav-link {
padding-left: 18px;
padding-right: 18px;
}
}
.k-main .sidebar .title {
position: relative;
margin: 0 0 15px;
padding-bottom: 7px;
border-bottom: 1px solid #e7e7e7;
font-size: 17px;
cursor: default;
}
.k-main .sidebar .title::after {
position: absolute;
bottom: 0;
left: 0;
width: 72px;
height: 2px;
background-color: #00a2ff;
content: "";
}
/* ── 标签聚合 / 友情链接:宽度改为「按容器自适应」
*
* 🔴 3.2.50 之前的写法是两段魔法数字:
*
* .w-tags .item a { width: 164px } ← 默认
* @media (max-width:1310px) { ... { width: 110px } } ← 窄屏
*
* 侧栏宽度由 Bootstrap 的 col-lg-4 决定,在 992px 以下是「整行」,
* 在 992px 以上是容器的 1/3。而 1310px 这个断点**只改标签宽度、
* 不改侧栏宽度**,于是在 1311→1310px 处出现:
*
* 1311px:侧栏内容区 336.7px,标签 164px → 一行 2 个
* 1310px:侧栏内容区 336.7px,标签 110px → 一行 3 个
*
* **窗口变窄,列数反而多了一个**。这是典型的"两次魔法数字叠加":
* 第二段是为了修第一段在某个视口下的溢出,修的时候没管单调性。
*
* 现在不再写死像素,改为按容器百分比:
*
* width: calc(50% - 2px) 默认每行 2 个
* margin: 0 1px 10px 0 左右各 1px,共 2px 被 50%-2px 抵掉
*
* 50%-2px 这个写法保证「一行恰好放 2 个且不多不少」:
* 两个 50%-2px 加两个 1px 右边距 = 100%,再算上 inline-block 之间的
* 空白字符会被 font-size:0 吃掉(见 .item 的声明),所以不会意外换行。
*
* 要改列数只需改这一个百分比,窄屏不会再"越窄越多列"。
*/
.k-main .sidebar .w-tags .item,
.k-main .sidebar .widget_links ul {
/* 🔴 inline-block 元素之间的换行/空格会渲染成一个空格宽度,
两个 50% 就永远放不进一行。font-size:0 让空白字符零宽,
子元素再把字号设回来。这是 inline-block 网格的标准做法。 */
font-size: 0;
}
.k-main .sidebar .w-tags .item a,
.k-main .sidebar .widget_links ul li {
display: inline-block;
margin: 0 1px 10px 0;
padding: 2px 0;
/* 每行 2 个:两个 (50% - 2px) + 两个 1px 右边距 = 100% */
width: calc(50% - 2px);
border: 1px solid #eeeeee;
color: #333;
list-style: none;
text-align: center;
font-size: 14px;
/* 长标签名(如 HarmonyOS)不能撑破格子 */
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
vertical-align: top;
}
.k-main .sidebar .widget_links ul li {
border: none;
font-size: 15px;
line-height: inherit;
}
.k-main .sidebar .widget_links ul li img {
margin-top: -3px;
width: 25px;
height: 25px;
border-radius: 50%;
}
.k-main .sidebar .w-tags .item a:hover,
.k-main .sidebar .widget_links ul li:hover,
.k-main .sidebar .widget_categories ul li:hover,
.k-main .sidebar .widget_archive ul li:hover {
background-color: #eeeeee;
}
.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
border-bottom: 2px solid #00a2ff;
background-color: #fff;
color: #333;
}
.nav-tabs .nav-item {
color: #333;
}
.nav-tabs .nav-link {
padding: 8px 28px;
border: 0;
border-bottom: 2px solid #f2f2f2;
}
.nav-tabs {
border-bottom: none;
}
.k-main .sidebar .widget_links ul {
margin-bottom: 0;
padding-left: 0;
}
.k-main .sidebar .widget_links ul li a {
color: #333;
}
.k-main .sidebar #wp-calendar {
width: 100%;
}
.k-main .sidebar caption,
.k-main .sidebar tfoot {
display: none;
}
.k-main .sidebar tbody tr {
font-weight: 400;
font-size: 14px;
font-family: arial;
}
.k-main .sidebar tbody a {
display: block;
border: 1px solid #00a2ff;
background: #edf8ff;
}
.k-main .sidebar tbody tr td,
.k-main .sidebar thead tr th {
text-align: center;
cursor: default;
}
.k-main .sidebar .widget_search .screen-reader-text {
display: none;
}
.btn-search {
background-color: #00a2ff;
border-color: #00a2ff;
}
.btn-search:not(:disabled):not(.disabled):active,
.btn-search:hover,
.btn-search:focus {
background-color: #0095ff;
border-color: #0095ff;
}
.btn-search:not(:disabled):not(.disabled):active:focus {
box-shadow: none;
}
.k-main .sidebar .widget_categories ul,
.k-main .sidebar .widget_archive ul {
margin: 0;
padding-left: 0;
}
.k-main .sidebar .widget_categories ul li,
.k-main .sidebar .widget_archive ul li {
display: inline-block;
overflow: hidden;
margin: 0 1px 4px 0;
padding: 4px 0;
width: 164px;
border: 1px solid #eeeeee;
list-style: none;
text-align: center;
text-overflow: ellipsis;
font-size: 14px;
-webkit-transition: 0.3s;
-o-transition: 0.3s;
transition: 0.3s;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
.k-main .sidebar .widget_categories ul li a,
.k-main .sidebar .widget_archive ul li a {
color: #333;
}
.k-main .sidebar .w-search .form-control,
.k-main .sidebar .w-search .btn {
font-size: 15px;
border-radius: 0;
}
.k-main .sidebar .w-search .btn {
padding-left: 25px;
padding-right: 25px;
}
@media screen and (max-width: 1310px) {
.nav-tabs .nav-link {
padding: 8px 22px;
}
/* 🔴 这里本来还有两条把宽定死的规则:
*
* .k-main .sidebar .w-tags .item a,
* .k-main .sidebar .widget_links ul li,
* .k-main .sidebar .widget_categories ul li,
* .k-main .sidebar .widget_archive ul li { width: 110px }
*
* 1310px 这个断点**不改变侧栏宽度**(992px 以上一直是容器 1/3),
* 所以它只做了一件事:把格子压窄 ⇒ 同样宽度下一行多塞一个 ⇒
* 窗口越窄列数越多。3.2.50 起标签与友情链接改成 `calc(50% - 2px)`,
* 由容器宽度自己决定列数;这里只剩 tab 的内边距需要收一收。
*
* 分类/归档那两条宽度**保留** —— 它们的父元素是 li 列表,
* 不是按行排的网格,压窄只影响观感不影响列数,且原有排版依赖它。
* 见下方规则。 */
.k-main .sidebar .widget_categories ul li,
.k-main .sidebar .widget_archive ul li {
width: 110px;
}
}
@media (min-width: 992px) {
.navbar-expand-lg .navbar-nav .nav-link {
padding-right: 0;
padding-left: 32px;
}
}
/*--------------------------------------------------------------
10. 404
--------------------------------------------------------------*/
.k-main .page404 {
padding: 40px;
text-align: center;
}
.k-main .page404 .overlay {
position: absolute;
top: -1px;
right: 0;
bottom: 0;
left: 0;
z-index: 2;
width: 100%;
height: 101%;
background: url(../img/404.svg) no-repeat center center;
background-size: cover;
}
.k-main .page404 .overlay:after,
.k-main .page404 .overlay:before {
position: absolute;
top: 0;
z-index: 10;
width: 20px;
height: 100%;
background: #ffffff;
content: "";
}
.k-main .page404 .overlay:before {
left: 0;
}
.k-main .page404 .overlay:after {
right: 0;
}
.k-main .page404 .thumbnail {
position: relative;
width: 100%;
height: 500px;
background-position: center center;
background-size: cover;
background-repeat: no-repeat;
}
.k-main .page404 .content {
font-weight: 500;
}
.k-main .page404 .content .title {
font-size: 30px;
}
.k-main .page404 .content .subtitle {
font-size: 16px;
}
.k-main .page404 .content .action {
font-size: 16px;
}
.k-main .page404 .content .action .btn-outline-primary {
width: 110px;
border-radius: 2px;
letter-spacing: 2.4px;
}
.k-main .page404 .content .action .back-prevpage {
border-color: #00a2ff;
background-color: #00a2ff;
color: #fff;
}
.k-main .page404 .content .action .back-prevpage:hover {
border-color: #009ef9;
background-color: #009ef9;
}
.k-main .page404 .content .action .back-index {
border-color: #d8dcdf;
background-color: transparent;
background-image: none;
color: #666;
}
.k-main .page404 .content .action .back-index:hover,
.k-main
.page404
.content
.action
.back-index:not(:disabled):not(.disabled):active {
border-color: #d8dcdf;
background-color: #f6f4f4;
color: #666;
}
@media screen and (max-width: 768px) {
.k-main .page404 .thumbnail {
height: 315px;
}
.k-main .page404 .content .title {
font-size: 21px;
}
.k-main .page404 .content .subtitle {
font-size: 14px;
}
}
@media screen and (max-width: 480px) {
.k-main .page404 .thumbnail {
height: 200px;
}
}
/*--------------------------------------------------------------
11. 页脚
--------------------------------------------------------------*/
.k-footer {
padding: 40px 0;
background: #23282d;
}
.k-footer p {
margin-bottom: 0;
color: #8e8e8e;
text-transform: uppercase;
letter-spacing: 1px;
font-size: 14px;
cursor: default;
}
.k-footer p a {
color: #8e8e8e;
}
.k-footer p a:hover {
color: #0097ee;
}
.k-footer p .police-ico {
display: inline-block;
margin-top: -4px;
margin-right: 6px;
width: 14px;
height: 1pc;
background: url(../img/police-ico.png) 0 0 no-repeat;
vertical-align: middle;
}
.k-footer .f-toolbox > div {
position: fixed;
right: 20px;
z-index: 999;
text-align: center;
}
.k-footer .f-toolbox .gotop .gotop-btn span,
.k-footer .f-toolbox .search span {
display: table-cell;
width: 40px;
height: 40px;
color: #fff;
vertical-align: middle;
font-size: 18px;
}
.k-footer .f-toolbox .gotop {
bottom: 80px;
visibility: hidden;
cursor: pointer;
}
.k-footer .f-toolbox .gotop .gotop-btn {
display: table;
width: 40px;
height: 40px;
color: #fff;
text-align: center;
}
.k-footer .f-toolbox .gotop.active {
visibility: visible;
background: rgba(132, 132, 132, 0.7);
}
.k-footer .f-toolbox .search {
bottom: 30px;
display: table;
background: rgba(132, 132, 132, 0.7);
cursor: pointer;
}
.k-footer .f-toolbox .search input {
width: 100%;
height: 40px;
border: 0;
background: 0 0;
color: #fff;
font-size: 17px;
}
.k-footer .social {
line-height: 45px;
}
.k-footer .social a {
display: inline-block;
padding: 0 7px;
}
.k-footer .social a .kicon {
font-size: 40px;
}
@media screen and (max-width: 768px) {
.k-footer {
padding: 30px 0;
}
.k-footer p {
font-size: 10px;
}
.k-footer .social a .kicon {
font-size: 38px;
}
}