検索
ホームページウェブフロントエンドCSSチュートリアルCSS3 を使用してピンク色のログイン インターフェイスを作成する

今回は、CSS3 を使用してピンクのログイン インターフェイスを作成する方法について説明します。CSS3 を使用してピンクのログイン インターフェイスを作成する場合の 注意事項 は何ですか? ここでは実際のケースを見てみましょう。

気まぐれに、マテリアルデザインのデザインスタイルを学びたかったので、ログインページを完成させてみました

全体的な効果はこれです

コードが添付されます。最後に

作成途中では画像やフォントアイコンは一切使用せず、すべてcss3で完成させていますが、それでもいくつか難点やバグに遭遇したので、今後の参考のためにメモしておきたいと思います

レスポンシブ デザイン

このページでは、次の 3 つのポイントを使用してレスポンシブ デザインを完成させます

1. 最大幅を大画面と互換性のある値に設定します。

2. マージン: 20px 自動。常に中央に配置するための

3. コンポーネントの使用法 Pixel

レスポンシブデザインについては他にもたくさんのポイントがあります。

ページ全体のレイアウト

nbsp;html>


    <meta>
    <title>Document</title>
    <meta>
    <meta>
    <link>


    <p>
        </p><p>
            </p><p>
            </p>
            <p>
            </p>
        
        <h4 id="用户登录">用户登录</h4>
        <p>
            </p><p>
                <input>
                <label>用户名</label>
            </p>
            <p>
                <input>
                <label>密 码</label>
            </p>
            <p>
                </p><p><a>忘记密码</a></p>
                <p>
                    <span></span>
                    <label>记住密码</label>
                </p>
            
        
        <button>
            <span></span>
        </button>
    

<script></script>

CSSの開始

本文にスタイルを追加

html {
    font-family: "Microsoft YaHei", å®‹ä½“, "Segoe UI", "Lucida Grande", Helvetica, Arial, sans-serif, FreeSans, Arimo;
    background-color: #FF4081;
    color: #777;
}
ペイント

.container{
    position: relative;
    max-width: 360px;
    margin: 0 auto;
    margin-top: 30px;
    padding: 45px 20px;
    border-radius: 4px;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3);
    background-color: #fff;
    box-sizing: border-box;
}
ここで、子要素のマージンではなく内部マージンを調整するためにパディングが使用されることに注意してください。 BFC エフェクトに Margin を使用するには、overflow: hidden を追加する必要があります。これは、

Head logo

.container>.logo {
    height: 150px;
    width: 150px;
    position: relative;
    background-color: #EFEFEF;
    border-radius: 75px;
    margin: 0 auto;
}
の border-radius を幅と高さに設定します。円

下に暗い半円が必要です

半円の描き方

.container>.logo::after {
    content: ' ';
    height: 150px;
    width: 75px;
    position: absolute;
    background-color: #E1E1E1;
    border-radius: 0 75px 75px 0;
    left: 75px;
    top: 0;
}
幅を高さに設定し、左上隅と左下隅のフィレットを0、右側を75ピクセルに設定します

ロックトップとロックボトムの2つの部分に分けて錠前を作ります

.container>.logo>.logo-block-top {
    box-sizing: border-box;
    height: 45px;
    width: 54px;
    border: 10px solid #F57C00;
    border-bottom: 0;
    position: absolute;
    border-radius: 27px 27px 0 0;
    left: 48px;
    z-index: 1001;
    top: 20px;
}
同様に角丸を設定します

.container>.logo>.logo-block-bottom {
    position: absolute;
    height: 60px;
    width: 80px;
    box-sizing: border-box;
    background-color: #FFA000;
    z-index: 1001;
    top: 65px;
    left: 35px;
    border-radius: 7px;
}

鍵の芯を設置します、これも上部と2つの部分に分けます丸い穴と下の穴です ロックボトムの前後の疑似要素に楕円

を設定するだけです

.container>.logo>.logo-block-bottom::before {
    content: " ";
    position: absolute;
    height: 12px;
    width: 12px;
    background-color: #EFEFEF;
    border-radius: 5px;
    top: 22px;
    left: 34px;
    box-sizing: border-box;
}
.container>.logo>.logo-block-bottom::after {
    content: " ";
    position: absolute;
    height: 12px;
    width: 6px;
    background-color: #EFEFEF;
    border-radius: 2px;
    top: 30px;
    left: 37px;
    box-sizing: border-box;
}
これでロゴが完成です

以下は「ユーザーログイン」のタイトルです

