【輪子狂魔】手把手教你用JS給博客動態增加目錄 - 超級懶人版

来源:http://www.cnblogs.com/doddgu/archive/2017/02/18/lunzikuangmo_blog_catalog.html
-Advertisement-
Play Games

動態顯示目錄的作用 不用每次寫博客的時候繁瑣的人工整理目錄,又可以動態浮動在右下角,方便快速跳到感興趣的位置同時也可以快速的對文章內容有一個大概的瞭解。 實現原理 首先根據個人喜好,我習慣了用 h1 來做分類。所以本篇內容也主要是針對h1來提取目錄。 如何提取出來h1呢? 先來看這張圖,以獵豹瀏覽器 ...


動態顯示目錄的作用

不用每次寫博客的時候繁瑣的人工整理目錄,又可以動態浮動在右下角,方便快速跳到感興趣的位置同時也可以快速的對文章內容有一個大概的瞭解。

 

實現原理

首先根據個人喜好,我習慣了用 h1 來做分類。所以本篇內容也主要是針對h1來提取目錄。

如何提取出來h1呢?

先來看這張圖,以獵豹瀏覽器為例:

首先在博客內容第一行點擊滑鼠右鍵,然後選擇檢查。這時會彈出右邊的框,直接定位到我的h1標簽,就這麼簡單的找到了它的父級 cnblogs_post_body 。

然後使用 jquery 選擇器 來獲取到這些h1,對jquery選擇器不熟的直接跳這個鏈接溫習一下:http://www.w3school.com.cn/jquery/jquery_ref_selectors.asp

$('#cnblogs_post_body h1')

就這麼簡單的一個括弧就完成了對 h1 的提取。

在遍歷所有的h1,取出內容之前,我們需要一個目錄的容器。

$('#cnblogs_post_body').append('<div id="blog_catalog" class="blog_catalog"><ul><li><a id="blog_catalog_close" class="blog_catalog_close">>摺疊目錄</a></li></ul></div>');

這句簡單解釋就是在博客內容最末尾插入了一個 div,裡面包含ul和一個預設的li 用於摺疊目錄。

接下來就要提取h1的內容了,但在這個過程中我們還要做一件事,就是自動給h1增加一個id,作為一個標準的懶人,我肯定連h1的id都不想寫的,自動生成神馬的最好了。

var id = 1;
$('#cnblogs_post_body h1').each(function(){
    $(this).attr('id','blog_catalog_id_'+id);
    $('#blog_catalog ul').append('<li><a href="#blog_catalog_id_'+id+'">'+$(this).text()+'</a></li>');
    id++;
});

有了摺疊,當然少不了展開。

$('#cnblogs_post_body').append('<div id="blog_catalog_open" class="blog_catalog_open">展開目錄</div>');

最後一步,讓展開目錄和摺疊目錄聯動起來

$('#blog_catalog_open').click(function(){
$('#blog_catalog').show();
$('#blog_catalog_open').hide();
});

$('#blog_catalog_close').click(function(){
$('#blog_catalog').hide();
$('#blog_catalog_open').show();
});

整個製作過程其實並不複雜,還有一些css樣式應用上就完工了。

 

不管原理,我想直接用

 怎麼自定義皮膚我就不多說了,一抓一大把。下麵直接給你們代碼。

css:

