CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSを使って全幅画像の上にフォームを重ねて表示する方法

Webサイトのヒーローセクションなどで、全幅画像(フルスクリーンの背景画像)の上にログインフォームや登録フォームを重ねて表示したいケースはよくあります。CSSのbackground-imagepositionプロパティを組み合わせることで、簡単に実現できます。

以下は、CSSを使用して全幅画像の上にフォームを追加するコード例です。

コード例

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body, html {
   height: 100%;
   margin: 0;
   padding: 0;
   font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}
* {box-sizing: border-box;}
.backgroundImage {
   height: 100%;
   background-image: url("https://images.pexels.com/photos/1424246/pexels-photo-1424246.jpeg?auto=compress&cs=tinysrgb&dpr=1&w=1000");
   background-position: center;
   background-repeat: no-repeat;
   background-size: cover;
   position: relative;
}
.formContainer {
   position: absolute;
   right: 40%;
   max-width: 400px;
   margin: 20px;
   padding: 16px;
   background-color: white;
}
label{
   font-size: 20px;
   font-weight: bolder;
}
input[type=text], input[type=password] {
   width: 100%;
   font-size: 18px;
   padding: 15px;
   margin: 5px 0 22px 0;
   border: none;
   background: #e3ff95;
}
input[type=text]:focus, input[type=password]:focus {
   background-color: #ddd;
   outline: none;
}
.btn-login {
   background-color: #4CAF50;
   color: white;
   padding: 16px 20px;
   border: none;
   cursor: pointer;
   width: 100%;
   font-size: 20px;
}
</style>
</head>
<body>
<div class="backgroundImage">
<form class="formContainer">
<h1>Register Here</h1>
<label for="eMail">Email</label>
<input type="text" placeholder="Enter your Email ID" name="eMail" required>
<label for="pass">Password</label>
<input type="password" placeholder="Enter your Password" name="pass" required>
<label for="Address">Address</label>
<input type="text" placeholder="Enter your Address" name="Address" required>
<button class="btn-login">Login</button>
</form>
</div>
</body>
</html>

コードのポイント

  • .backgroundImage:親要素にheight: 100%を指定して画面全体に広げ、background-size: coverで画像が領域を覆うように表示します。また、position: relativeを設定することで、子要素であるフォームの配置基準になります。
  • .formContainerposition: absoluteで画像上に絶対配置し、rightmarginで位置を調整します。白背景とパディングを指定することで、背景画像の上でも読みやすいフォームになります。
  • 入力欄とボタン:focus疑似クラスでフォーカス時の背景色を変えたり、ボタンにcursor: pointerを設定したりすることで、ユーザーにとって使いやすいUIを実現しています。

出力結果

上記のコードを実行すると、全幅の背景画像の上に白いフォームが重ねて表示され、次のような出力が得られます。

CSSを使って全幅画像の上にフォームを重ねて表示する方法

  1. CSSでお問い合わせフォームを作成する方法を初心者向けに解説

    Webサイトにおけるお問い合わせフォームは、訪問者と運営者をつなぐ重要な窓口です。HTMLだけでフォームは作成できますが、CSSを組み合わせることで、見た目が整った洗練されたデザインに仕上げることができます。本記事では、CSSを使ってシンプルかつ実用的なお問い合わせフォームを作成する方法を、実際のコード例とともにわかりやすく解説します。お問い合わせフォームの完全なコード例以下は、CSSを使用してお問い合わせフォームを作成するサンプルコードです。そのままコピーしてHTMLファイルとして保存すれば、すぐに動作を確認できます。<!DOCTYPE html> <html> &l

  2. CSSでホバー時にトランジション(アニメーション)を追加する方法を解説

    CSSでホバー時にトランジション(滑らかなアニメーション効果)を追加するには、transitionプロパティと:hover疑似クラスを組み合わせて使用します。あらかじめ要素にtransitionを設定しておくことで、ホバー時の変化が瞬時に切り替わるのではなく、指定した時間をかけてスムーズに変化するようになります。 サンプルコード <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1&q