CSS橫向時(shí)間線是一種常用的網(wǎng)頁(yè)設(shè)計(jì)元素,它適用于展示一系列事件的發(fā)展過(guò)程或者時(shí)間軸的變化。該元素的實(shí)現(xiàn)比較簡(jiǎn)單,只需要用CSS樣式表來(lái)定義相關(guān)屬性即可。
/*CSS樣式表中定義1個(gè)容器元素的樣式*/ .timeline { display: flex; flex-wrap: nowrap; justify-content: center; align-items: center; margin: 20px 0; overflow-x: auto; } /*CSS樣式表中定義每個(gè)時(shí)間節(jié)點(diǎn)的樣式*/ .timeline-item { flex-shrink: 0; position: relative; width: 180px; margin: 0 10px; text-align: center; color: #666; font-size: 14px; } /*CSS樣式表中定義每個(gè)時(shí)間節(jié)點(diǎn)的內(nèi)容樣式*/ .timeline-item:before { content: ""; width: 10px; height: 10px; display: block; border-radius: 50%; background-color: #666; position: absolute; top: 50%; left: -5px; transform: translateY(-50%); } /*CSS樣式表中定義每個(gè)時(shí)間節(jié)點(diǎn)的連接線樣式*/ .timeline-item:after { content: ""; height: 2px; display: block; background-color: #666; position: absolute; top: 50%; left: 0; right: 190px; transform: translateY(-50%); z-index: -1; }
以上代碼中,我們使用了Flex布局來(lái)實(shí)現(xiàn)時(shí)間線元素的水平排列。其中,display:flex
表示將容器元素設(shè)置為Flex布局,flex-wrap:nowrap
表示不換行,justify-content:center
表示在水平方向上居中對(duì)齊,align-items:center
表示在垂直方向上居中對(duì)齊。
接下來(lái),我們定義了每個(gè)時(shí)間節(jié)點(diǎn)的樣式,包括flex-shrink: 0
表示禁止縮小,width:180px
表示寬度為180px,margin:0 10px
表示左右邊距為10px,text-align:center
表示居中對(duì)齊,color:#666
表示文字顏色為#666,font-size:14px
表示字體大小為14px。
最后,我們使用偽元素:before和:after來(lái)分別為每個(gè)時(shí)間節(jié)點(diǎn)添加了一個(gè)小圓點(diǎn)和連接線。其中,content:" "
表示使用空字符作為偽元素的內(nèi)容,width:10px
和height:10px
表示小圓點(diǎn)的大小,display:block
表示顯示為塊元素,border-radius:50%
表示設(shè)置為圓形,background-color:#666
表示背景顏色為#666,position:absolute
表示絕對(duì)定位,top:50%
left:-5px
表示圓點(diǎn)在節(jié)點(diǎn)左側(cè)且居中,transform:translateY(-50%)
表示垂直方向上居中對(duì)齊。
連接線的樣式比較特殊,我們使用before
偽元素來(lái)實(shí)現(xiàn)。首先,設(shè)置高度為2px,背景顏色為#666。接著,使用position:relative
表示相對(duì)定位,使用top:50%
將連接線定位在節(jié)點(diǎn)的中心位置,使用left:0px
將連接線固定在一側(cè),使用right:190px
控制連接線的長(zhǎng)度,最后使用transform:translateY(-50%)
將連接線在垂直方向上居中對(duì)齊。