.blog_catalog {
    display: none;
    width: auto;
    height: auto;
    float: right;
    position: fixed;
    right: 180px;
    bottom: 200px;
    z-index: 9999;
    background-color: #fff;
    font-size: 12px;
    margin: 10px 0 0 0;
    padding: 5px;
    text-align: center;
    border: 3px solid #55895b;
    border-radius: 5px;
    -webkit-box-shadow: 0px 1px 3px 0px rgba(0,0,0,.73), 0px 0px 18px 0px rgba(0,0,0,.13);
    -moz-box-shadow: 0px 1px 3px 0px rgba(0,0,0,.73), 0px 0px 18px 0px rgba(0,0,0,.13);
    box-shadow: 0px 1px 3px 0px rgba(0,0,0,.73), 0px 0px 18px 0px rgba(0,0,0,.13);
}

    .blog_catalog > li > a {
        background-color: #616975;
        background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(114, 122, 134)),to(rgb(80, 88, 100)));
        background-image: -webkit-linear-gradient(top, rgb(114, 122, 134), rgb(80, 88, 100));
        background-image: -moz-linear-gradient(top, rgb(114, 122, 134), rgb(80, 88, 100));
        background-image: -o-linear-gradient(top, rgb(114, 122, 134), rgb(80, 88, 100));
        background-image: -ms-linear-gradient(top, rgb(114, 122, 134), rgb(80, 88, 100));
        background-image: linear-gradient(top, rgb(114, 122, 134), rgb(80, 88, 100));
        filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#727a86', EndColorStr='#505864');
        -webkit-box-shadow: inset 0px 1px 0px 0px #878e98;
        -moz-box-shadow: inset 0px 1px 0px 0px #878e98;
        box-shadow: inset 0px 1px 0px 0px #878e98;
        width: 100%;
        height: 2.75em;
        line-height: 2.75em;
        text-indent: 2.75em;
        display: block;
        position: relative;
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-weight: 600;
        color: #fff;
        text-shadow: 0px 1px 0px rgba(0,0,0,.5);
    }

    .blog_catalog ul li a {
        background: #fff;
        border-bottom: 1px solid #efeff0;
        width: 100%;
        height: 2.75em;
        line-height: 2.75em;
        display: block;
        position: relative;
        font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
        font-size: 0.923em;
        font-weight: 400;
        color: #878d95;
    }

        .blog_catalog ul li a:hover {
            cursor: pointer;
        }

    .blog_catalog > li > a:hover, .blog_catalog > li > a.active, .blog_catalog > li:target > a; /*add this*/ {
        background-color: #35afe3;
        background-image: -webkit-gradient(linear, left top, left bottom, from(rgb(69, 199, 235)),to(rgb(38, 152, 219)));
        background-image: -webkit-linear-gradient(top, rgb(69, 199, 235), rgb(38, 152, 219));
        background-image: -moz-linear-gradient(top, rgb(69, 199, 235), rgb(38, 152, 219));
        background-image: -o-linear-gradient(top, rgb(69, 199, 235), rgb(38, 152, 219));
        background-image: -ms-linear-gradient(top, rgb(69, 199, 235), rgb(38, 152, 219));
        background-image: linear-gradient(top, rgb(69, 199, 235), rgb(38, 152, 219));
        filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,StartColorStr='#45c7eb', EndColorStr='#2698db');
        border-bottom: 1px solid #103c56;
        -webkit-box-shadow: inset 0px 1px 0px 0px #6ad2ef;
        -moz-box-shadow: inset 0px 1px 0px 0px #6ad2ef;
        box-shadow: inset 0px 1px 0px 0px #6ad2ef;
    }

    .blog_catalog > li > a.active {
        border-bottom: 1px solid #1a638f;
    }

    .blog_catalog > li > a:before {
        content: '';
        background-image: url(../images/sprite.png);
        background-repeat: no-repeat;
        font-size: 36px;
        height: 1em;
        width: 1em;
        position: absolute;
        left: 0;
        top: 50%;
        margin: -.5em 0 0 0;
    }

.item1 > a:before {
    background-position: 0 0;
}

.item2 > a:before {
    background-position: -38px 0;
}

.item3 > a:before {
    background-position: 0 -38px;
}

.item4 > a:before {
    background-position: -38px -38px;
}

.item5 > a:before {
    background-position: -76px 0;
}

