• 首页

  • 实验室
    音乐 状态监控

  • 归档

  • 后宫

  • 留言板

  • 组成
    动漫相册 动态 关于我
知雨

知雨

写代码是热爱,写到世界充满爱!

2021年到了,在这里先祝大家新年阖家欢乐,万事如意!博客新版布局已上线,来访的大佬们有什么意见和建议请前往 留言板 告诉我哦~
友链
  • MmCee-我的世界
  • 梦之翼
  • ONESTAR
  • 参谋带个长
  • GamerNoTitle
  • 雪曦
  • 新逸Cary
  • 更多 +
  • 广告
    01月
    30
    前端

    美化代码块

    发表于 2021-01-30 • 字数统计 3600 • 被 464 人看爆

    程序员的博客里绝对不会缺少的东西一定是代码块,那么怎么把代码块打扮的美美的呢?

    介于前两天有同学问我,我的代码块是怎么美化的,那么今天我就出个我美化代码块的教程,主要分为三个步骤,分割关键字、添加额外标签和自定义美化css

    加载 js 分割代码关键字

    使用任意代码块分割插件自动将代码关键字加上相应标签,我这是使用的是一款名叫 prism 的插件

    <script src="//cdn.jsdelivr.net/gh/cetr/cdn@master/prism.min.js"></script>
    

    动态添加代码块头部样式

    用 js 动态对每篇文章里的代码块加上顶部三个彩色圆点,用于美化ui

    if (!$('pre').hasClass('line-numbers')) {
    	$('pre').addClass('line-numbers').before($(
    		'<figcaption class="line-numbers-head">' +
    		'<div class="custom-carbon">' +
    		'<div class="custom-carbon-dot custom-carbon-dot--red"></div>' +
    		'<div class="custom-carbon-dot custom-carbon-dot--yellow"></div>' +
    		'<div class="custom-carbon-dot custom-carbon-dot--green"></div>' +
    		'</div>' +
    		'</figcaption>'
    	));
    }
    

    自定义 css 样式

    自定义 css 给代码块及代码块里的文字添加样式

    code[class*="language-"],
    pre[class*="language-"] {
        color: black;
        background: none;
        text-shadow: 0 1px white;
        font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
        font-size: 16px;
        text-align: left;
        white-space: pre;
        word-spacing: normal;
        word-break: normal;
        word-wrap: normal;
        line-height: 1.5;
    
        -moz-tab-size: 4;
        -o-tab-size: 4;
        tab-size: 4;
    
        -webkit-hyphens: none;
        -moz-hyphens: none;
        -ms-hyphens: none;
        hyphens: none;
    }
    
    pre[class*="language-"]::-moz-selection, pre[class*="language-"] ::-moz-selection,
    code[class*="language-"]::-moz-selection, code[class*="language-"] ::-moz-selection {
        text-shadow: none;
    }
    
    pre[class*="language-"]::selection, pre[class*="language-"] ::selection,
    code[class*="language-"]::selection, code[class*="language-"] ::selection {
        text-shadow: none;
    }
    
    @media print {
        code[class*="language-"],
        pre[class*="language-"] {
            text-shadow: none;
        }
    }
    
    /* Code blocks */
    pre[class*="language-"] {
        padding: 1em;
        margin-bottom: 20px;
        overflow: auto;
    }
    
    :not(pre) > code[class*="language-"],
    pre[class*="language-"] {
        background: #f5f2f0;
    }
    
    :not(pre) > code[class*="language-"] {
        padding: .1em;
        border-radius: .3em;
        white-space: normal;
    }
    
    .token.comment,
    .token.prolog,
    .token.doctype,
    .token.cdata {
        color: #90a4ae;
    }
    
    .token.punctuation,
    .token.attr-name {
        color: #757575;
    }
    
    .token.namespace {
        opacity: .7;
    }
    
    .token.property,
    .token.tag,
    .token.boolean,
    .token.number,
    .token.constant,
    .token.symbol,
    .token.deleted {
        color: #f76d47;
    }
    
    .token.selector,
    .token.char,
    .token.builtin,
    .token.inserted {
        color: #be4dbc;
    }
    
    .token.keyword {
        color: #39adb5;
    }
    
    .token.operator,
    .token.entity,
    .token.url,
    .language-css .token.string,
    .style .token.string {
        color: #9a6e3a;
    }
    
    .token.atrule,
    .token.string,
    .token.attr-value {
        color: #4dc14c;
    }
    
    .token.function,
    .token.class-name {
        color: #6182b8;
    }
    
    .token.regex,
    .token.important,
    .token.variable {
        color: #eab700;
    }
    
    .token.parameter {
        color: #ee8019;
    }
    
    .token.important,
    .token.bold {
        font-weight: bold;
    }
    
    .token.italic {
        font-style: italic;
    }
    
    .token.entity {
        cursor: help;
    }
    
    figcaption.line-numbers-head {
        width: 100%;
        color: #8d949e;
        background-color: #f5f6f7;
        zoom: 1;
        border-top-left-radius: 0.25rem;
        border-top-right-radius: 0.25rem;
    }
    
    figcaption.line-numbers-head .custom-carbon-dot {
        display: inline-block;
        margin: 0 4px;
        border-radius: 50%;
        width: 10px;
        height: 10px;
    }
    
    figcaption.line-numbers-head .custom-carbon-dot--red {
        background-color: #ff5f56;
    }
    
    figcaption.line-numbers-head .custom-carbon-dot--yellow {
        background-color: #ffbd2e;
    }
    
    figcaption.line-numbers-head .custom-carbon-dot--green {
        background-color: #27c93f;
    }
    
    figcaption.line-numbers-head .custom-carbon {
        padding: 2px 0 0 9px;
    }
    
    pre.line-numbers {
        margin-top: 0;
        padding: 10px 1em 1em 1em;
        background-color: #f5f6f7;
        border-bottom-left-radius: 0.25rem;
        border-bottom-right-radius: 0.25rem;
    }
    
    分享到:
    给网站添加PWA
    • 文章目录
    • 站点概览
    知雨

    你能抓到我么?

    Email 订阅 RSS 订阅
    装备
    最喜欢的歌手
    MacBook Pro、华硕zx50v、iPhone 8 Plus、AirPods Pro
    薛之谦、鹿乃、原来是萝卜丫、麦小兜
    DIY
    完整UI
    夜间模式
    看爆 Top5
    • 网上收集了一些好用的工具 1759次看爆
    • vue基础 890次看爆
    • 常用linux命令介绍 797次看爆
    • JDBC 770次看爆
    • XSS攻击 666次看爆

    站点已萌萌哒运行 00 天 00 小时 00 分 00 秒(●'◡'●)ノ♥

    © 2019~2021 coor.top版权所有 | 陕ICP备19005293号 站点地图