css实现自适应横竖时间线效果代码

代码语言:html

所属分类:布局界面

代码描述:css实现自适应横竖时间线效果代码,包含单点和文字详情介绍时间线。

代码标签: css 时间线 自适应

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>

<html lang="en">

<head>

   
<meta charset="UTF-8">




   
<style>
        /**
         * timeline.css
         * @version 1.0.0
         * @summary 10-08-2021
         * @author Mads Stoumann
         * @description Stylesheet for timeline.
        */
       
        .tmln {
                --bdc: hsl(200, 40%, 60%);
                --bdc-a: hsl(200, 40%, 40%);
                --bdc-h: hsl(200, 30%, 90%);
                --bgc: hsl(200, 40%, 80%);
                --bdrs: 0.25rem;
                --bdw: 2px;
                --bullet-bdrs: 50%;
                --bullet-sz: 1.2em;
                --bullet-sz-a: 6px;
                --c: hsl(200, 40%, 1%);
                --box-item-bdrs: 0.25rem;
                --box-item-bgc: rgba(255, 255, 255, .15);
                --box-item-dark-bgc: hsl(200, 40%, 40%);
                --box-item-dark-c: hsl(200, 40%, 95%);
                --box-item-lght-bgc: hsl(200, 30%, 90%);
                --gap: 1rem;
                --scroll-bgc: hsl(200, 40%, 85%);
                --scroll-tmb-bgc: hsl(200, 40%, 70%);
                --scroll-w: 10px;
                --trsdu: .3s;
                --trstf: ease-out;
       
                /* Modifier-specific properties */
                --sl-mbe: 2em;
                --bi-miw: 85%;
                --bi-miw-tablet: 30%;
       
                background-color: var(--bgc, transparent);
                border-radius: var(--bdrs, 0);
                color: var(--c, currentColor);
                font-family: var(--ff, ui-sans-serif, system-ui, sans-serif);
                padding-block: var(--gap) 0;
                padding-bottom: var(--gap); /* Safari */
                padding-top: var(--gap); /* Safari */
                width: var(--w, 100%);
                -webkit-tap-highlight-color: transparent;
        }
       
        .tmln:not(.tmln--hr) {
                padding-inline-start: var(--gap);
        }
       
        .tmln__header {
                margin-block-start: 0;
        }
       
        .tmln__item {
                color: inherit;
                display: block;
                margin-block-end: var(--mbe, var(--gap));
                padding-inline-start: calc(var(--gap) + var(--bullet-sz));
                position: relative;
                text-decoration: none;
        }
       
        /* Circle */
        .tmln__item::after {
                border: var(--bdw) solid var(--bdc);
                border-radius: var(--bullet-bdrs);
                box-sizing: border-box;
                content: "";
                block-size: var(--bullet-sz);
                inline-size: var(--bullet-sz);
                inset-block-start: 0;
                inset-inline-start: 0;
                position: absolute;
                transition: all var(--trsdu) var(--trstf);
        }
       
        /* Line */
        .tmln__item::before {
                background-color: var(--bdc);
                content: "";
                block-size: calc(100% + var(--mbe, var(--gap)) - var(--bullet-sz));
                inline-size: var(--bdw);
                inset-block-start: var(--bullet-sz);
                inset-inline-start: calc((var(--bullet-sz) - var(--bdw)) / 2);
                position: absolute;
        }
       
        /* Hide last line */
        .tmln:not(.tmln--hr) .tmln__item:last-child::before {
                display: none;
        }
       
        .tmln__item-headline {
                margin-block: 0;
        }
       
        .tmln__list {
                display: flex;
                flex-direction: column;
                margin: 0;
                padding-block: 0 var(--gap);
                padding-inline: 0;
        }
       
        /*
        ====================
        Modifiers and States
        ====================
        */
       
        /* Active Circle */
        .tmln__item--active::after {
                --bdc: var(--bdc-a);
                box-shadow: 0 0 0 calc(var(--bullet-sz-a) - var(--bdw)) var(--bgc, #FFF), 0 0 0 var(--bullet-sz-a) var(--bdc-a);
                background-color: var(--bdc-a);
        }
       
        /* :focus, :focus-within, :focus-visible */
        .tmln__item--active:focus-visible::after,
        .tmln__item--active:focus-within::after {
                box-shadow: 0 0 0 calc(var(--bullet-sz-a) - var(--bdw)) var(--bdc-h, #FFF), 0 0 0 var(--bullet-sz-a) var(--bdc);
        }
       
        .tmln__item--active [data-title],
        .tmln__item:focus-visible [data-title] {
                text-shadow: 0.75px 0px 0px currentColor;
        }
       
        .tmln__item:not(.tmln__item--active):focus-visible::after,
        .tmln__item:not(.tmln__item--active):focus-within::after {
                background-color: var(--bdc-h);
                box-shadow: 0 0 0 calc(var(--bullet-sz-a) - var(--bdw)) var(--bgc, #FFF), 0 0 0 var(--bullet-sz-a) var(--bdc);
        }
       
        .tmln--box .tmln__item:focus-within {
                box-shadow: 0px 4px 6px -1px rgba(0, 0, 0, 0.1), 0px 2px 4px -1px rgba(0, 0, 0, 0.06);
        }
       
        .tmln__item:focus-visible {
                outline: none;
        }
       
        .tmln__item:focus-visible [data-title],
        .tmln__item:focus-within a {
                outline: 1px dotted currentColor;
                outline-offset: 6px;
        }
       
        /* Horizontal */
        .tmln--hr .tmln__header {
                margin-inline-start: var(--gap);
        }
       
        .tmln--hr .tmln__list {
                flex-direction: row;
                flex-wrap: nowrap;
                overflow-x: auto;
                padding-block-start: var(--bullet-sz-a); /* Add room for box-shadow transition in horizontal mode */
                padding-inline-start: var(--gap);
                scrollbar-width: none;
                scroll-snap-type: x mandatory;
        }
       
        .tmln--hr .tmln__item {
                align-self: flex-start;
                margin-block-end: 0;
                min-width: var(--miw, 6rem);
                padding-block-start: calc(var(--bullet-sz) + var(--gap));
                padding-inline-end: var(--gap);
                padding-inline-start: 0;
                scroll-snap-align: start;
                scroll-margin-inline-start: var(--gap);
                scroll-margin-left: var(--gap); /* Safari */
        }
       
        .tmln--hr .tmln__item::before {
                block-size: var(--bdw);
                inline-size: calc(100% - var(--bullet-sz));
                inset-block-start: calc((var(--bullet-sz) - var(--bdw)) / 2);
                inset-inline-start: calc(0% + var(--bullet-sz));
        }
       
        /* Item Box */
        .tmln--box .tmln__item {
                background-color: var(--box-item-bgc);
                border-radius: var(--box-item-bdrs);
                margin-block-end: 0;
                margin-inline-start: calc(var(--bullet-sz) + var(--gap));
                padding: var(--gap);
                transition: box-shadow var(--trsdu) var(--trstf);
        }
       
        .tmln--box .tmln__item [data-title] {
                display: block;
                font-size: small;
                text-transform: uppercase;
        }
       
        .tmln--box:not(.tmln--hr) .tmln__item::after {
                inset-inline-start: calc(0px - var(--bullet-sz) - var(--gap));
     .........完整代码请登录后点击上方下载按钮下载查看

网友评论0