.blog_catalog > li > a span {
    font-size: 0.857em;
    display: inline-block;
    position: absolute;
    right: 1em;
    top: 50%;
    background: #48515c;
    line-height: 1em;
    height: 1em;
    padding: .4em .6em;
    margin: -.8em 0 0 0;
    color: #fff;
    text-indent: 0;
    text-align: center;
    -webkit-border-radius: .769em;
    -moz-border-radius: .769em;
    border-radius: .769em;
    -webkit-box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, .26), 0px 1px 0px 0px rgba(255, 255, 255, .15);
    -moz-box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, .26), 0px 1px 0px 0px rgba(255, 255, 255, .15);
    box-shadow: inset 0px 1px 3px 0px rgba(0, 0, 0, .26), 0px 1px 0px 0px rgba(255, 255, 255, .15);
    text-shadow: 0px 1px 0px rgba(0,0,0,.5);
    font-weight: 500;
}

.blog_catalog > li > a:hover span,
.blog_catalog > li a.active span,
.blog_catalog > li:target > a span /*add this*/ {
    background: #2173a1;
}

.blog_catalog > li > ul li a:before {
    font-size: 8px;
    color: #bcbcbf;
    position: absolute;
    width: 1em;
    height: 1em;
    top: 0;
    left: -2.7em;
}

.blog_catalog > li > ul li:hover a,
.blog_catalog > li > ul li:hover a span,
.blog_catalog > li > ul li:hover a:before {
    color: #32373D;
}


.blog_catalog ul > li > a span {
    font-size: 0.857em;
    display: inline-block;
    position: absolute;
    right: 1em;
    top: 50%;
    / background: #fff;
    border: 1px solid #d0d0d3;
    line-height: 1em;
    height: 1em;
    padding: .4em .7em;
    margin: -.9em 0 0 0;
    color: #878d95;
    text-indent: 0;
    text-align: center;
    -webkit-border-radius: .769em;
    -moz-border-radius: 769em;
    border-radius: 769em;
    text-shadow: 0px 0px 0px rgba(255,255,255,.01));
}

/*additional*/

.blog_catalog > li > ul {
    height: 0;
    overflow: hidden;
    opacity: 0;
    filter: alpha(opacity=0); /* IE6-IE8 */
    -webkit-transition: opacity 0.9s ease-in-out;
    -moz-transition: opacity 0.9s ease-in-out;
    -o-transition: opacity 0.9s ease-in-out;
    -ms-transition: opacity 0.9s ease-in-out;
    transition: opacity 0.9s ease-in-out;
}

.blog_catalog > li:target > ul {
    height: auto; /*using auto nullifies the height transitions, but it makes things flexible which is more important*/
    border-bottom: 1px solid #51555a;
    opacity: 1;
    filter: alpha(opacity=100); /* IE6-IE8 */
}

#cnblogs_post_body ul li {
    list-style-type: none;
    margin-left: -30px;
}

.blog_catalog_open {
    width: auto;
    height: auto;
    float: right;
    position: fixed;
    right: 180px;
    bottom: 200px;
    z-index: 9999;
    background-color: #fff;
    font-size: 12px;
    width: 125px;
    margin: 10px 0 0 0;
    padding: 5px;
    text-align: center;
    border: 3px solid #55895b;
    border-radius: 5px;
    -webkit-box-shadow: 0px 1px 3px 0px rgba(0,0,0,.73), 0px 0px 18px 0px rgba(0,0,0,.13);
    -moz-box-shadow: 0px 1px 3px 0px rgba(0,0,0,.73), 0px 0px 18px 0px rgba(0,0,0,.13);
    box-shadow: 0px 1px 3px 0px rgba(0,0,0,.73), 0px 0px 18px 0px rgba(0,0,0,.13);
    cursor: pointer;
}
View Code

js:

$('#cnblogs_post_body').append('<div id="blog_catalog_open" class="blog_catalog_open">展開目錄</div>');
$('#cnblogs_post_body').append('<div id="blog_catalog" class="blog_catalog"><ul><li><a id="blog_catalog_close" class="blog_catalog_close">>摺疊目錄</a></li></ul></div>');

var id = 1;
$('#cnblogs_post_body h1').each(function(){
    $(this).attr('id','blog_catalog_id_'+id);
    $('#blog_catalog ul').append('<li><a href="#blog_catalog_id_'+id+'">'+$(this).text()+'</a></li>');
    id++;
});

