技术笔记

编程 营销 外贸


购物网站结算页面布局

<h3>购物网站结算页面布局</h3> <p>存在表单验证bug 代码来自 <code>https://getbootstrap.com/docs/5.3/examples/checkout/</code> <img src="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=7f5b322f574971ada36fc4635c6a832d&amp;amp;file=file.png" alt="" /></p> <pre><code>&amp;lt;html lang=&amp;quot;en&amp;quot; data-bs-theme=&amp;quot;light&amp;quot;&amp;gt;&amp;lt;head&amp;gt;&amp;lt;script src=&amp;quot;https://getbootstrap.com/docs/5.3/assets/js/color-modes.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;     &amp;lt;meta charset=&amp;quot;utf-8&amp;quot;&amp;gt;     &amp;lt;meta name=&amp;quot;viewport&amp;quot; content=&amp;quot;width=device-width, initial-scale=1&amp;quot;&amp;gt;     &amp;lt;meta name=&amp;quot;description&amp;quot; content=&amp;quot;&amp;quot;&amp;gt;     &amp;lt;meta name=&amp;quot;author&amp;quot; content=&amp;quot;Mark Otto, Jacob Thornton, and Bootstrap contributors&amp;quot;&amp;gt;     &amp;lt;meta name=&amp;quot;generator&amp;quot; content=&amp;quot;Hugo 0.122.0&amp;quot;&amp;gt;     &amp;lt;title&amp;gt;Checkout example · Bootstrap v5.3&amp;lt;/title&amp;gt;     &amp;lt;link rel=&amp;quot;canonical&amp;quot; href=&amp;quot;https://getbootstrap.com/docs/5.3/examples/checkout/&amp;quot;&amp;gt;         &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;https://cdn.jsdelivr.net/npm/@docsearch/css@3&amp;quot;&amp;gt; &amp;lt;link href=&amp;quot;https://getbootstrap.com/docs/5.3/dist/css/bootstrap.min.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; integrity=&amp;quot;sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH&amp;quot; crossorigin=&amp;quot;anonymous&amp;quot;&amp;gt;     &amp;lt;!-- Favicons --&amp;gt; &amp;lt;link rel=&amp;quot;apple-touch-icon&amp;quot; href=&amp;quot;https://getbootstrap.com/docs/5.3/assets/img/favicons/apple-touch-icon.png&amp;quot; sizes=&amp;quot;180x180&amp;quot;&amp;gt; &amp;lt;link rel=&amp;quot;icon&amp;quot; href=&amp;quot;https://getbootstrap.com/docs/5.3/assets/img/favicons/favicon-32x32.png&amp;quot; sizes=&amp;quot;32x32&amp;quot; type=&amp;quot;image/png&amp;quot;&amp;gt; &amp;lt;link rel=&amp;quot;icon&amp;quot; href=&amp;quot;https://getbootstrap.com/docs/5.3/assets/img/favicons/favicon-16x16.png&amp;quot; sizes=&amp;quot;16x16&amp;quot; type=&amp;quot;image/png&amp;quot;&amp;gt; &amp;lt;link rel=&amp;quot;manifest&amp;quot; href=&amp;quot;https://getbootstrap.com/docs/5.3/assets/img/favicons/manifest.json&amp;quot;&amp;gt; &amp;lt;link rel=&amp;quot;mask-icon&amp;quot; href=&amp;quot;https://getbootstrap.com/docs/5.3/assets/img/favicons/safari-pinned-tab.svg&amp;quot; color=&amp;quot;#712cf9&amp;quot;&amp;gt; &amp;lt;link rel=&amp;quot;icon&amp;quot; href=&amp;quot;https://getbootstrap.com/docs/5.3/assets/img/favicons/favicon.ico&amp;quot;&amp;gt; &amp;lt;meta name=&amp;quot;theme-color&amp;quot; content=&amp;quot;#712cf9&amp;quot;&amp;gt;     &amp;lt;style&amp;gt;       .bd-placeholder-img {         font-size: 1.125rem;         text-anchor: middle;         -webkit-user-select: none;         -moz-user-select: none;         user-select: none;       }       @media (min-width: 768px) {         .bd-placeholder-img-lg {           font-size: 3.5rem;         }       }       .b-example-divider {         width: 100%;         height: 3rem;         background-color: rgba(0, 0, 0, .1);         border: solid rgba(0, 0, 0, .15);         border-width: 1px 0;         box-shadow: inset 0 .5em 1.5em rgba(0, 0, 0, .1), inset 0 .125em .5em rgba(0, 0, 0, .15);       }       .b-example-vr {         flex-shrink: 0;         width: 1.5rem;         height: 100vh;       }       .bi {         vertical-align: -.125em;         fill: currentColor;       }       .nav-scroller {         position: relative;         z-index: 2;         height: 2.75rem;         overflow-y: hidden;       }       .nav-scroller .nav {         display: flex;         flex-wrap: nowrap;         padding-bottom: 1rem;         margin-top: -1px;         overflow-x: auto;         text-align: center;         white-space: nowrap;         -webkit-overflow-scrolling: touch;       }       .btn-bd-primary {         --bd-violet-bg: #712cf9;         --bd-violet-rgb: 112.520718, 44.062154, 249.437846;         --bs-btn-font-weight: 600;         --bs-btn-color: var(--bs-white);         --bs-btn-bg: var(--bd-violet-bg);         --bs-btn-border-color: var(--bd-violet-bg);         --bs-btn-hover-color: var(--bs-white);         --bs-btn-hover-bg: #6528e0;         --bs-btn-hover-border-color: #6528e0;         --bs-btn-focus-shadow-rgb: var(--bd-violet-rgb);         --bs-btn-active-color: var(--bs-btn-hover-color);         --bs-btn-active-bg: #5a23c8;         --bs-btn-active-border-color: #5a23c8;       }       .bd-mode-toggle {         z-index: 1500;       }       .bd-mode-toggle .dropdown-menu .active .bi {         display: block !important;       }     &amp;lt;/style&amp;gt;         &amp;lt;!-- Custom styles for this template --&amp;gt;     &amp;lt;link href=&amp;quot;https://getbootstrap.com/docs/5.3/dist/css/checkout.css&amp;quot; rel=&amp;quot;stylesheet&amp;quot;&amp;gt;   &amp;lt;/head&amp;gt;   &amp;lt;body class=&amp;quot;bg-body-tertiary&amp;quot;&amp;gt;     &amp;lt;svg xmlns=&amp;quot;http://www.w3.org/2000/svg&amp;quot; class=&amp;quot;d-none&amp;quot;&amp;gt;       &amp;lt;symbol id=&amp;quot;check2&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;         &amp;lt;path d=&amp;quot;M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;       &amp;lt;/symbol&amp;gt;       &amp;lt;symbol id=&amp;quot;circle-half&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;         &amp;lt;path d=&amp;quot;M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;       &amp;lt;/symbol&amp;gt;       &amp;lt;symbol id=&amp;quot;moon-stars-fill&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;         &amp;lt;path d=&amp;quot;M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;         &amp;lt;path d=&amp;quot;M10.794 3.148a.217.217 0 0 1 .412 0l.387 1.162c.173.518.579.924 1.097 1.097l1.162.387a.217.217 0 0 1 0 .412l-1.162.387a1.734 1.734 0 0 0-1.097 1.097l-.387 1.162a.217.217 0 0 1-.412 0l-.387-1.162A1.734 1.734 0 0 0 9.31 6.593l-1.162-.387a.217.217 0 0 1 0-.412l1.162-.387a1.734 1.734 0 0 0 1.097-1.097l.387-1.162zM13.863.099a.145.145 0 0 1 .274 0l.258.774c.115.346.386.617.732.732l.774.258a.145.145 0 0 1 0 .274l-.774.258a1.156 1.156 0 0 0-.732.732l-.258.774a.145.145 0 0 1-.274 0l-.258-.774a1.156 1.156 0 0 0-.732-.732l-.774-.258a.145.145 0 0 1 0-.274l.774-.258c.346-.115.617-.386.732-.732L13.863.1z&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;       &amp;lt;/symbol&amp;gt;       &amp;lt;symbol id=&amp;quot;sun-fill&amp;quot; viewBox=&amp;quot;0 0 16 16&amp;quot;&amp;gt;         &amp;lt;path d=&amp;quot;M8 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z&amp;quot;&amp;gt;&amp;lt;/path&amp;gt;       &amp;lt;/symbol&amp;gt;     &amp;lt;/svg&amp;gt;     &amp;lt;div class=&amp;quot;dropdown position-fixed bottom-0 end-0 mb-3 me-3 bd-mode-toggle&amp;quot;&amp;gt;       &amp;lt;button class=&amp;quot;btn btn-bd-primary py-2 dropdown-toggle d-flex align-items-center&amp;quot; id=&amp;quot;bd-theme&amp;quot; type=&amp;quot;button&amp;quot; aria-expanded=&amp;quot;false&amp;quot; data-bs-toggle=&amp;quot;dropdown&amp;quot; aria-label=&amp;quot;Toggle theme (light)&amp;quot;&amp;gt;         &amp;lt;svg class=&amp;quot;bi my-1 theme-icon-active&amp;quot; width=&amp;quot;1em&amp;quot; height=&amp;quot;1em&amp;quot;&amp;gt;&amp;lt;use href=&amp;quot;#sun-fill&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&amp;lt;/svg&amp;gt;         &amp;lt;span class=&amp;quot;visually-hidden&amp;quot; id=&amp;quot;bd-theme-text&amp;quot;&amp;gt;Toggle theme&amp;lt;/span&amp;gt;       &amp;lt;/button&amp;gt;       &amp;lt;ul class=&amp;quot;dropdown-menu dropdown-menu-end shadow&amp;quot; aria-labelledby=&amp;quot;bd-theme-text&amp;quot;&amp;gt;         &amp;lt;li&amp;gt;           &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;dropdown-item d-flex align-items-center active&amp;quot; data-bs-theme-value=&amp;quot;light&amp;quot; aria-pressed=&amp;quot;true&amp;quot;&amp;gt;             &amp;lt;svg class=&amp;quot;bi me-2 opacity-50&amp;quot; width=&amp;quot;1em&amp;quot; height=&amp;quot;1em&amp;quot;&amp;gt;&amp;lt;use href=&amp;quot;#sun-fill&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&amp;lt;/svg&amp;gt;             Light             &amp;lt;svg class=&amp;quot;bi ms-auto d-none&amp;quot; width=&amp;quot;1em&amp;quot; height=&amp;quot;1em&amp;quot;&amp;gt;&amp;lt;use href=&amp;quot;#check2&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&amp;lt;/svg&amp;gt;           &amp;lt;/button&amp;gt;         &amp;lt;/li&amp;gt;         &amp;lt;li&amp;gt;           &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;dropdown-item d-flex align-items-center&amp;quot; data-bs-theme-value=&amp;quot;dark&amp;quot; aria-pressed=&amp;quot;false&amp;quot;&amp;gt;             &amp;lt;svg class=&amp;quot;bi me-2 opacity-50&amp;quot; width=&amp;quot;1em&amp;quot; height=&amp;quot;1em&amp;quot;&amp;gt;&amp;lt;use href=&amp;quot;#moon-stars-fill&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&amp;lt;/svg&amp;gt;             Dark             &amp;lt;svg class=&amp;quot;bi ms-auto d-none&amp;quot; width=&amp;quot;1em&amp;quot; height=&amp;quot;1em&amp;quot;&amp;gt;&amp;lt;use href=&amp;quot;#check2&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&amp;lt;/svg&amp;gt;           &amp;lt;/button&amp;gt;         &amp;lt;/li&amp;gt;         &amp;lt;li&amp;gt;           &amp;lt;button type=&amp;quot;button&amp;quot; class=&amp;quot;dropdown-item d-flex align-items-center&amp;quot; data-bs-theme-value=&amp;quot;auto&amp;quot; aria-pressed=&amp;quot;false&amp;quot;&amp;gt;             &amp;lt;svg class=&amp;quot;bi me-2 opacity-50&amp;quot; width=&amp;quot;1em&amp;quot; height=&amp;quot;1em&amp;quot;&amp;gt;&amp;lt;use href=&amp;quot;#circle-half&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&amp;lt;/svg&amp;gt;             Auto             &amp;lt;svg class=&amp;quot;bi ms-auto d-none&amp;quot; width=&amp;quot;1em&amp;quot; height=&amp;quot;1em&amp;quot;&amp;gt;&amp;lt;use href=&amp;quot;#check2&amp;quot;&amp;gt;&amp;lt;/use&amp;gt;&amp;lt;/svg&amp;gt;           &amp;lt;/button&amp;gt;         &amp;lt;/li&amp;gt;       &amp;lt;/ul&amp;gt;     &amp;lt;/div&amp;gt;     &amp;lt;div class=&amp;quot;container&amp;quot;&amp;gt;   &amp;lt;main&amp;gt;     &amp;lt;div class=&amp;quot;py-5 text-center&amp;quot;&amp;gt;       &amp;lt;img class=&amp;quot;d-block mx-auto mb-4&amp;quot; src=&amp;quot;https://getbootstrap.com/docs/5.3/assets/brand/bootstrap-logo.svg&amp;quot; alt=&amp;quot;&amp;quot; width=&amp;quot;72&amp;quot; height=&amp;quot;57&amp;quot;&amp;gt;       &amp;lt;h2&amp;gt;Checkout form&amp;lt;/h2&amp;gt;       &amp;lt;p class=&amp;quot;lead&amp;quot;&amp;gt;Below is an example form built entirely with Bootstrap’s form controls. Each required form group has a validation state that can be triggered by attempting to submit the form without completing it.&amp;lt;/p&amp;gt;     &amp;lt;/div&amp;gt;     &amp;lt;div class=&amp;quot;row g-5&amp;quot;&amp;gt;       &amp;lt;div class=&amp;quot;col-md-5 col-lg-4 order-md-last&amp;quot;&amp;gt;         &amp;lt;h4 class=&amp;quot;d-flex justify-content-between align-items-center mb-3&amp;quot;&amp;gt;           &amp;lt;span class=&amp;quot;text-primary&amp;quot;&amp;gt;Your cart&amp;lt;/span&amp;gt;           &amp;lt;span class=&amp;quot;badge bg-primary rounded-pill&amp;quot;&amp;gt;3&amp;lt;/span&amp;gt;         &amp;lt;/h4&amp;gt;         &amp;lt;ul class=&amp;quot;list-group mb-3&amp;quot;&amp;gt;           &amp;lt;li class=&amp;quot;list-group-item d-flex justify-content-between lh-sm&amp;quot;&amp;gt;             &amp;lt;div&amp;gt;               &amp;lt;h6 class=&amp;quot;my-0&amp;quot;&amp;gt;Product name&amp;lt;/h6&amp;gt;               &amp;lt;small class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;Brief description&amp;lt;/small&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;span class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;$12&amp;lt;/span&amp;gt;           &amp;lt;/li&amp;gt;           &amp;lt;li class=&amp;quot;list-group-item d-flex justify-content-between lh-sm&amp;quot;&amp;gt;             &amp;lt;div&amp;gt;               &amp;lt;h6 class=&amp;quot;my-0&amp;quot;&amp;gt;Second product&amp;lt;/h6&amp;gt;               &amp;lt;small class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;Brief description&amp;lt;/small&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;span class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;$8&amp;lt;/span&amp;gt;           &amp;lt;/li&amp;gt;           &amp;lt;li class=&amp;quot;list-group-item d-flex justify-content-between lh-sm&amp;quot;&amp;gt;             &amp;lt;div&amp;gt;               &amp;lt;h6 class=&amp;quot;my-0&amp;quot;&amp;gt;Third item&amp;lt;/h6&amp;gt;               &amp;lt;small class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;Brief description&amp;lt;/small&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;span class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;$5&amp;lt;/span&amp;gt;           &amp;lt;/li&amp;gt;           &amp;lt;li class=&amp;quot;list-group-item d-flex justify-content-between bg-body-tertiary&amp;quot;&amp;gt;             &amp;lt;div class=&amp;quot;text-success&amp;quot;&amp;gt;               &amp;lt;h6 class=&amp;quot;my-0&amp;quot;&amp;gt;Promo code&amp;lt;/h6&amp;gt;               &amp;lt;small&amp;gt;EXAMPLECODE&amp;lt;/small&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;span class=&amp;quot;text-success&amp;quot;&amp;gt;−$5&amp;lt;/span&amp;gt;           &amp;lt;/li&amp;gt;           &amp;lt;li class=&amp;quot;list-group-item d-flex justify-content-between&amp;quot;&amp;gt;             &amp;lt;span&amp;gt;Total (USD)&amp;lt;/span&amp;gt;             &amp;lt;strong&amp;gt;$20&amp;lt;/strong&amp;gt;           &amp;lt;/li&amp;gt;         &amp;lt;/ul&amp;gt;         &amp;lt;form class=&amp;quot;card p-2&amp;quot;&amp;gt;           &amp;lt;div class=&amp;quot;input-group&amp;quot;&amp;gt;             &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; placeholder=&amp;quot;Promo code&amp;quot;&amp;gt;             &amp;lt;button type=&amp;quot;submit&amp;quot; class=&amp;quot;btn btn-secondary&amp;quot;&amp;gt;Redeem&amp;lt;/button&amp;gt;           &amp;lt;/div&amp;gt;         &amp;lt;/form&amp;gt;       &amp;lt;/div&amp;gt;       &amp;lt;div class=&amp;quot;col-md-7 col-lg-8&amp;quot;&amp;gt;         &amp;lt;h4 class=&amp;quot;mb-3&amp;quot;&amp;gt;Billing address&amp;lt;/h4&amp;gt;         &amp;lt;form class=&amp;quot;needs-validation&amp;quot; novalidate=&amp;quot;&amp;quot;&amp;gt;           &amp;lt;div class=&amp;quot;row g-3&amp;quot;&amp;gt;             &amp;lt;div class=&amp;quot;col-sm-6&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;firstName&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;First name&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;firstName&amp;quot; placeholder=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Valid first name is required.               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-sm-6&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;lastName&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Last name&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;lastName&amp;quot; placeholder=&amp;quot;&amp;quot; value=&amp;quot;&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Valid last name is required.               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-12&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;username&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Username&amp;lt;/label&amp;gt;               &amp;lt;div class=&amp;quot;input-group has-validation&amp;quot;&amp;gt;                 &amp;lt;span class=&amp;quot;input-group-text&amp;quot;&amp;gt;@&amp;lt;/span&amp;gt;                 &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;username&amp;quot; placeholder=&amp;quot;Username&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                   Your username is required.                 &amp;lt;/div&amp;gt;               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-12&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;email&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Email &amp;lt;span class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;(Optional)&amp;lt;/span&amp;gt;&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;email&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;email&amp;quot; placeholder=&amp;quot;you@example.com&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Please enter a valid email address for shipping updates.               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-12&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;address&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Address&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;address&amp;quot; placeholder=&amp;quot;1234 Main St&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Please enter your shipping address.               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-12&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;address2&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Address 2 &amp;lt;span class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;(Optional)&amp;lt;/span&amp;gt;&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;address2&amp;quot; placeholder=&amp;quot;Apartment or suite&amp;quot;&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-md-5&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;country&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Country&amp;lt;/label&amp;gt;               &amp;lt;select class=&amp;quot;form-select&amp;quot; id=&amp;quot;country&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;                 &amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Choose...&amp;lt;/option&amp;gt;                 &amp;lt;option&amp;gt;United States&amp;lt;/option&amp;gt;               &amp;lt;/select&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Please select a valid country.               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-md-4&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;state&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;State&amp;lt;/label&amp;gt;               &amp;lt;select class=&amp;quot;form-select&amp;quot; id=&amp;quot;state&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;                 &amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Choose...&amp;lt;/option&amp;gt;                 &amp;lt;option&amp;gt;California&amp;lt;/option&amp;gt;               &amp;lt;/select&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Please provide a valid state.               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-md-3&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;zip&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Zip&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;zip&amp;quot; placeholder=&amp;quot;&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Zip code required.               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;           &amp;lt;/div&amp;gt;           &amp;lt;hr class=&amp;quot;my-4&amp;quot;&amp;gt;           &amp;lt;div class=&amp;quot;form-check&amp;quot;&amp;gt;             &amp;lt;input type=&amp;quot;checkbox&amp;quot; class=&amp;quot;form-check-input&amp;quot; id=&amp;quot;same-address&amp;quot;&amp;gt;             &amp;lt;label class=&amp;quot;form-check-label&amp;quot; for=&amp;quot;same-address&amp;quot;&amp;gt;Shipping address is the same as my billing address&amp;lt;/label&amp;gt;           &amp;lt;/div&amp;gt;           &amp;lt;div class=&amp;quot;form-check&amp;quot;&amp;gt;             &amp;lt;input type=&amp;quot;checkbox&amp;quot; class=&amp;quot;form-check-input&amp;quot; id=&amp;quot;save-info&amp;quot;&amp;gt;             &amp;lt;label class=&amp;quot;form-check-label&amp;quot; for=&amp;quot;save-info&amp;quot;&amp;gt;Save this information for next time&amp;lt;/label&amp;gt;           &amp;lt;/div&amp;gt;           &amp;lt;hr class=&amp;quot;my-4&amp;quot;&amp;gt;           &amp;lt;h4 class=&amp;quot;mb-3&amp;quot;&amp;gt;Payment&amp;lt;/h4&amp;gt;           &amp;lt;div class=&amp;quot;my-3&amp;quot;&amp;gt;             &amp;lt;div class=&amp;quot;form-check&amp;quot;&amp;gt;               &amp;lt;input id=&amp;quot;credit&amp;quot; name=&amp;quot;paymentMethod&amp;quot; type=&amp;quot;radio&amp;quot; class=&amp;quot;form-check-input&amp;quot; checked=&amp;quot;&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;label class=&amp;quot;form-check-label&amp;quot; for=&amp;quot;credit&amp;quot;&amp;gt;Credit card&amp;lt;/label&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;form-check&amp;quot;&amp;gt;               &amp;lt;input id=&amp;quot;debit&amp;quot; name=&amp;quot;paymentMethod&amp;quot; type=&amp;quot;radio&amp;quot; class=&amp;quot;form-check-input&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;label class=&amp;quot;form-check-label&amp;quot; for=&amp;quot;debit&amp;quot;&amp;gt;Debit card&amp;lt;/label&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;form-check&amp;quot;&amp;gt;               &amp;lt;input id=&amp;quot;paypal&amp;quot; name=&amp;quot;paymentMethod&amp;quot; type=&amp;quot;radio&amp;quot; class=&amp;quot;form-check-input&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;label class=&amp;quot;form-check-label&amp;quot; for=&amp;quot;paypal&amp;quot;&amp;gt;PayPal&amp;lt;/label&amp;gt;             &amp;lt;/div&amp;gt;           &amp;lt;/div&amp;gt;           &amp;lt;div class=&amp;quot;row gy-3&amp;quot;&amp;gt;             &amp;lt;div class=&amp;quot;col-md-6&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;cc-name&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Name on card&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;cc-name&amp;quot; placeholder=&amp;quot;&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;small class=&amp;quot;text-body-secondary&amp;quot;&amp;gt;Full name as displayed on card&amp;lt;/small&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Name on card is required               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-md-6&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;cc-number&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Credit card number&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;cc-number&amp;quot; placeholder=&amp;quot;&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Credit card number is required               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-md-3&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;cc-expiration&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;Expiration&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;cc-expiration&amp;quot; placeholder=&amp;quot;&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Expiration date required               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;             &amp;lt;div class=&amp;quot;col-md-3&amp;quot;&amp;gt;               &amp;lt;label for=&amp;quot;cc-cvv&amp;quot; class=&amp;quot;form-label&amp;quot;&amp;gt;CVV&amp;lt;/label&amp;gt;               &amp;lt;input type=&amp;quot;text&amp;quot; class=&amp;quot;form-control&amp;quot; id=&amp;quot;cc-cvv&amp;quot; placeholder=&amp;quot;&amp;quot; required=&amp;quot;&amp;quot;&amp;gt;               &amp;lt;div class=&amp;quot;invalid-feedback&amp;quot;&amp;gt;                 Security code required               &amp;lt;/div&amp;gt;             &amp;lt;/div&amp;gt;           &amp;lt;/div&amp;gt;           &amp;lt;hr class=&amp;quot;my-4&amp;quot;&amp;gt;           &amp;lt;button class=&amp;quot;w-100 btn btn-primary btn-lg&amp;quot; type=&amp;quot;submit&amp;quot;&amp;gt;Continue to checkout&amp;lt;/button&amp;gt;         &amp;lt;/form&amp;gt;       &amp;lt;/div&amp;gt;     &amp;lt;/div&amp;gt;   &amp;lt;/main&amp;gt;   &amp;lt;footer class=&amp;quot;my-5 pt-5 text-body-secondary text-center text-small&amp;quot;&amp;gt;     &amp;lt;p class=&amp;quot;mb-1&amp;quot;&amp;gt;© 2017–2024 Company Name&amp;lt;/p&amp;gt;     &amp;lt;ul class=&amp;quot;list-inline&amp;quot;&amp;gt;       &amp;lt;li class=&amp;quot;list-inline-item&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Privacy&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;       &amp;lt;li class=&amp;quot;list-inline-item&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Terms&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;       &amp;lt;li class=&amp;quot;list-inline-item&amp;quot;&amp;gt;&amp;lt;a href=&amp;quot;#&amp;quot;&amp;gt;Support&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;     &amp;lt;/ul&amp;gt;   &amp;lt;/footer&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;script src=&amp;quot;https://getbootstrap.com/docs/5.3/dist/js/bootstrap.bundle.min.js&amp;quot; integrity=&amp;quot;sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz&amp;quot; crossorigin=&amp;quot;anonymous&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;script src=&amp;quot;https://getbootstrap.com/docs/5.3/examples/checkout/checkout.css&amp;quot;&amp;gt;&amp;lt;/script&amp;gt; &amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;</code></pre>

页面列表

ITEM_HTML