ここではパディングの代わりにマージンを使用することが最善であることに注意してください。元の h4 タグを破壊しないでください。

.container>.login-header {
    text-align: center;
    font-size: 23px;
    color: #FF4081;
    font-weight: 400;
    margin: 15px 0 18px 0;
}
コンテンツのコンテナを追加します

.container>.content {
    width: 90%;
    margin: 0 auto;
}
ラベルと入力タグを含むフォームグループを追加し、相対レイアウトを設定します

.container>.content>.form-group {
    position: relative;
}
以下が核心部分で、入力のスタイルを設定します(ここでバグが発生するので最後に紹介します)

.container>.content>.form-group>.form-control {
    z-index: 3;
    position: relative;
    height: 58px;
    width: 100%;
    border: 0px;
    border-bottom: 1px solid #777;
    padding-top: 22px;
    color: #FF4081;
    font-size: 12px;
    background: none;
    box-sizing: border-box;
    outline: none;
    display: inline-block;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}
labタグを使用し、

絶対位置を使用して、入力。

.container>.content>.form-group>.form-label {
    z-index: 1;
    position: absolute;
    bottom: 10px;
    left: 0;
    font-size: 15px;
    -webkit-transition: 0.3s;
    transition: 0.3s;
}
2 つのフォーム グループ間に一定の間隔を設定します。そうでない場合、下の部分が上に設定したボックスをブロックします。 -shadow

.container>.content>.form-group>:first-child {
    margin-bottom: 5px;
}
動的効果を追加します

.container>.content>.form-group>.form-control:focus,
.container>.content>.form-group>.form-control:valid {
    box-shadow: 0 1px #FF4081;
    border-color: #FF4081;
}
.container>.content>.form-group>.form-control:focus+.form-label,
.container>.content>.form-group>.form-control:valid+.form-label {
    font-size: 12px;
    -ms-transform: translateY(-20px);
    -webkit-transform: translateY(-20px);
    transform: translateY(-25px);
}
次に、一番下のオプションが 2 つの部分に分かれています。 option-left と option-right

.container>.content>.option {
    width: 100%;
    height: 14px;
    margin-top: 24px;
    font-size: 16px;
}
.container>.content>.option>.option-left {
    width: 50%;
    float: left;
}
.container>.content>.option>.option-left>a,
.container>.content>.option>.option-left>a:hover {
    color: #FF4081;
    text-decoration: none;
}
option-right では、このチェック ボックスはネイティブの Input ではなく、 p 回転を使用して取得されることに注意してください。ネイティブのチェックボックスはスタイルを変更できないためです。

.container>.content>.option>.option-right {
    width: 50%;
    float: right;
    text-align: right;
    position: relative;
}
.container>.content>.option>.option-right>.md-checkbox {
    height: 18px;
    width: 18px;
    display: inline-block;
    box-sizing: border-box;
    position: absolute;
    background-color: #FF4081;
    cursor: pointer;
    position: absolute;
    top: 3px;
    right: 68px;
}
.container>.content>.option>.option-right>.md-checkbox[checked]:after {
    content: " ";
    border-left: 2px solid #fff;
    border-bottom: 2px solid #fff;
    height: 8px;
    width: 15px;
    box-sizing: border-box;
    position: absolute;
    transform: rotate(-45deg);
    top: 3px;
    left: 2px;
}
css3 の回転ここでは、選択効果を模倣するために使用されます

注: p を直接選択することはできませんが、それに checkd 属性を追加することはできます。この属性は、js を通じて制御できる特別な CSS イベント効果です。

最後に、ログインbutton.

ここでは、絶対位置も使用する必要があります。基準点は下と右です

.container>.login-button {
    position: absolute;
    height: 60px;
    width: 60px;
    border: 0px;
    outline: 0px;
    background-color: #FF4081;
    border-radius: 30px;
    right: -30px;
    bottom: 91px;
    box-shadow: 2px 0 0 rgba(0, 0, 0, 0.3) inset;
}
Box-shadow: 2px 0 0 rgba(0, 0, 0, 0.3) inset; この文はインライン効果を知ることができます。 .

中间的按钮在不适用字体图标的情况下也必须要用p 旋转来模仿了

.container>.login-button >.icon-login {
    box-sizing: border-box;
    position: relative;
    width: 18px;
    height: 3px;
    background-color: #fff;
    transition: 0.3s;
    display: block;
    margin: auto;
}
.container>.login-button >.icon-login::after {
    content: ' ';
    box-sizing: border-box;
    position: absolute;
    left: 8px;
    height: 12px;
    width: 12px;
    border-top: 3px solid #fff;
    border-right: 3px solid #fff;
    transform: rotate(45deg);
    top: -4px;
}

