HTMLとCSSで作るマーキー✏️
HTMLとCSSだけでシンプルなマーキー(スクロールテキスト)を作成する方法を紹介します。
HTMLの<marquee>
要素は非推奨ですが、CSSの@keyframes
アニメーションを使って実装できます。
完成
これはCSSのみで作られたマーキーです。テキストが右から左にスクロールします。
ソースコード
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSSのみのマーキー</title>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
background-color: #f0f0f0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.marquee-container {
overflow: hidden;
white-space: nowrap;
border: 2px solid #333;
border-radius: 5px;
background: #fff;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
width: 80%;
max-width: 600px;
}
.marquee-text {
display: inline-block;
animation: marquee 10s linear infinite;
font-size: 2rem;
padding: 1rem;
}
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-100%); }
}
</style>
</head>
<body>
<div class="marquee-container">
<div class="marquee-text">
これはCSSのみで作られたマーキーです。テキストが右から左にスクロールします。
</div>
</div>
</body>
</html>
コードの説明
- HTML:
.marquee-container
:マーキーの表示エリアを作るためのコンテナです。.marquee-text
:スクロールさせるテキストです。
- CSS:
.marquee-container
:コンテナのスタイルを設定し、overflow: hidden;
でコンテナ外のテキストを隠します。white-space: nowrap;
でテキストを一行に表示します。.marquee-text
:テキストをinline-block
にし、padding-left: 100%;
でテキストがコンテナの外から始まるようにします。animation
プロパティを使ってテキストを右から左に移動させます。@keyframes marquee
:translateX
を使ってテキストの移動を設定します。0%
でテキストが初期位置にあり、100%
でテキストがコンテナの外まで移動します。
調整
- スクロール速度:
animation: marquee 10s linear infinite;
の10s
部分を調整することでスクロールの速度を変更できます。 - テキストの内容:
.marquee-text
の中のテキストを変更することで、スクロールする内容を自由に変更できます。 - 方向:
translateX
の代わりにtranslateY
を使うことで、上下にスクロールさせることも可能です。
これで、CSSのみで簡単にマーキー(スクロールテキスト)を作成することができます。HTMLとCSSだけで手軽に実装でき、見栄えも良いマーキーが作れます。
完成品とコピペソース
これはCSSのみで作られたマーキーです。テキストが右から左にスクロールします。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSSのみのマーキー</title>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
background-color: #f0f0f0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.marquee-container {
overflow: hidden;
white-space: nowrap;
border: 2px solid #333;
border-radius: 5px;
background: #fff;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
width: 80%;
max-width: 600px;
}
.marquee-text {
display: inline-block;
animation: marquee 10s linear infinite;
font-size: 2rem;
padding: 1rem;
}
@keyframes marquee {
0% { transform: translateX(0); }
100% { transform: translateX(-100%); }
}
</style>
</head>
<body>
<div class="marquee-container">
<div class="marquee-text">
これはCSSのみで作られたマーキーです。テキストが右から左にスクロールします。
</div>
</div>
</body>
</html>
Recent posts
Category
- reference (2)
- sourcecode (6)
- weblog (11)