$('#blog_catalog_open').click(function(){
$('#blog_catalog').show();
$('#blog_catalog_open').hide();
});

$('#blog_catalog_close').click(function(){
$('#blog_catalog').hide();
$('#blog_catalog_open').show();
});
View Code

 

如何使用

<h1>你可以隨意設置你的標題</h1>

沒錯,就是這麼簡單,其他什麼都不需要。

我不只要用目錄,我還要完整皮膚

先聲明,我這套皮膚是從別人那扒下來的一個雛形然後自己再改了不少地方。但是從哪裡弄來的,忘了。。。很尷尬。

具體設置皮膚的也是一抓一大把就不多說了,上乾貨。

1.博客皮膚 選擇 Custom

2.頁面定製css代碼

@charset "utf-8";
/* CSS Document */
/* By rhinoc.cnblogs.com*/

/*第一部分*/
#EntryTag {
    margin-top: 20px;
    font-size: 9pt;
    color: gray;
}

.topicListFooter {
    text-align: right;
    margin-right: 10px;
    margin-top: 10px;
}

#divRefreshComments {
    text-align: right;
    margin-right: 10px;
    margin-bottom: 5px;
    font-size: 9pt;
}

/*全局樣式*/
{
    margin: 0;
    padding: 0;
}

html {
    height: 100%;
}

body {
    background-image: url(http://images0.cnblogs.com/blog2015/618672/201508/201613472223856.png);
    background-repeat: repeat;
    font-family: 'Lucida Console',Georgia,'Microsoft YaHei',Microsoft YaHei;
    \5B8B\4F53, sans-serif;
    font: 'Lucida Console',Georgia,'Microsoft YaHei',Microsoft YaHei;
    font-size: 11.5px;
    min-height: 101%;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

fieldset, img {
    border: 0;
}

ul {
    word-break: break-all;
}

li {
    list-style: none;
}

h1, h2, h3, h4, h5, h6 {
    font-size: 100%;
    font-weight: normal;
}

a {
    outline: none;
    color: #21759b;
}

address, cite, dfn, em, var {
    font-style: normal;
}

code, kbd, pre, samp, tt {
    font-family: "Courier New", Courier,Microsoft Yahei, monospace;
}

.clear {
    clear: both;
}

/*第三部分*/
/*home和頭部*/
#home {
    margin: 0 auto;
    width: 65%;
    min-width: 1000px;
    background-color: #fff;
    padding: 30px;
    margin-top: 50px;
    margin-bottom: 50px;
    box-shadow: 0px 1px 10px #999;
    -moz-box-shadow: 0px 1px 10px #999;
    -web-kit-shadow: 0px 1px 10px #999;
}

#header {
    padding-bottom: 5px;
    margin-top: 20px;
}

#blogTitle {
    height: 50px;
    clear: both;
    font-family: Georgia,Serif;
}

#InkBlogLogo {
    display: none;
}

/*博客名稱*/
#blogTitle h1 {
    font-size: 28px;
    font-weight: bold;
    line-height: 0.2em;
    margin-top: 20px;
}

    #blogTitle h1 a {
        color: #515151;
    }

        #blogTitle h1 a:hover {
            color: #21759b;
        }

#blogTitle h2 {
    font-weight: normal;
    font-size: 14.5px;
    line-height: 0.3em;
    color: #515151;
    float: left;
    margin-left: 2em;
    margin-bottom: 2em;
}

#blogLogo {
    float: right;
}

/*導航欄*/
#navigator {
    text-decoration: none;
    font-size: 14px;
    font-family: 'Lucida Console',Georgia,'FZYaoTi',Microsoft YaHei;
    \5B8B\4F53, sans-serif;
    font: 'Lucida Console',Georgia,'FZYaoTi',Microsoft YaHei;
    border-bottom: 1px solid #515151;
    border-top: 1px solid #515151;
    height: 80px;
    clear: both;
    margin-top: 20px;
}

