天天看點

如何在網頁中弄出目錄效果

如何在網頁中弄出目錄效果

效果圖如下所示 ,涉及到的知識分别是

html5

css3

如何在網頁中弄出目錄效果

我們先來分析一下思路:首先,使用一個

ul

無序清單(這裡也可以換成

ol

有序清單)建立若幹個新聞清單(

li

子元素),然後對于每一個

li

标簽,設定為彈性布局(

dispaly:flex

),并且開始相對定位,友善自己的子元素進行相對布局。

.items li{
			display: flex;
			/* 設定為彈性布局 */
			position: relative;
			overflow: hidden;
			height: 20px;
			line-height: 20px;
			margin-bottom: 5px;
		}
           

接下來,在每個

li

标簽裡面分為三個

span

标簽,左邊的是新聞清單内容,中間的是虛線,右邊的是新聞的日期。

<li>
	<span class="news"><a href="#">考試走路甩手誤将手摔入河裡,消防員跳河打撈</a></span>
	<span class="dashed"></span>
	<span class="time">2020-12</span>
</li>
           

左邊的

span

标簽為自己開啟相對定位,位置為靠左,然後設定背景和層級,用來蓋住虛線。

.items .news{
	position: relative;
	left: 0;
	padding: 0 5px 0 0 ;
	/* 為了不讓線緊貼文字 */
	background-color: #FFFFFF;
	z-index: 10;
	/* 設定一個背景并提高層級,遮擋着在文字後面的線, */
}
           

中間的

span

标簽設定為彈性分布,設定虛線,寬度充滿整個

li

标簽。

.items .dashed{
	position: absolute;
	border-top: 1px dashed #666666;
	display: flex;
	width: 100%;
	top: 10px;
	flex: 1;
	/* 彈性盒子,表示兩邊固定,中間是一個自适應效果 */				
}
           

右邊的

span

标簽與左邊的`span``标簽設定類似。

.items .time{
	position: absolute;
	right: 0;
	padding-left: 5px;
	background-color: #FFFFFF;
}
           

整體的代碼如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>目錄效果</title>
		<style type="text/css">
			*{
				margin: 0;
				padding: 0;
			}
			.items{
				width: 760px;
				height: 240px;
				border: 3px dashed #000000;
				margin: 40px auto;
				padding: 20px;
			}
			.items span{
				display: inline-block;
				
			}
			.items span{
				font-family: "宋體";
			}
			.items a{
				text-decoration: none;
				color: #000000;
				font-family: "宋體";
			}
			.items li:hover{
				color: red;
			}
			.items li:hover a{
				color: red;
			}
			.items li:hover .dashed{
				border-top: 1px dashed red;
			}
			.items li{
				display: flex;
				/* 設定為彈性布局 */
				position: relative;
				overflow: hidden;
				height: 20px;
				line-height: 20px;
				margin-bottom: 5px;
			}
			.items .news{
				position: relative;
				left: 0;
				padding: 0 5px 0 0 ;
				/* 為了不讓線緊貼文字 */
				background-color: #FFFFFF;
				z-index: 10;
				/* 設定一個背景并提高層級,遮擋着在文字後面的線, */
			}
			.items .time{
				position: absolute;
				right: 0;
				padding-left: 5px;
				background-color: #FFFFFF;
			}
			.items .dashed{
				position: absolute;
				border-top: 1px dashed #666666;
				display: flex;
				width: 100%;
				top: 10px;
				flex: 1;
				/* 彈性盒子,表示兩邊固定,中間是一個自适應效果 */	
			}
		</style>
	</head>
	<body>
		<ul class="items">
			<li>
				<span class="news"><a href="#">考試走路甩手誤将手摔入河裡,消防員跳河打撈</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">20餘省公務員省筆考試放榜</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">辟谷減肥:"大師"稱意念發功可治病</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">2020年公務員考試34萬人報名,平均24人搶一人</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">男子送交警錦旗被抓,原因令人震驚</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">放假過年須知</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">冬天使用吃什麼</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">上海一家三口住九平米房間27年</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">考試走路甩手誤将手摔入河裡,消防員跳河打撈</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
			<li>
				<span class="news"><a href="#">女人美于自信,而不是化妝</a></span>
				<span class="dashed"></span>
				<span class="time">2020-12</span>
			</li>
		</ul>
	</body>
</html>
           

繼續閱讀