最后是鼠标hover上的放大和阴影效果

.container>.login-button:hover {
    box-shadow: 0 0 0 rgba(0, 0, 0, 0.3) inset, 0 3px 6px rgba(0, 0, 0, 0.16), 0 5px 11px rgba(0, 0, 0, 0.23)
}
.container>.login-button:hover>.icon-login {
    -ms-transform: scale(1.2);
    =webkit-transform: scale(1.2);
    transform: scale(1.2);
}

至此,所有的css已经结束了,查看效果

transition bug修复

当我刷新页面或者点击忘记密码的时候,input框就会抖动一下,这个问题只会出现在chrome 浏览器上,firefox 或者edge都不会重现,所以我才这应该是兼容性的问题。 在不断尝试中,我发现,只有取消 transition属性,就不会产生抖动。

这个问题困扰了我3天,真实百思不得其姐。

在某度中查询半天,未果 。

后来终于在 StackOverFlow 中,搜索chrome input transition 时,终于一个回到让我貌似顿开。

this bug has been reported, adding an script tag somewhere can advoid it.

之后,我在页面尾部添加一个下面节点,终于顺利解决。

<script></script>

在阅读过一些文章之后,总结为

当chrome 的input 默认属性向自定义过度时,因为存在transition,所以会产生抖动。 而基本上所有的页面都有script标签,所以这个bug 几乎很难被重现。而我遇到,算是运气好吧。。

至此,这个页面全部内容已经完成。

material-design 很赞,angular-material 是使用 AngularJS 封装了 material-design 的UI 库,很漂亮。不同于 bootstrap的完全扁平化风格,它采用的是盒子堆砌效果,动画效果也比较赞。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

CSS3实现扇形动画菜单流程详解

单选、复选样式美化的图文详解

以上がCSS3 を使用してピンク色のログイン インターフェイスを作成するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
ページの上部にスクロールする必要がありますか?ページの上部にスクロールする必要がありますか?Apr 17, 2025 am 11:45 AM

おそらく、それをユーザーに提供する最も簡単な方法は、要素上のIDをターゲットにするリンクです。だから...

Best(GraphQL)APIはあなたが書くものですBest(GraphQL)APIはあなたが書くものですApr 17, 2025 am 11:36 AM

聞いてください、私はGraphQLの専門家ではありませんが、私はそれで働くことを楽しんでいます。フロントエンド開発者としてデータを公開する方法はかなりクールです。メニューのようなものです

毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーター毎週のプラットフォームニュース:テキスト間隔のブックマークレット、トップレベルの待望、新しいアンプロードインジケーターApr 17, 2025 am 11:26 AM

今週のラウンドアップ、タイポグラフィを検査するための便利なブックマークレットである。

ボーダー半径を保存しながら箱を拡張するためのさまざまな方法ボーダー半径を保存しながら箱を拡張するためのさまざまな方法Apr 17, 2025 am 11:19 AM

私は最近、Codepenの興味深い変化に気づきました。ホームページにペンをホバリングすると、丸い角が背面に拡大する長方形があります。

毎週のプラットフォームニュース:遅い接続でUXの改善、ALTテキストを書くためのヒント、HTMLロード属性のポリフィル毎週のプラットフォームニュース:遅い接続でUXの改善、ALTテキストを書くためのヒント、HTMLロード属性のポリフィルApr 17, 2025 am 11:09 AM

今週のラウンドアップ、ゆっくりとした接続の決定方法、画像のためにALTテキストに入れるもの、およびHTMLロード属性の新しいポリフィル、

少しポップを追加するための再利用可能なポップオーバー少しポップを追加するための再利用可能なポップオーバーApr 17, 2025 am 11:02 AM

ポップオーバーは、ユーザーがコントロールボタンまたは定義された領域内でクリックすると、画面上のコンテンツの上に表示される一時的なビューです。例えば、

実際のアンダーラインとのスタイリングリンク実際のアンダーラインとのスタイリングリンクApr 17, 2025 am 10:57 AM

アンダーラインのスタイル方法に来る前に、質問に答える必要があります。アンダーラインする必要がありますか?

毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動毎週のプラットフォームニュース:HTMLロード属性、主なARIA仕様、およびIFRAMEからShadowDOMへの移動Apr 17, 2025 am 10:55 AM

今週のプラットフォームニュースのラウンドアップで、Chromeは、Web開発者のロード、アクセシビリティ仕様、およびBBCの動きのための新しい属性を導入します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、