#navList {
    width: 1200px;
    min-height: 30px;
    float: left;
}

    #navList .border {
        height: 28px;
        position: absolute;
        width: 5px;
        left: 0px;
        top: 0px;
        overflow: hidden;
        opacity: 0;
        background: #F90;
        -webkit-transition: 0.3s all ease;
        -moz-transition: 0.3s all ease;
        -ms-transition: 0.3s all ease;
        -o-transition: 0.3s all ease;
        -webkit-transition: .5s left ease;
    }

    #navList li {
        float: left;
        margin: 0px,40px,0px,0px;
        -webkit-transition: 0.3s all ease;
        -moz-transition: 0.3s all ease;
        -ms-transition: 0.3s all ease;
        -o-transition: 0.3s all ease;
        transition: 0.3s all ease;
        overflow: hidden;
        position: relative;
    }

        #navList li:hover {
            background: #000;
            box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.4);
        }

            #navList li:hover .border {
                opacity: 1;
                left: 65px;
            }

            #navList li:hover a {
                color: #FFF;
                text-shadow: 1px 2px 4px #333;
            }

            #navList li:hover .menu {
                -webkit-animation-name: shake;
                -moz-animation-name: shake;
            }

.menu {
    -webkit-animation: .5s .2s ease both;
    -moz-animation: 1s .2s ease both;
}

@-webkit-keyframes shake {
    0%,100% {
        -webkit-transform: translateX(0);
    }

    20%,60% {
        -webkit-transform: translateX(-10px);
    }

    40%,80% {
        -webkit-transform: translateX(10px);
    }
}

@-moz-keyframes shake {
    0%,100% {
        -moz-transform: translateX(0);
    }

    20%,60% {
        -moz-transform: translateX(-10px);
    }

    40%,80% {
        -moz-transform: translateX(10px);
    }
}

#navList a {
    text-decoration: none;
    display: block;
    width: 5em;
    height: 20px;
    float: left;
    text-align: center;
    font-weight: bold;
    padding-top: 8px;
    color: #515151;
}

.blogStats {
    float: right;
    font-style: italic;
    font-family: Georgia,'FZYaoTi',Microsoft YaHei;
    \5B8B\4F53, sans-serif;
    color: #757575;
    margin-right: 1px;
    text-align: right;
}

/*主頁文章列表*/
#main {
    width: 100%;
    text-align: left;
    margin-top: 10px;
}

#mainContent .forFlow {
    margin-left: 22em;
    float: none;
    width: auto;
}

#mainContent {
    min-height: 200px;
    padding: 0px 0px 10px 0;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-all;
    float: left;
    margin-left: -22em;
    margin-top: 0;
    width: 100%;
}

/*日期*/
.day {
    text-decoration: none;
    background: #FFF;
    padding: 20px;
    margin-bottom: -1px;
    color: #515151;
    font-size: 21px;
    line-height: 1.5em;
    float: left;
    clear: right;
}

    .day:hover {
        border: 1px solid #21759B;
        position: relative;
        z-index: 10;
    }

        .day:hover .postSeparator {
            border-top: 1px dashed #515151;
        }

.dayTitle {
    text-decoration: none;
}

    .dayTitle a {
        text-decoration: none;
        color: #515151;
        font-size: 13px;
        font-weight: bold;
        font-family: Georgia,Consolas,Microsoft YaHei, monospace;
    }

/*文章標題*/
.postTitle {
    font-family: Georgia,'Consolas','FZYaoTi','STHeiti',Microsoft YaHei;
    \5B8B\4F53, sans-serif;
    font: 'Lucida Console',Georgia,'Microsoft YaHei',Microsoft YaHei;
    margin-bottom: 10px;
    font-size: 20px;
    font-weight: bold;
    float: right;
    width: 100%;
    clear: both;
}

    .postTitle a:link, .postTitle a:visited, .postTitle a:active {
        color: #21759b;
        font-weight: bold;
        transition: all 0.4s linear 0s;
    }

    .postTitle a:hover {
        text-decoration: none;
        margin-left: 30px;
        font-weight: bold;
        color: #45bcf9;
    }

