实现案例

FAQ

代码

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta name="viewport" content="width=device-width, initial-scale=1.0" />
		<link rel="preconnect" href="https://fonts.gstatic.com" />
		<link
			href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap"
			rel="stylesheet"
		/>
		<title>Document</title>
		<style type="text/css">
			/*
            SPACING SYSTEM (px)
            2 / 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64 / 80 / 96 / 128
 
            FONT SIZE SYSTEM (px)
            10 / 12 / 14 / 16 / 18 / 20 / 24 / 30 / 36 / 44 / 52 / 62 / 74 / 86 / 98
            */
 
			/*
            主色:#087f5b
            字体:#343a40
            */
 
			* {
				margin: 0;
				padding: 0;
				box-sizing: border-box;
			}
			body {
				font-family: "Inter", "Microsoft YaHei";
				color: #495057;
				line-height: 1;
			}
 
			.accordion {
				width: 700px;
				margin: 100px auto;
				/* background-color: black; */
 
				display: flex;
				flex-direction: column;
				gap: 24px;
			}
			.item {
				box-shadow: 0 0 32px rgba(0, 0, 0, 0.1);
				padding: 24px;
 
				display: grid;
				grid-template-columns: auto 1fr auto;
				column-gap: 24px;
				row-gap: 32px;
				align-items: center;
			}
			.icon {
				width: 24px;
				height: 24px;
				stroke: #087f5b;
			}
 
			.number,
			.text {
				font-size: 24px;
				font-weight: 500;
				/* color: #087f5b; */
			}
			.number {
				color: #adb5bd;
			}
 
			.hidden-box {
				grid-column: 2/ 3;
				display: none;
			}
 
			.hidden-box p {
				line-height: 1.6;
				margin-bottom: 24px;
			}
 
			.hidden-box ul {
				color: #868e96;
				margin-left: 20px;
 
				display: flex;
				flex-direction: column;
				gap: 12px;
			}
 
			.open .hidden-box {
				display: block;
			}
 
			.open .text,
			.open .number {
				color: #087f5b;
			}
			.open {
				border-top: 5px solid #087f5b;
			}
		</style>
	</head>
	<body>
		<div class="accordion">
			<div class="item">
				<p class="number">01</p>
				<p class="text">Where are these chairs assembled?</p>
				<svg
					xmlns="http://www.w3.org/2000/svg"
					fill="none"
					viewBox="0 0 24 24"
					stroke-width="1.5"
					stroke="currentColor"
					class="icon"
				>
					<path
						stroke-linecap="round"
						stroke-linejoin="round"
						d="M19.5 8.25l-7.5 7.5-7.5-7.5"
					/>
				</svg>
				<div class="hidden-box">
					<p>
						Lorem ipsum dolor sit amet consectetur adipisicing elit.
						Iste, nam laudantium tempora labore dolorum, similique
						ullam possimus placeat at enim voluptatum voluptatem
						earum tenetur.
					</p>
					<ul>
						<li>
							Lorem ipsum dolor sit amet consectetur adipisicing
							elit.
						</li>
						<li>
							Fugiat eveniet, quisquam quasi sequi qui rem neque
							perspiciatis.
						</li>
						<li>
							commodi temporibus et beatae veniam voluptatem, modi
						</li>
						<li>
							laboriosam obcaecati autem suscipit dicta.
							Quibusdam, vel.
						</li>
					</ul>
				</div>
			</div>
			<div class="item open">
				<p class="number">02</p>
				<p class="text">How long do I have to return my chair?</p>
				<svg
					xmlns="http://www.w3.org/2000/svg"
					fill="none"
					viewBox="0 0 24 24"
					stroke-width="1.5"
					stroke="currentColor"
					class="icon"
				>
					<path
						stroke-linecap="round"
						stroke-linejoin="round"
						d="M19.5 8.25l-7.5 7.5-7.5-7.5"
					/>
				</svg>
				<div class="hidden-box">
					<p>
						Lorem ipsum dolor sit amet consectetur adipisicing elit.
						Iste, nam laudantium tempora labore dolorum, similique
						ullam possimus placeat at enim voluptatum voluptatem
						earum tenetur.
					</p>
					<ul>
						<li>
							Lorem ipsum dolor sit amet consectetur adipisicing
							elit.
						</li>
						<li>
							Fugiat eveniet, quisquam quasi sequi qui rem neque
							perspiciatis.
						</li>
						<li>
							commodi temporibus et beatae veniam voluptatem, modi
						</li>
						<li>
							laboriosam obcaecati autem suscipit dicta.
							Quibusdam, vel.
						</li>
					</ul>
				</div>
			</div>
			<div class="item">
				<p class="number">03</p>
				<p class="text">Do you ship to countries outside the EU?</p>
				<svg
					xmlns="http://www.w3.org/2000/svg"
					fill="none"
					viewBox="0 0 24 24"
					stroke-width="1.5"
					stroke="currentColor"
					class="icon"
				>
					<path
						stroke-linecap="round"
						stroke-linejoin="round"
						d="M19.5 8.25l-7.5 7.5-7.5-7.5"
					/>
				</svg>
				<div class="hidden-box">
					<p>
						Lorem ipsum dolor sit amet consectetur adipisicing elit.
						Iste, nam laudantium tempora labore dolorum, similique
						ullam possimus placeat at enim voluptatum voluptatem
						earum tenetur.
					</p>
					<ul>
						<li>
							Lorem ipsum dolor sit amet consectetur adipisicing
							elit.
						</li>
						<li>
							Fugiat eveniet, quisquam quasi sequi qui rem neque
							perspiciatis.
						</li>
						<li>
							commodi temporibus et beatae veniam voluptatem, modi
						</li>
						<li>
							laboriosam obcaecati autem suscipit dicta.
							Quibusdam, vel.
						</li>
					</ul>
				</div>
			</div>
		</div>
	</body>
</html>