2025-04-15 02:26:20 +08:00
<!DOCTYPE html> < html lang = "en" data-bs-theme = "auto" > < head > < meta charset = "utf-8" > < meta name = "viewport" content = "width=device-width, initial-scale=1" > < meta name = "description" content = "" > < meta name = "author" content = "Mark Otto, Jacob Thornton, and Bootstrap contributors" > < meta name = "generator" content = "Astro v5.6.1" > < title > Product example · Bootstrap v5.3< / title > < link rel = "canonical" href = "https://getbootstrap.com/docs/5.3/examples/product/" > < script src = "/docs/5.3/assets/js/color-modes.js" > < / script > < link rel = "stylesheet" href = "https://cdn.jsdelivr.net/npm/@docsearch/css@3" > < link href = "/docs/5.3/dist/css/bootstrap.min.css" rel = "stylesheet" integrity = "sha384-SgOJa3DmI69IUzQ2PVdRZhwQ+dy64/BUtbMJw1MZ8t5HZApcHrRKUc4W0kG879m7" > < link rel = "apple-touch-icon" href = "/docs/5.3/assets/img/favicons/apple-touch-icon.png" sizes = "180x180" > < link rel = "icon" href = "/docs/5.3/assets/img/favicons/favicon-32x32.png" sizes = "32x32" type = "image/png" > < link rel = "icon" href = "/docs/5.3/assets/img/favicons/favicon-16x16.png" sizes = "16x16" type = "image/png" > < link rel = "manifest" href = "/docs/5.3/assets/img/favicons/manifest.json" > < link rel = "mask-icon" href = "/docs/5.3/assets/img/favicons/safari-pinned-tab.svg" color = "#712cf9" > < link rel = "icon" href = "/docs/5.3/assets/img/favicons/favicon.ico" > < meta name = "theme-color" content = "#712cf9" > < link href = "product.css" rel = "stylesheet" > < style > . b d - p l a c e h o l d e r - i m g { f o n t - s i z e : 1 . 1 2 5 r e m ; t e x t - a n c h o r : m i d d l e ; - w e b k i t - u s e r - s e l e c t : n o n e ; - m o z - u s e r - s e l e c t : n o n e ; u s e r - s e l e c t : n o n e } @ m e d i a ( m i n - w i d t h : 7 6 8 p x ) { . b d - p l a c e h o l d e r - i m g - l g { f o n t - s i z e : 3 . 5 r e m } } . b - e x a m p l e - d i v i d e r { w i d t h : 1 0 0 % ; h e i g h t : 3 r e m ; b a c k g r o u n d - c o l o r : # 0 0 0 0 0 0 1 a ; b o r d e r : s o l i d r g b a ( 0 , 0 , 0 , . 1 5 ) ; b o r d e r - w i d t h : 1 p x 0 ; b o x - s h a d o w : i n s e t 0 . 5 e m 1 . 5 e m # 0 0 0 0 0 0 1 a , i n s e t 0 . 1 2 5 e m . 5 e m # 0 0 0 0 0 0 2 6 } . b - e x a m p l e - v r { f l e x - s h r i n k : 0 ; w i d t h : 1 . 5 r e m ; h e i g h t : 1 0 0 v h } . b i { v e r t i c a l - a l i g n : - . 1 2 5 e m ; f i l l : c u r r e n t C o l o r } . n a v - s c r o l l e r { p o s i t i o n : r e l a t i v e ; z - i n d e x : 2 ; h e i g h t : 2 . 7 5 r e m ; o v e r f l o w - y : h i d d e n } . n a v - s c r o l l e r . n a v { d i s p l a y : f l e x ; f l e x - w r a p : n o w r a p ; p a d d i n g - b o t t o m : 1 r e m ; m a r g i n - t o p : - 1 p x ; o v e r f l o w - x : a u t o ; t e x t - a l i g n : c e n t e r ; w h i t e - s p a c e : n o w r a p ; - w e b k i t - o v e r f l o w - s c r o l l i n g : t o u c h } . b t n - b d - p r i m a r y { - - b d - v i o l e t - b g : # 7 1 2 c f 9 ; - - b d - v i o l e t - r g b : 1 1 2 . 5 2 0 7 1 8 , 4 4 . 0 6 2 1 5 4 , 2 4 9 . 4 3 7 8 4 6 ; - - b s - b t n - f o n t - w e i g h t : 6 0 0 ; - - b s - b t n - c o l o r : v a r ( - - b s - w h i t e ) ; - - b s - b t n - b g : v a r ( - - b d - v i o l e t - b g ) ; - - b s - b t n - b o r d e r - c o l o r : v a r ( - - b d - v i o l e t - b g ) ; - - b s - b t n - h o v e r - c o l o r : v a r ( - - b s - w h i t e ) ; - - b s - b t n - h o v e r - b g : # 6 5 2 8 e 0 ; - - b s - b t n - h o v e r - b o r d e r - c o l o r : # 6 5 2 8 e 0 ; - - b s - b t n - f o c u s - s h a d o w - r g b : v a r ( - - b d - v i o l e t - r g b ) ; - - b s - b t n - a c t i v e - c o l o r : v a r ( - - b s - b t n - h o v e r - c o l o r ) ; - - b s - b t n - a c t i v e - b g : # 5 a 2 3 c 8 ; - - b s - b t n - a c t i v e - b o r d e r - c o l o r : # 5 a 2 3 c 8 } . b d - m o d e - t o g g l e { z - i n d e x : 1 5 0 0 } . b d - m o d e - t o g g l e . b i { w i d t h : 1 e m ; h e i g h t : 1 e m } . b d - m o d e - t o g g l e . d r o p d o w n - m e n u . a c t i v e . b i { d i s p l a y : b l o c k ! i m p o r t a n t }
< / style > < / head > < body > < svg xmlns = "http://www.w3.org/2000/svg" class = "d-none" > < symbol id = "check2" viewBox = "0 0 16 16" > < path d = "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" > < / path > < / symbol > < symbol id = "circle-half" viewBox = "0 0 16 16" > < path d = "M8 15A7 7 0 1 0 8 1v14zm0 1A8 8 0 1 1 8 0a8 8 0 0 1 0 16z" > < / path > < / symbol > < symbol id = "moon-stars-fill" viewBox = "0 0 16 16" > < path d = "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" > < / path > < path d = "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" > < / path > < / symbol > < symbol id = "sun-fill" viewBox = "0 0 16 16" > < path d = "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" > < / path > < / symbol > < / svg > < div class = "dropdown position-fixed bottom-0 end-0 mb-3 me-3 bd-mode-toggle" > < button class = "btn btn-bd-primary py-2 dropdown-toggle d-flex align-items-center" id = "bd-theme" type = "button" aria-expanded = "false" data-bs-toggle = "dropdown" aria-label = "Toggle theme (auto)" > < svg class = "bi my-1 theme-icon-active" aria-hidden = "true" > < use href = "#circle-half" > < / use > < / svg > < span class = "visually-hidden" id = "bd-theme-text" > Toggle theme< / span > < / button > < ul class = "dropdown-menu dropdown-menu-end shadow" aria-labelledby = "bd-theme-text" > < li > < button type = "button" class = "dropdown-item d-flex align-items-center" data-bs-theme-value = "light" aria-pressed = "false" > < svg class = "bi me-2 opacity-50" aria-hidden = "true" > < use href = "#sun-fill" > < / use > < / svg >
Light
< svg class = "bi ms-auto d-none" aria-hidden = "true" > < use href = "#check2" > < / use > < / svg > < / button > < / li > < li > < button type = "button" class = "dropdown-item d-flex align-items-center" data-bs-theme-value = "dark" aria-pressed = "false" > < svg class = "bi me-2 opacity-50" aria-hidden = "true" > < use href = "#moon-stars-fill" > < / use > < / svg >
Dark
< svg class = "bi ms-auto d-none" aria-hidden = "true" > < use href = "#check2" > < / use > < / svg > < / button > < / li > < li > < button type = "button" class = "dropdown-item d-flex align-items-center active" data-bs-theme-value = "auto" aria-pressed = "true" > < svg class = "bi me-2 opacity-50" aria-hidden = "true" > < use href = "#circle-half" > < / use > < / svg >
Auto
< svg class = "bi ms-auto d-none" aria-hidden = "true" > < use href = "#check2" > < / use > < / svg > < / button > < / li > < / ul > < / div > < svg xmlns = "http://www.w3.org/2000/svg" class = "d-none" > < symbol id = "aperture" fill = "none" stroke = "currentColor" stroke-linecap = "round" stroke-linejoin = "round" stroke-width = "2" viewBox = "0 0 24 24" > < circle cx = "12" cy = "12" r = "10" > < / circle > < path d = "M14.31 8l5.74 9.94M9.69 8h11.48M7.38 12l5.74-9.94M9.69 16L3.95 6.06M14.31 16H2.83m13.79-4l-5.74 9.94" > < / path > < / symbol > < symbol id = "cart" viewBox = "0 0 16 16" > < path d = "M0 1.5A.5.5 0 0 1 .5 1H2a.5.5 0 0 1 .485.379L2.89 3H14.5a.5.5 0 0 1 .49.598l-1 5a.5.5 0 0 1-.465.401l-9.397.472L4.415 11H13a.5.5 0 0 1 0 1H4a.5.5 0 0 1-.491-.408L2.01 3.607 1.61 2H.5a.5.5 0 0 1-.5-.5zM3.102 4l.84 4.479 9.144-.459L13.89 4H3.102zM5 12a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm7 0a2 2 0 1 0 0 4 2 2 0 0 0 0-4zm-7 1a1 1 0 1 1 0 2 1 1 0 0 1 0-2zm7 0a1 1 0 1 1 0 2 1 1 0 0 1 0-2z" > < / path > < / symbol > < symbol id = "chevron-right" viewBox = "0 0 16 16" > < path fill-rule = "evenodd" d = "M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z" > < / path > < / symbol > < / svg > < nav class = "navbar navbar-expand-md bg-dark sticky-top border-bottom" data-bs-theme = "dark" > < div class = "container" > < a class = "navbar-brand d-md-none" href = "#" > < svg class = "bi" width = "24" height = "24" aria-hidden = "true" > < use xlink:href = "#aperture" > < / use > < / svg >
Aperture
< / a > < button class = "navbar-toggler" type = "button" data-bs-toggle = "offcanvas" data-bs-target = "#offcanvas" aria-controls = "offcanvas" aria-label = "Toggle navigation" > < span class = "navbar-toggler-icon" > < / span > < / button > < div class = "offcanvas offcanvas-end" tabindex = "-1" id = "offcanvas" aria-labelledby = "offcanvasLabel" > < div class = "offcanvas-header" > < h5 class = "offcanvas-title" id = "offcanvasLabel" > Aperture< / h5 > < button type = "button" class = "btn-close" data-bs-dismiss = "offcanvas" aria-label = "Close" > < / button > < / div > < div class = "offcanvas-body" > < ul class = "navbar-nav flex-grow-1 justify-content-between" > < li class = "nav-item" > < a class = "nav-link" href = "#" aria-label = "Aperture" > < svg class = "bi" width = "24" height = "24" aria-hidden = "true" > < use xlink:href = "#aperture" > < / use > < / svg > < / a > < / li > < li class = "nav-item" > < a class = "nav-link" href = "#" > Tour< / a > < / li > < li class = "nav-item" > < a class = "nav-link" href = "#" > Product< / a > < / li > < li class = "nav-item" > < a class = "nav-link" href = "#" > Features< / a > < / li > < li class = "nav-item" > < a class = "nav-link" href = "#" > Enterprise< / a > < / li > < li class = "nav-item" > < a class = "nav-link" href = "#" > Support< / a > < / li > < li class = "nav-item" > < a class = "nav-link" href = "#" > Pricing< / a > < / li > < li class = "nav-item" > < a class = "nav-link" href = "#" aria-label = "Cart" > < svg class = "bi" width = "24" height = "24" aria-hidden = "true" > < use xlink:href = "#cart" > < / use > < / svg > < / a > < / li > < / ul > < / div > < / div > < / div > < / nav > < main > < div class = "position-relative overflow-hidden p-3 p-md-5 m-md-3 text-center bg-body-tertiary" > < div class = "col-md-6 p-lg-5 mx-auto my-5" > < h1 class = "display-3 fw-bold" > Designed for engineers< / h1 > < h3 class = "fw-normal text-muted mb-3" > Build anything you want with Aperture< / h3 > < div class = "d-flex gap-3 justify-content-center lead fw-normal" > < a class = "icon-link" href = "#" >
Learn more
< svg class = "bi" aria-hidden = "true" > < use xlink:href = "#chevron-right" > < / use > < / svg > < / a > < a class = "icon-link" href = "#" >
Buy
< svg class = "bi" aria-hidden = "true" > < use xlink:href = "#chevron-right" > < / use > < / svg > < / a > < / div > < / div > < div class = "product-device shadow-sm d-none d-md-block" > < / div > < div class = "product-device product-device-2 shadow-sm d-none d-md-block" > < / div > < / div > < div class = "d-md-flex flex-md-equal w-100 my-md-3 ps-md-3" > < div class = "text-bg-dark me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden" > < div class = "my-3 py-3" > < h2 class = "display-5" > Another headline< / h2 > < p class = "lead" > And an even wittier subheading.< / p > < / div > < div class = "bg-body-tertiary shadow-sm mx-auto" style = "width: 80%; height: 300px; border-radius: 21px 21px 0 0;" > < / div > < / div > < div class = "bg-body-tertiary me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden" > < div class = "my-3 p-3" > < h2 class = "display-5" > Another headline< / h2 > < p class = "lead" > And an even wittier subheading.< / p > < / div > < div class = "bg-dark shadow-sm mx-auto" style = "width: 80%; height: 300px; border-radius: 21px 21px 0 0;" > < / div > < / div > < / div > < div class = "d-md-flex flex-md-equal w-100 my-md-3 ps-md-3" > < div class = "bg-body-tertiary me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden" > < div class = "my-3 p-3" > < h2 class = "display-5" > Another headline< / h2 > < p class = "lead" > And an even wittier subheading.< / p > < / div > < div class = "bg-dark shadow-sm mx-auto" style = "width: 80%; height: 300px; border-radius: 21px 21px 0 0;" > < / div > < / div > < div class = "text-bg-primary me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden" > < div class = "my-3 py-3" > < h2 class = "display-5" > Another headline< / h2 > < p class = "lead" > And an even wittier subheading.< / p > < / div > < div class = "bg-body-tertiary shadow-sm mx-auto" style = "width: 80%; height: 300px; border-radius: 21px 21px 0 0;" > < / div > < / div > < / div > < div class = "d-md-flex flex-md-equal w-100 my-md-3 ps-md-3" > < div class = "bg-body-tertiary me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden" > < div class = "my-3 p-3" > < h2 class = "display-5" > Another headline< / h2 > < p class = "lead" > And an even wittier subheading.< / p > < / div > < div class = "bg-body shadow-sm mx-auto" style = "width: 80%; height: 300px; border-radius: 21px 21px 0 0;" > < / div > < / div > < div class = "bg-body-tertiary me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden" > < div class = "my-3 py-3" > < h2 class = "display-5" > Another headline< / h2 > < p class = "lead" > And an even wittier subheading.< / p > < / div > < div class = "bg-body shadow-sm mx-auto" style = "width: 80%; height: 300px; border-radius: 21px 21px 0 0;" > < / div > < / div > < / div > < div class = "d-md-flex flex-md-equal w-100 my-md-3 ps-md-3" > < div class = "bg-body-tertiary me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden" > < div class = "my-3 p-3" > < h2 class = "display-5" > Another headline< / h2 > < p class = "lead" > And an even wittier subheading.< / p > < / div > < div class = "bg-body shadow-sm mx-auto" style = "width: 80%; height: 300px; border-radius: 21px 21px 0 0;" > < / div > < / div > < div class = "bg-body-tertiary me-md-3 pt-3 px-3 pt-md-5 px-md-5 text-center overflow-hidden" > < div class = "my-3 py-3" > < h2 class = "display-5" > Another headline< / h2 > < p class = "lead" > And an even wittier subheading.< / p > < / div > < div class = "bg-body shadow-sm mx-auto" style = "width: 80%; height: 300px; border-radius: 21px 21px 0 0;" > < / div > < / div > < / div > < / main > < footer class = "container py-5" > < div class = "row" > < div class = "col-12 col-md" > < svg xmlns = "http://www.w3.org/2000/svg" width = "24" height = "24" fill = "none" stroke = "currentColor" stroke-linecap = "round" stroke-linejoin = "round" stroke-width = "2" class = "d-block mb-2" role = "img" viewBox = "0 0 24 24" > < title > Product< / title > < circle cx = "12" cy = "12" r = "10" > < / circle > < path d = "M14.31 8l5.74 9.94M9.69 8h11.48M7.38 12l5.74-9.94M9.69 16L3.95 6.06M14.31 16H2.83m13.79-4l-5.74 9.94" > < / path > < / svg > < small class = "d-block mb-3 text-body-secondary" > © 2017– 2025< / small > < / div > < div class = "col-6 col-md" > < h5 > Features< / h5 > < ul class = "list-unstyled text-small" > < li > < a class = "link-secondary text-decoration-none" href = "#" > Cool stuff< / a > < / li > < li > < a class = "link-secondary text-decoration-none" href = "#" > Random feature< / a > < / li > < li > < a class = "link-secondary text-decoration-none