.postTitle2 {
    text-decoration: none;
    font-size: 20px;
    font-weight: bold;
    font-family: Georgia,'Consolas','FZYaoTi','STHeiti',Microsoft YaHei;
    \5B8B\4F53, sans-serif;
    font: 'Lucida Console',Georgia,'Microsoft YaHei',Microsoft YaHei;
    padding-right: 64px;
    padding-left: 10px;
    border-left-style: solid;
    border-left-width: 3px;
    border-left-color: #515151;
}

.postCon {
    float: right;
    line-height: 1.5em;
    width: 100%;
    clear: both;
    padding: 10px 0;
}

.day .postTitle a {
    padding-left: 10px;
}

.postDesc {
    border-right: 3px solid #21759b;
    font-size: 12px;
    color: #21759b;
    float: right;
    width: 100%;
    clear: both;
    text-align: right;
    padding-left: 20px;
    padding-right: 5px;
    margin-top: 20px;
    line-height: 1.5;
}

    .postDesc a:link, .postDesc a:visited, .postDesc a:active {
        color: #666;
    }

    .postDesc a:hover {
        color: #21759b;
        text-decoration: none;
    }

.postSeparator {
    clear: both;
    height: 1px;
    width: 100%;
    clear: both;
    float: right;
    margin: 0 auto 15px auto;
}

/*側邊欄*/
#sideBar {
    margin-top: -15px;
    width: 240px;
    min-height: 200px;
    padding: 0px 0 0px 5px;
    float: right;
    -o-text-overflow: ellipsis;
    text-overflow: ellipsis;
    overflow: hidden;
    word-break: break-all;
}

    #sideBar a {
        color: #757575;
    }

        #sideBar a:hover {
            color: #21759b;
        }

.mySearch {
    background: #FFF;
}

.catListTitle {
    font-size: 16px;
    background-color: #169FE6;
    color: white;
    font-weight: normal;
    margin-bottom: 5px;
}

.catListEssay ul li {
    font-size: 12px;
    font-weight: normal;
    margin-left: -2.3em;
}

.liScore {
    font-family: Georgia,'Consolas','FZYaoTi','STHeiti',Microsoft YaHei;
    font-size: 12px;
    font-weight: normal;
    margin-left: -2.3em;
}

.liRank {
    font-family: Georgia,'Consolas','FZYaoTi','STHeiti',Microsoft YaHei;
    font-size: 12px;
    font-weight: normal;
    margin-left: -2.3em;
}

.catListTag {
    text-decoration: none;
    background: #FFF;
    margin-top: 10px;
    margin-bottom: 20px;
}

    .catListTag ul {
        border-top: none;
    }

        .catListTag ul li {
            line-height: 44px;
            margin-left: -30px;
            color: #7e8c8d;
        }

.catListPostArchive {
    background: #FFF;
}

    .catListPostArchive ul {
        border-top: none;
    }

        .catListPostArchive ul li {
            line-height: 44px;
            color: #7e8c8d;
            margin-left: -30px;
        }

.catListArticleCategory {
    width: 290px;
    padding-top: 20px;
    background: #FFF;
    margin-top: 20px;
}

.catListImageCategory {
    width: 290px;
    padding-top: 20px;
    background: #FFF;
    margin-top: 20px;
}

.catListComment {
    background: #FFF;
    margin-top: 20px;
}

#RecentCommentsBlock {
    padding: 10px;
    border: 1px solid #dedede;
    border-top: none;
}

.recent_comment_title {
    font-size: 15px;
    color: #7e8c8d;
}

.recent_comment_body, .recent_comment_author {
    border-bottom: 1px solid #E9E9E9;
    color: #9fa4a4;
    font-size: 13px;
}

.recent_comment_body {
    border-bottom: none;
}

.catListView {
    background: #FFF;
    margin-top: 20px;
}

#TopViewPostsBlock {
    padding: 10px;
    border: 1px solid #dedede;
    border-top: none;
}

.catListView ul li {
    border-bottom: 1px solid #E9E9E9;
    margin-left: -30px;
    margin-bottom: 5px;
}

.catListFeedback {
    background: #FFF;
    margin-top: 20px;
}

#TopFeedbackPostsBlock {
    padding: 10px;
    border-top: none;
}

.catListFeedback ul li {
    margin-left: -30px;
}

.catListLink {
    display: none;
}

.clearFix:after {
    clear: both;
    display: block;
    height: 0;
    line-height: 0;
    content: "";
    visibility: hidden;
}

#myding {
    background: #99B16B;
    display: none;
}

#myadd:hover {
    opacity: 1;
}

#goto-top:hover {
    background: url(http://images.cnblogs.com/cnblogs_com/Li-Cheng/554829/o_goto-top.png) no-repeat 0 -36px;
}

/*日曆控制項樣式*/
#blog-calendar {
    float: center;
    width: 238px;
    margin-top: 20px;
    padding-bottom: 5px;
    margin-bottom: 20px;
    box-shadow: 0 1px 1px #ccc;
}

    #blog-calendar td {
        font-size: 12px;
        font-family: "Comic Sans MS";
    }

    #blog-calendar th {
        font-size: 12px;
    }

#calendar {
    width: 238px;
    padding-bottom: 5px;
    margin-bottom: 35px;
    box-shadow: 0 1px 1px #ccc;
}

    #calendar .Cal {
        width: 100%;
        line-height: 1.5em;
    }

    #calendar td {
        font-family: "Comic Sans MS";
        background: #FFFFFF;
        padding-top: 2px;
    }

.Cal {
    border: none;
    color: #666;
    text-decoration: none;
}


#calendar table a:hover {
    color: white;
    text-decoration: none;
}

.CalTodayDay {
    background: #FFF !important;
    text-decoration: none;
}

.CalWeekendDay {
    padding-top: 4px;
    padding-bottom: 4px;
    text-decoration: none;
}

.CalOtherMonthDay {
    color: #ccc;
    padding-top: 4px;
    padding-bottom: 4px;
    text-decoration: none;
}

#calendar .CalNextPrev a:link, #calendar .CalNextPrev a:visited, #calendar .CalNextPrev a:active {
    font-weig

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 今天想學下一下驗證碼的生成,就之前搭建好的一個spring框架上寫了一個demo,我會貼出細節代碼,但是spring的配置就不在介紹了。需要完整代碼可以聯繫我! 會從前臺頁面到後臺實現完整的講解: 1:前臺的代碼,image.jsp 2:後臺代碼ImageGenController.java 3:生 ...
  • 項目性能測試總結後,發現影響系統性能的外部因素主要有以下幾個: 網速 影響最大,但主要是影響系統的最大併發量和吞吐量,並不能決定系統的平均響應時間 資料庫數據量 或者說資料庫性能,影響也是非常大的,主要也體現在最高併發量和吞吐量的影響 應用伺服器集群 或者說伺服器的CPU、記憶體;是否做應用集群對系統 ...
  • 涉及知識點:web標準、 web語義化、 瀏覽器內核、 相容性、 語義化、html5新特性... ...
  • 相關知識點:佈局、 浮動、 盒子模型、 彈性和模型、 選擇器優先順序、 居中定位、 相容性、 hack寫法...... ...
  • var ca = document.getElementById("ca"); var ctx = ca.getContext('2d'); //生成n~m之間的隨機數的函數 function random(n,m){ return Math.floor(Math.random() * (m - n... ...
  • 新手Perfect教程之JavaScript教程—①你好,世界! ...
  • CSS命名規範(規則)常用的CSS命名規則 頭:header 內容:content/container 尾:footer 導航:nav 側欄:sidebar 欄目:column 頁面外圍控制整體佈局寬度:wrapper 左右中:left right center 登錄條:loginbar 標誌:lo ...
  • html代碼: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" /> <title>輪播圖練習</title> <link rel="stylesheet" href="css/css.css" type="text/css"/ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...