flex 布局 justify-content:center; align:items; mobile 解决老版box 兼容性问题

本文探讨了在移动端开发中遇到的Flex布局在华为手机UC浏览器中的兼容性问题,并提供了有效的解决方案。特别介绍了如何通过设置CSS属性实现内容的垂直水平居中,为应用导航、左图右文等布局提供了便利。
最近在做项目开发时用到 , flex 布局 ,在华为手机的uc 浏览器中出现兼容性问题 ,解决方案如下,并提供
一种垂直水平居中的方式,希望能给各位在移动端开发时带来便利,应用导航,左图右文

父容器啊设置属性:

    -webkit-box-align: center;
            align-items: center;
            -webkit-box-pack: center;
            justify-content: center;
            background: red;
            /*--------此处让ul包裹内容,给上下padding 值 要比给定值高度更好 --*/
            padding: 10px 0;
            -webkit-box-flex: 1;
            display: -webkit-flex;
            display: flex;

子元素属性如下


            -webkit-flex:1;
            -webkit-box-flex: 1;

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flexdemo</title>

    <style type="text/css">
        .container{
            -webkit-box-align: center;
            align-items: center;
            -webkit-box-pack: center;
            justify-content: center;
            background: red;
            /*---------------------------------此处让ul包裹内容,给上下padding 值 要比给定值高度更好 ----------------------------------------*/
            padding: 10px 0;
            -webkit-box-flex: 1;
            display: -webkit-flex;
            display: flex;
        }
        li{
            list-style: none;
            -webkit-flex:1;
            -webkit-box-flex: 1;
            flex: 1;
            border-right: 1px solid gray;
            text-align: center;
        }

    </style>

</head>

<!-- box-sizing:border -->
<body>
    <ul class="container">
        <li>text1</li>
        <li>text2</li>
        <li>text3</li>
        <li>text4</li>
    </ul>   
</body>
</html>

效果 :
这里写图片描述

/*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr<?php echo -moz-box-sizing:content-box;box-sizing:content-box;height:0;?>pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]<?php echo -webkit-appearance:button;cursor:pointer;?>button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]<?php echo -webkit-appearance:textfield;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;?>input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration<?php echo -webkit-appearance:none;?>fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*,*::before,*::after{box-sizing:border-box}html{height:100%;width:100%}html<?php echo -moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;background-color:?>html.is-leadbox{background-color:transparent}body{min-height:100%}h1,h2,h3,h4,h1.jumbo{margin:0}p{margin:0}a{font-size:inherit}img{max-width:100%;width:100%}section{position:relative;transition:opacity .5s ease-in,min-height .5s ease-in,height .5s ease-in}.container{width:100%}.row-compose,.widget-row,.layout,.inner-column,.column{position:relative}.site-header .layout{align-items:center;min-height:64px}.column{display:flex;flex-direction:column}.inner-column{flex:1 1 auto}.inner-column:not(.area-placeholder){min-height:1px}.widget{word-wrap:break-word;padding:1vw}.leadbox .widget{padding:1vw}.bar .widget{padding:1vw}.has-background-image{background-position:center center;background-repeat:no-repeat}.has-background-size-cover{background-size:cover}.has-background-size-center{background-size:contain}.has-background-size-repeat{background-repeat:repeat}.flex-display{display:flex}.flex-direction-column{flex-direction:column}.flex-direction-column .container{min-height:1px}.flex-direction-row{flex-direction:row}.flex-justify-flex-start{justify-content:flex-start}.flex-justify-center{justify-content:center}.flex-justify-flex-end{justify-content:flex-end}[class*=section-arrow--]::before{border:solid transparent;border-color:rgba(0,0,0,0);content:"";height:0;pointer-events:none;position:absolute;width:0;z-index:1}.section-arrow--top::before{border-bottom-color:inherit;border-width:0 30px 18px;bottom:100%;left:50%;transform:translateX(-50%)}.section-arrow--bottom::before{border-top-color:inherit;border-width:18px 30px 0;left:50%;top:100%;transform:translateX(-50%)}.section-arrow--left::before{border-bottom-color:inherit;border-width:0 30px 24px;bottom:100%;right:50%;transform:translateX(50%)}@media(min-width: 48em){.section-arrow--left::before{border-bottom-color:transparent;border-right-color:inherit;border-width:30px 24px 30px 0;bottom:0;right:100%;top:50%;transform:translateY(-50%) translateX(0)}}.section-arrow--right::before{border-top-color:inherit;border-width:24px 30px 0;left:50%;top:100%;transform:translateX(-50%)}@media(min-width: 48em){.section-arrow--right::before{border-left-color:inherit;border-top-color:transparent;border-width:30px 0 30px 24px;left:100%;top:50%;transform:translateY(-50%) translateX(0)}}.page .is-delayed{min-height:0;height:0;opacity:0;overflow:hidden;padding-bottom:0;padding-top:0}.is-visible{height:auto;opacity:1;overflow:visible}.lp-text a,.lp-text-react a,.lp-headline a{color:inherit;text-decoration:underline}.lp-text a>span,.lp-text-react a>span,.lp-headline a>span{color:inherit;text-decoration:underline}.lp-text a:hover,.lp-text a:active,.lp-text-react a:hover,.lp-text-react a:active,.lp-headline a:hover,.lp-headline a:active{text-decoration:none}.lp-text a:hover>span,.lp-text a:active>span,.lp-text-react a:hover>span,.lp-text-react a:active>span,.lp-headline a:hover>span,.lp-headline a:active>span{text-decoration:none}.widget-widget>iframe{max-width:100%;width:100%}.inner-composite{display:flex}.page grammarly-btn{display:none}.page .lp-form__input+span,.page .lp-form-react__input+span{display:none !important}@media(max-width: 480px){.hidden-mobile{display:none !important}}@media(min-width: 481px)and (max-width: 768px){.hidden-tablet{display:none !important}}@media(min-width: 769px){.hidden-desktop{display:none !important}}.hide-section{display:none}form .widget-column{padding-top:1vw;padding-bottom:1vw}form .widget-column .widget{padding-bottom:0;padding-top:0}form .widget-column .widget .lp-button-react-wrapper{margin-top:12px}form[data-form-id] button:disabled{opacity:.5;pointer-events:none;transition:opacity 7.5s ease}@keyframes animation-circular-rotate{0%{transform-origin:50% 50%}100%{transform:rotate(360deg)}}@-webkit-keyframes animation-circular-rotate{0%{transform-origin:50% 50%}100%{transform:rotate(360deg)}}@-webkit-keyframes animation-circular-progress{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px}}@keyframes animation-circular-progress{0%{stroke-dasharray:1px,200px;stroke-dashoffset:0px}50%{stroke-dasharray:100px,200px;stroke-dashoffset:-15px}100%{stroke-dasharray:100px,200px;stroke-dashoffset:-125px}}.container{margin-left:auto;margin-right:auto;max-width:1140px}.container--fluid{max-width:none}.flex{display:flex;flex-direction:row;flex-wrap:wrap;margin-left:0;margin-right:0;max-width:100%}[class*=flex__]{flex:0 0 auto;min-height:1px;padding-left:0;padding-right:0}.flex--12 .flex__item--xs-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--xs-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--xs-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--xs-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--xs-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--xs-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--xs-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--xs-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--xs-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--xs-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--xs-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--xs-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--xs-1{margin-left:8.3333333333%}.flex--12 .flex__offset--xs-2{margin-left:16.6666666667%}.flex--12 .flex__offset--xs-3{margin-left:25%}.flex--12 .flex__offset--xs-4{margin-left:33.3333333333%}.flex--12 .flex__offset--xs-5{margin-left:41.6666666667%}.flex--12 .flex__offset--xs-6{margin-left:50%}.flex--12 .flex__offset--xs-7{margin-left:58.3333333333%}.flex--12 .flex__offset--xs-8{margin-left:66.6666666667%}.flex--12 .flex__offset--xs-9{margin-left:75%}.flex--12 .flex__offset--xs-10{margin-left:83.3333333333%}.flex--12 .flex__offset--xs-11{margin-left:91.6666666667%}.flex--10 .flex__item--xs-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--xs-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--xs-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--xs-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--xs-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--xs-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--xs-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--xs-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--xs-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--xs-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--xs-1{margin-left:10%}.flex--10 .flex__offset--xs-2{margin-left:20%}.flex--10 .flex__offset--xs-3{margin-left:30%}.flex--10 .flex__offset--xs-4{margin-left:40%}.flex--10 .flex__offset--xs-5{margin-left:50%}.flex--10 .flex__offset--xs-6{margin-left:60%}.flex--10 .flex__offset--xs-7{margin-left:70%}.flex--10 .flex__offset--xs-8{margin-left:80%}.flex--10 .flex__offset--xs-9{margin-left:90%}.flex--xs-start{justify-content:flex-start}.flex--xs-center{justify-content:center}.flex--xs-end{justify-content:flex-end}.flex--xs-around{justify-content:space-around}.flex--xs-between{justify-content:space-between}.flex--xs-top{align-items:flex-start}.flex--xs-middle{align-items:center}.flex--xs-bottom{align-items:flex-end}.flex--xs-first{order:-1}.flex--xs-last{order:1}.flex__item--xs-auto{flex:1 1 auto}.flex__item--xs-grow{flex-grow:1}.flex__item--xs-no-grow{flex-grow:0}.flex__item--xs-shrink{flex-shrink:1}.flex__item--xs-no-shrink{flex-shrink:0}.flex__item--xs-none{flex:none}.flex--xs-inline-flex{display:inline-flex}.flex--xs-flex-nowrap{flex-wrap:nowrap}.flex--xs-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--xs-horizontal-rev{flex-direction:column-reverse}.flex--xs-vertical{flex-direction:column}.flex--xs-vertical-rev{flex-direction:row-reverse}@media(min-width: 480px){.flex--12 .flex__item--sm-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--sm-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--sm-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--sm-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--sm-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--sm-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--sm-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--sm-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--sm-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--sm-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--sm-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--sm-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--sm-1{margin-left:8.3333333333%}.flex--12 .flex__offset--sm-2{margin-left:16.6666666667%}.flex--12 .flex__offset--sm-3{margin-left:25%}.flex--12 .flex__offset--sm-4{margin-left:33.3333333333%}.flex--12 .flex__offset--sm-5{margin-left:41.6666666667%}.flex--12 .flex__offset--sm-6{margin-left:50%}.flex--12 .flex__offset--sm-7{margin-left:58.3333333333%}.flex--12 .flex__offset--sm-8{margin-left:66.6666666667%}.flex--12 .flex__offset--sm-9{margin-left:75%}.flex--12 .flex__offset--sm-10{margin-left:83.3333333333%}.flex--12 .flex__offset--sm-11{margin-left:91.6666666667%}.flex--10 .flex__item--sm-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--sm-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--sm-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--sm-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--sm-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--sm-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--sm-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--sm-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--sm-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--sm-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--sm-1{margin-left:10%}.flex--10 .flex__offset--sm-2{margin-left:20%}.flex--10 .flex__offset--sm-3{margin-left:30%}.flex--10 .flex__offset--sm-4{margin-left:40%}.flex--10 .flex__offset--sm-5{margin-left:50%}.flex--10 .flex__offset--sm-6{margin-left:60%}.flex--10 .flex__offset--sm-7{margin-left:70%}.flex--10 .flex__offset--sm-8{margin-left:80%}.flex--10 .flex__offset--sm-9{margin-left:90%}.flex--sm-start{justify-content:flex-start}.flex--sm-center{justify-content:center}.flex--sm-end{justify-content:flex-end}.flex--sm-around{justify-content:space-around}.flex--sm-between{justify-content:space-between}.flex--sm-top{align-items:flex-start}.flex--sm-middle{align-items:center}.flex--sm-bottom{align-items:flex-end}.flex--sm-first{order:-1}.flex--sm-last{order:1}.flex__item--sm-auto{flex:1 1 auto}.flex__item--sm-grow{flex-grow:1}.flex__item--sm-no-grow{flex-grow:0}.flex__item--sm-shrink{flex-shrink:1}.flex__item--sm-no-shrink{flex-shrink:0}.flex__item--sm-none{flex:none}.flex--sm-inline-flex{display:inline-flex}.flex--sm-flex-nowrap{flex-wrap:nowrap}.flex--sm-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--sm-horizontal-rev{flex-direction:column-reverse}.flex--sm-vertical{flex-direction:column}.flex--sm-vertical-rev{flex-direction:row-reverse}}@media(min-width: 768px){.flex--12 .flex__item--md-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--md-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--md-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--md-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--md-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--md-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--md-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--md-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--md-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--md-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--md-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--md-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--md-1{margin-left:8.3333333333%}.flex--12 .flex__offset--md-2{margin-left:16.6666666667%}.flex--12 .flex__offset--md-3{margin-left:25%}.flex--12 .flex__offset--md-4{margin-left:33.3333333333%}.flex--12 .flex__offset--md-5{margin-left:41.6666666667%}.flex--12 .flex__offset--md-6{margin-left:50%}.flex--12 .flex__offset--md-7{margin-left:58.3333333333%}.flex--12 .flex__offset--md-8{margin-left:66.6666666667%}.flex--12 .flex__offset--md-9{margin-left:75%}.flex--12 .flex__offset--md-10{margin-left:83.3333333333%}.flex--12 .flex__offset--md-11{margin-left:91.6666666667%}.flex--10 .flex__item--md-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--md-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--md-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--md-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--md-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--md-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--md-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--md-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--md-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--md-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--md-1{margin-left:10%}.flex--10 .flex__offset--md-2{margin-left:20%}.flex--10 .flex__offset--md-3{margin-left:30%}.flex--10 .flex__offset--md-4{margin-left:40%}.flex--10 .flex__offset--md-5{margin-left:50%}.flex--10 .flex__offset--md-6{margin-left:60%}.flex--10 .flex__offset--md-7{margin-left:70%}.flex--10 .flex__offset--md-8{margin-left:80%}.flex--10 .flex__offset--md-9{margin-left:90%}.flex--md-start{justify-content:flex-start}.flex--md-center{justify-content:center}.flex--md-end{justify-content:flex-end}.flex--md-around{justify-content:space-around}.flex--md-between{justify-content:space-between}.flex--md-top{align-items:flex-start}.flex--md-middle{align-items:center}.flex--md-bottom{align-items:flex-end}.flex--md-first{order:-1}.flex--md-last{order:1}.flex__item--md-auto{flex:1 1 auto}.flex__item--md-grow{flex-grow:1}.flex__item--md-no-grow{flex-grow:0}.flex__item--md-shrink{flex-shrink:1}.flex__item--md-no-shrink{flex-shrink:0}.flex__item--md-none{flex:none}.flex--md-inline-flex{display:inline-flex}.flex--md-flex-nowrap{flex-wrap:nowrap}.flex--md-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--md-horizontal-rev{flex-direction:column-reverse}.flex--md-vertical{flex-direction:column}.flex--md-vertical-rev{flex-direction:row-reverse}}@media(min-width: 1024px){.flex--12 .flex__item--lg-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--lg-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--lg-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--lg-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--lg-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--lg-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--lg-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--lg-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--lg-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--lg-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--lg-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--lg-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--lg-1{margin-left:8.3333333333%}.flex--12 .flex__offset--lg-2{margin-left:16.6666666667%}.flex--12 .flex__offset--lg-3{margin-left:25%}.flex--12 .flex__offset--lg-4{margin-left:33.3333333333%}.flex--12 .flex__offset--lg-5{margin-left:41.6666666667%}.flex--12 .flex__offset--lg-6{margin-left:50%}.flex--12 .flex__offset--lg-7{margin-left:58.3333333333%}.flex--12 .flex__offset--lg-8{margin-left:66.6666666667%}.flex--12 .flex__offset--lg-9{margin-left:75%}.flex--12 .flex__offset--lg-10{margin-left:83.3333333333%}.flex--12 .flex__offset--lg-11{margin-left:91.6666666667%}.flex--10 .flex__item--lg-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--lg-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--lg-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--lg-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--lg-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--lg-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--lg-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--lg-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--lg-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--lg-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--lg-1{margin-left:10%}.flex--10 .flex__offset--lg-2{margin-left:20%}.flex--10 .flex__offset--lg-3{margin-left:30%}.flex--10 .flex__offset--lg-4{margin-left:40%}.flex--10 .flex__offset--lg-5{margin-left:50%}.flex--10 .flex__offset--lg-6{margin-left:60%}.flex--10 .flex__offset--lg-7{margin-left:70%}.flex--10 .flex__offset--lg-8{margin-left:80%}.flex--10 .flex__offset--lg-9{margin-left:90%}.flex--lg-start{justify-content:flex-start}.flex--lg-center{justify-content:center}.flex--lg-end{justify-content:flex-end}.flex--lg-around{justify-content:space-around}.flex--lg-between{justify-content:space-between}.flex--lg-top{align-items:flex-start}.flex--lg-middle{align-items:center}.flex--lg-bottom{align-items:flex-end}.flex--lg-first{order:-1}.flex--lg-last{order:1}.flex__item--lg-auto{flex:1 1 auto}.flex__item--lg-grow{flex-grow:1}.flex__item--lg-no-grow{flex-grow:0}.flex__item--lg-shrink{flex-shrink:1}.flex__item--lg-no-shrink{flex-shrink:0}.flex__item--lg-none{flex:none}.flex--lg-inline-flex{display:inline-flex}.flex--lg-flex-nowrap{flex-wrap:nowrap}.flex--lg-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--lg-horizontal-rev{flex-direction:column-reverse}.flex--lg-vertical{flex-direction:column}.flex--lg-vertical-rev{flex-direction:row-reverse}}@media(min-width: 1280px){.flex--12 .flex__item--xl-1{flex-basis:8.3333333333%;max-width:8.3333333333%}.flex--12 .flex__item--xl-2{flex-basis:16.6666666667%;max-width:16.6666666667%}.flex--12 .flex__item--xl-3{flex-basis:25%;max-width:25%}.flex--12 .flex__item--xl-4{flex-basis:33.3333333333%;max-width:33.3333333333%}.flex--12 .flex__item--xl-5{flex-basis:41.6666666667%;max-width:41.6666666667%}.flex--12 .flex__item--xl-6{flex-basis:50%;max-width:50%}.flex--12 .flex__item--xl-7{flex-basis:58.3333333333%;max-width:58.3333333333%}.flex--12 .flex__item--xl-8{flex-basis:66.6666666667%;max-width:66.6666666667%}.flex--12 .flex__item--xl-9{flex-basis:75%;max-width:75%}.flex--12 .flex__item--xl-10{flex-basis:83.3333333333%;max-width:83.3333333333%}.flex--12 .flex__item--xl-11{flex-basis:91.6666666667%;max-width:91.6666666667%}.flex--12 .flex__item--xl-12{flex-basis:100%;max-width:100%}.flex--12 .flex__offset--xl-1{margin-left:8.3333333333%}.flex--12 .flex__offset--xl-2{margin-left:16.6666666667%}.flex--12 .flex__offset--xl-3{margin-left:25%}.flex--12 .flex__offset--xl-4{margin-left:33.3333333333%}.flex--12 .flex__offset--xl-5{margin-left:41.6666666667%}.flex--12 .flex__offset--xl-6{margin-left:50%}.flex--12 .flex__offset--xl-7{margin-left:58.3333333333%}.flex--12 .flex__offset--xl-8{margin-left:66.6666666667%}.flex--12 .flex__offset--xl-9{margin-left:75%}.flex--12 .flex__offset--xl-10{margin-left:83.3333333333%}.flex--12 .flex__offset--xl-11{margin-left:91.6666666667%}.flex--10 .flex__item--xl-1{flex-basis:10%;max-width:10%}.flex--10 .flex__item--xl-2{flex-basis:20%;max-width:20%}.flex--10 .flex__item--xl-3{flex-basis:30%;max-width:30%}.flex--10 .flex__item--xl-4{flex-basis:40%;max-width:40%}.flex--10 .flex__item--xl-5{flex-basis:50%;max-width:50%}.flex--10 .flex__item--xl-6{flex-basis:60%;max-width:60%}.flex--10 .flex__item--xl-7{flex-basis:70%;max-width:70%}.flex--10 .flex__item--xl-8{flex-basis:80%;max-width:80%}.flex--10 .flex__item--xl-9{flex-basis:90%;max-width:90%}.flex--10 .flex__item--xl-10{flex-basis:100%;max-width:100%}.flex--10 .flex__offset--xl-1{margin-left:10%}.flex--10 .flex__offset--xl-2{margin-left:20%}.flex--10 .flex__offset--xl-3{margin-left:30%}.flex--10 .flex__offset--xl-4{margin-left:40%}.flex--10 .flex__offset--xl-5{margin-left:50%}.flex--10 .flex__offset--xl-6{margin-left:60%}.flex--10 .flex__offset--xl-7{margin-left:70%}.flex--10 .flex__offset--xl-8{margin-left:80%}.flex--10 .flex__offset--xl-9{margin-left:90%}.flex--xl-start{justify-content:flex-start}.flex--xl-center{justify-content:center}.flex--xl-end{justify-content:flex-end}.flex--xl-around{justify-content:space-around}.flex--xl-between{justify-content:space-between}.flex--xl-top{align-items:flex-start}.flex--xl.middle{align-items:center;}.flex--xl-bottom{align-items:flex-end;}.flex--xl-first{order:-1;}.flex--xl-last{order:1;}.flex__item--xl-auto{flex:1 1 auto;}.flex__item--xl-grow{flex-grow:1}.flex__item--xl-no-grow{flex-grow:0}.flex__item--xl-shrink{flex-shrink:1}.flex__item--xl-no-shrink{flex-shrink:0}.flex__item--xl-none{flex:none}.flex--xl-inline-flex{display:inline-flex}.flex--xl-flex-nowrap{flex-wrap:nowrap}.flex--xl-flex-wrap-rev{flex-wrap:wrap-reverse}.flex--xl-horizontal-rev{flex-direction:column-reverse}.flex--xl-vertical{flex-direction:column}.flex--xl-vertical-rev{flex-direction:row-reverse}}.font-scale-1{font-size:.5625rem}.font-scale-2{font-size:.625rem}.font-scale-3{font-size:.75rem}.font-scale-4{font-size:.875rem}.font-scale-5{font-size:1rem}.font-scale-6{font-size:1.125rem}.font-scale-7{font-size:1.3125rem}.font-scale-8{font-size:1.5rem}.font-scale-9{font-size:1.6875rem}.font-scale-10{font-size:1.875rem}.font-scale-11{font-size:2.0625rem}.font-scale-12{font-size:2.25rem}.font-scale-13{font-size:2.5rem}.font-scale-14{font-size:2.75rem}.font-scale-15{font-size:3rem}.font-scale-16{font-size:3.25rem}.font-scale-17{font-size:3.5rem}.font-scale-18{font-size:3.75rem}@media(min-width: 480px){.font-scale-1{font-size:.5625rem}.font-scale-2{font-size:.625rem}.font-scale-3{font-size:.75rem}.font-scale-4{font-size:.875rem}.font-scale-5{font-size:1rem}.font-scale-6{font-size:1.125rem}.font-scale-7{font-size:1.3125rem}.font-scale-8{font-size:1.5rem}.font-scale-9{font-size:1.75rem}.font-scale-10{font-size:2rem}.font-scale-11{font-size:2.375rem}.font-scale-12{font-size:2.75rem}.font-scale-13{font-size:3.125rem}.font-scale-14{font-size:3.5rem}.font-scale-15{font-size:3.875rem}.font-scale-16{font-size:4.25rem}.font-scale-17{font-size:4.625rem}.font-scale-18{font-size:5rem}}@media(min-width: 768px){.font-scale-1{font-size:.625rem}.font-scale-2{font-size:.75rem}.font-scale-3{font-size:.875rem}.font-scale-4{font-size:1rem}.font-scale-5{font-size:1.125rem}.font-scale-6{font-size:1.25rem}.font-scale-7{font-size:1.5rem}.font-scale-8{font-size:1.75rem}.font-scale-9{font-size:2rem}.font-scale-10{font-size:2.5rem}.font-scale-11{font-size:3rem}.font-scale-12{font-size:3.5rem}.font-scale-13{font-size:4rem}.font-scale-14{font-size:4.5rem}.font-scale-15{font-size:5rem}.font-scale-16{font-size:5.5rem}.font-scale-17{font-size:6rem}.font-scale-18{font-size:6.5rem}}.line-height-scale-1{line-height:.875}.line-height-scale-2{line-height:1}.line-height-scale-3{line-height:1.125}.line-height-scale-4{line-height:1.25}.line-height-scale-5{line-height:1.375}.line-height-scale-6{line-height:1.5}.line-height-scale-7{line-height:1.625}.line-height-scale-8{line-height:1.75}.line-height-scale-9{line-height:1.875}.line-height-scale-10{line-height:2}.lp-text-react p,.lp-text-react h1,.lp-text-react h2,.lp-text-react h3{min-height:1em;white-space:pre-wrap}.lp-text-react p:empty:before,.lp-text-react h1:empty:before,.lp-text-react h2:empty:before,.lp-text-react h3:empty:before{content:" ";white-space:pre}p.gutter-bottom-1,.lp-list.gutter-bottom-1{margin-bottom:0em}p.gutter-bottom-2,.lp-list.gutter-bottom-2{margin-bottom:0.25em}p.gutter-bottom-3,.lp-list.gutter-bottom-3{margin-bottom:0.4375em}p.gutter-bottom-4,.lp-list.gutter-bottom-4{margin-bottom:0.5em}p.gutter-bottom-5,.lp-list.gutter-bottom-5{margin-bottom:0.5625em}p.gutter-bottom-6,.lp-list.gutter-bottom-6{margin-bottom:0.625em}p.gutter-bottom-7,.lp-list.gutter-bottom-7{margin-bottom:0.6875em}p.gutter-bottom-8,.lp-list.gutter-bottom-8{margin-bottom:0.75em}p.gutter-bottom-9,.lp-list.gutter-bottom-9{margin-bottom:0.8125em}p.gutter-bottom-10,.lp-list.gutter-bottom-10{margin-bottom:0.875em}p.gutter-bottom-11,.lp-list.gutter-bottom-11{margin-bottom:0.9375em}p.gutter-bottom-12,.lp-list.gutter-bottom-12{margin-bottom:1em}p.gutter-bottom-13,.lp-list.gutter-bottom-13{margin-bottom:1.25em}p.gutter-bottom-14,.lp-list.gutter-bottom-14{margin-bottom:1.5em}h1.gutter-bottom-1,h2.gutter-bottom-1,h3.gutter-bottom-1{padding-bottom:0em}h1.gutter-bottom-2,h2.gutter-bottom-2,h3.gutter-bottom-2{padding-bottom:0.25em}h1.gutter-bottom-3,h2.gutter-bottom-3,h3.gutter-bottom-3{padding-bottom:0.4375em}h1.gutter-bottom-4,h2.gutter-bottom-4,h3.gutter-bottom-4{padding-bottom:0.5em}h1.gutter-bottom-5,h2.gutter-bottom-5,h3.gutter-bottom-5{padding-bottom:0.5625em}h1.gutter-bottom-6,h2.gutter-bottom-6,h3.gutter-bottom-6{padding-bottom:0.625em}h1.gutter-bottom-7,h2.gutter-bottom-7,h3.gutter-bottom-7{padding-bottom:0.6875em}h1.gutter-bottom-8,h2.gutter-bottom-8,h3.gutter-bottom-8{padding-bottom:0.75em}h1.gutter-bottom-9,h2.gutter-bottom-9,h3.gutter-bottom-9{padding-bottom:0.8125em}h1.gutter-bottom-10,h2.gutter-bottom-10,h3.gutter-bottom-10{padding-bottom:0.875em}h1.gutter-bottom-11,h2.gutter-bottom-11,h3.gutter-bottom-11{padding-bottom:0.9375em}h1.gutter-bottom-12,h2.gutter-bottom-12,h3.gutter-bottom-12{padding-bottom:1em}h1.gutter-bottom-13,h2.gutter-bottom-13,h3.gutter-bottom-13{padding-bottom:1.25em}h1.gutter-bottom-14,h2.gutter-bottom-14,h3.gutter-bottom-14{padding-bottom:1.5em}.lp-button{text-decoration:none}.is-bold{font-weight:700}.is-italic{font-style:italic}.is-strikethrough{text-decoration:line-through}.is-underline,.is-underline label{text-decoration:underline}.is-strikethrough.is-underline{text-decoration:line-through underline}.text-align-left{text-align:left}.text-align-right{text-align:right}.text-align-center{text-align:center}.lp-list{list-style:none;margin:0;padding:0}.lp-list.text-align-left li{padding-left:24px}.lp-list.text-align-left li::before{position:absolute}.lp-list.text-align-left.lp-list--numbered li{padding-left:30px}.lp-list.text-align-left.lp-list--icon li{padding-left:1.5em}.lp-list li{position:relative;width:100%;white-space:pre-wrap}.lp-list li:not(:last-child){margin-bottom:.5em}.lp-list li::before{display:inline-block;font-size:1em;font-weight:700}.lp-list--numbered{counter-reset:numbered}.lp-list--numbered.text-align-left li::before{left:-3px;top:1px}.lp-list--numbered.text-align-center li::before,.lp-list--numbered.text-align-right li::before{margin-right:10px}.lp-list--numbered li{counter-increment:numbered}.lp-list--numbered li::before{content:counter(numbered)}.lp-list--bullet.text-align-center li,.lp-list--bullet.text-align-right li{padding-left:12px}.lp-list--bullet li::before{content:"•";text-align:center;transform:scale(1.5);transform-origin:center right}.lp-list--checkmark.text-align-left li{padding-left:20px}.lp-list--checkmark.text-align-left li::before{left:2px;top:2px}.lp-list--checkmark.text-align-center li::before,.lp-list--checkmark.text-align-right li::before{transform:translateY(-3px)}.lp-list--checkmark li::before{content:"?";font-family:"Font Awesome 5 Free";font-weight:900;transform:scale(0.85)}.lp-list--icon.text-align-center li::before,.lp-list--icon.text-align-right li::before{transform:translateY(-3px)}.lp-list--checkmark.text-align-left.font-scale-1 li{padding-left:15px}.lp-list--checkmark.text-align-left.font-scale-1 li::before{left:-4px}.lp-list--checkmark.text-align-left.font-scale-2 li{padding-left:15px}.lp-list--checkmark.text-align-left.font-scale-2 li::before{left:-4px}.lp-list--checkmark.text-align-left.font-scale-3 li{padding-left:15px}.lp-list--checkmark.text-align-left.font-scale-3 li::before{left:-4px}.lp-list--checkmark.text-align-left.font-scale-4 li::before{left:-6px}.lp-list--checkmark.text-align-left.font-scale-5 li::before{left:-6px}.lp-list--checkmark.text-align-left.font-scale-6 li::before{left:-6px}.lp-list--checkmark.text-align-left.font-scale-7 li{padding-left:25px}.lp-list--checkmark.text-align-left.font-scale-7 li::before{left:-10px}.lp-list--checkmark.text-align-left.font-scale-8 li{padding-left:25px}.lp-list--checkmark.text-align-left.font-scale-8 li::before{left:-10px}.lp-list--checkmark.text-align-left.font-scale-9 li{padding-left:25px}.lp-list--checkmark.text-align-left.font-scale-9 li::before{left:-10px}.lp-list--checkmark.text-align-left.font-scale-10 li{padding-left:25px}.lp-list--checkmark.text-align-left.font-scale-10 li::before{left:-10px}.lp-list--checkmark.text-align-left.font-scale-10 li{padding-left:35px}.lp-list--checkmark.text-align-left.font-scale-11 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-11 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-12 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-12 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-13 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-13 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-14 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-14 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-15 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-15 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-16 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-16 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-17 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-17 li::before{left:-0.1em}.lp-list--checkmark.text-align-left.font-scale-18 li{padding-left:1.05em}.lp-list--checkmark.text-align-left.font-scale-18 li::before{left:-0.1em}.lp-list--bullet.text-align-left.font-scale-1 li{padding-left:15px}.lp-list--bullet.text-align-left.font-scale-1 li::before{top:2px;left:-2px}.lp-list--bullet.text-align-left.font-scale-2 li{padding-left:15px}.lp-list--bullet.text-align-left.font-scale-2 li::before{top:2px;left:-2px}.lp-list--bullet.text-align-left.font-scale-3 li{padding-left:15px}.lp-list--bullet.text-align-left.font-scale-3 li::before{top:2px;left:-2px}.lp-list--bullet.text-align-left.font-scale-4 li{padding-left:20px}.lp-list--bullet.text-align-left.font-scale-4 li::before{left:0}.lp-list--bullet.text-align-left.font-scale-5 li{padding-left:20px}.lp-list--bullet.text-align-left.font-scale-5 li::before{left:0}.lp-list--bullet.text-align-left.font-scale-6 li{padding-left:20px}.lp-list--bullet.text-align-left.font-scale-6 li::before{left:0}.lp-list--bullet.text-align-left.font-scale-7 li::before{left:2px}.lp-list--bullet.text-align-left.font-scale-8 li::before{left:2px}.lp-list--bullet.text-align-left.font-scale-9 li::before{left:2px}.lp-list--bullet.text-align-left.font-scale-10 li{padding-left:35px}.lp-list--bullet.text-align-left.font-scale-10 li::before{left:6px}.lp-list--bullet.text-align-left.font-scale-11 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-11 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-12 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-12 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-13 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-13 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-14 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-14 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-15 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-15 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-16 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-16 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-17 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-17 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--bullet.text-align-left.font-scale-18 li{padding-left:1.05em}.lp-list--bullet.text-align-left.font-scale-18 li::before{left:.25em;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-1 li{padding-left:15px}.lp-list--numbered.text-align-left.font-scale-1 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-1 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-2 li{padding-left:15px}.lp-list--numbered.text-align-left.font-scale-2 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-2 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-3 li{padding-left:15px}.lp-list--numbered.text-align-left.font-scale-3 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-3 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-4 li{padding-left:20px}.lp-list--numbered.text-align-left.font-scale-4 li:nth-child(n+10){padding-left:30px}.lp-list--numbered.text-align-left.font-scale-4 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-5 li{padding-left:20px}.lp-list--numbered.text-align-left.font-scale-5 li:nth-child(n+10){padding-left:30px}.lp-list--numbered.text-align-left.font-scale-5 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-6 li{padding-left:20px}.lp-list--numbered.text-align-left.font-scale-6 li:nth-child(n+10){padding-left:30px}.lp-list--numbered.text-align-left.font-scale-6 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-7 li{padding-left:25px}.lp-list--numbered.text-align-left.font-scale-7 li:nth-child(n+10){padding-left:45px}.lp-list--numbered.text-align-left.font-scale-7 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-8 li{padding-left:25px}.lp-list--numbered.text-align-left.font-scale-8 li:nth-child(n+10){padding-left:45px}.lp-list--numbered.text-align-left.font-scale-8 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-9 li{padding-left:25px}.lp-list--numbered.text-align-left.font-scale-9 li:nth-child(n+10){padding-left:45px}.lp-list--numbered.text-align-left.font-scale-9 li::before{left:-3px}.lp-list--numbered.text-align-left.font-scale-10 li{padding-left:35px}.lp-list--numbered.text-align-left.font-scale-10 li:nth-child(n+10){padding-left:60px}.lp-list--numbered.text-align-left.font-scale-10 li::before{left:-2px}.lp-list--numbered.text-align-left.font-scale-11 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-11 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-11 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-12 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-12 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-12 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-13 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-13 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-13 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-14 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-14 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-14 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-15 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-15 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-15 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-16 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-16 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-16 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-17 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-17 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-17 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--numbered.text-align-left.font-scale-18 li{padding-left:1.05em}.lp-list--numbered.text-align-left.font-scale-18 li:nth-child(n+10){padding-left:1.625em}.lp-list--numbered.text-align-left.font-scale-18 li::before{left:-2px;line-height:.75em;top:.18em}.lp-list--icon.text-align-left li::before{left:-6px}.lp-list--icon.text-align-left.font-scale-1 li{padding-left:20px}.lp-list--icon.text-align-left.font-scale-2 li{padding-left:20px}.lp-list--icon.text-align-left.font-scale-3 li{padding-left:20px}.lp-list--icon.text-align-left.font-scale-7 li{padding-left:40px}.lp-list--icon.text-align-left.font-scale-8 li{padding-left:40px}.lp-list--icon.text-align-left.font-scale-9 li{padding-left:40px}.lp-list--icon.text-align-left.font-scale-10 li{padding-left:40px}.lp-list--icon.text-align-left.font-scale-10 li{padding-left:55px}.lp-list--icon.text-align-left.font-scale-11 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-12 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-13 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-14 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-15 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-16 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-17 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-18 li::before{left:-5px}@media(max-width: 480px){.lp-list--checkmark.text-align-left.font-scale-7 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-8 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-9 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-10 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-11 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-12 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-13 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-14 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-15 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-16 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-17 li::before{left:-5px}.lp-list--checkmark.text-align-left.font-scale-18 li::before{left:-5px}.lp-list--numbered.text-align-left.font-scale-1 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-2 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-3 li:nth-child(n+10){padding-left:20px}.lp-list--numbered.text-align-left.font-scale-4 li:nth-child(n+10){padding-left:25px}.lp-list--numbered.text-align-left.font-scale-5 li:nth-child(n+10){padding-left:25px}.lp-list--numbered.text-align-left.font-scale-6 li:nth-child(n+10){padding-left:25px}.lp-list--numbered.text-align-left.font-scale-7 li:nth-child(n+10){padding-left:35px}.lp-list--numbered.text-align-left.font-scale-8 li:nth-child(n+10){padding-left:35px}.lp-list--numbered.text-align-left.font-scale-9 li:nth-child(n+10){padding-left:35px}.lp-list--numbered.text-align-left.font-scale-10 li:nth-child(n+10){padding-left:40px}.lp-list--icon.text-align-left.font-scale-7 li{padding-left:28px}.lp-list--icon.text-align-left.font-scale-7 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-8 li{padding-left:28px}.lp-list--icon.text-align-left.font-scale-8 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-9 li{padding-left:28px}.lp-list--icon.text-align-left.font-scale-9 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-10 li{padding-left:35px}.lp-list--icon.text-align-left.font-scale-11 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-11 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-12 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-12 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-13 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-13 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-14 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-14 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-15 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-15 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-16 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-16 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-17 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-17 li::before{left:-5px}.lp-list--icon.text-align-left.font-scale-18 li{padding-left:1.25em}.lp-list--icon.text-align-left.font-scale-18 li::before{left:-5px}}[data-widget-type=lp-image-text] .composite-box,[data-widget-type=lp-calendar-text] .composite-box{align-items:stretch}[data-widget-type=lp-image-text] .composite-column-compose,[data-widget-type=lp-calendar-text] .composite-column-compose{display:flex}[data-widget-type=lp-image-text] .layout-TC .composite-column-compose,[data-widget-type=lp-image-text] .layout-BC .composite-column-compose,[data-widget-type=lp-calendar-text] .layout-TC .composite-column-compose,[data-widget-type=lp-calendar-text] .layout-BC .composite-column-compose{flex-direction:column}[data-widget-type=lp-image-text] .layout-TR .composite-row-compose,[data-widget-type=lp-image-text] .layout-CR .composite-row-compose,[data-widget-type=lp-image-text] .layout-BR .composite-row-compose,[data-widget-type=lp-image-text] .layout-TL .composite-row-compose,[data-widget-type=lp-image-text] .layout-CL .composite-row-compose,[data-widget-type=lp-image-text] .layout-BL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-TR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-CR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-BR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-TL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-CL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-BL .composite-row-compose{flex:1 1 100%;flex-direction:row}[data-widget-type=lp-image-text] .layout-TR .composite-row-compose,[data-widget-type=lp-image-text] .layout-TL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-TR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-TL .composite-row-compose{align-items:flex-start}[data-widget-type=lp-image-text] .layout-CR .composite-row-compose,[data-widget-type=lp-image-text] .layout-CL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-CR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-CL .composite-row-compose{align-items:center}[data-widget-type=lp-image-text] .layout-BR .composite-row-compose,[data-widget-type=lp-image-text] .layout-BL .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-BR .composite-row-compose,[data-widget-type=lp-calendar-text] .layout-BL .composite-row-compose{align-items:flex-end}@media(max-width: 767px){.section .composite{padding:8px}}.leadbox .section,.leadbox .page>section{padding:initial}@media(max-width: 479px){.inner-column{padding:8px}}@media(min-width: 480px)and (max-width: 767px){.inner-column{padding:12px}}/*# sourceMappingURL=page-styles.css.map */
09-10
请帮我完善该vue项目下的响应式,使其网页设计的可以像香格里拉酒店官网一样简洁美观,<template> <!-- 体验页面 --> <div class="experience"> <!-- 顶部导航栏 --> <NavBar /> <div class="container"> <!-- 首图内容区域 --> <div class="content-banner"></div> <div class="content-wrapper"> <!-- 商务之旅 --> <div class="business margin-top-50"> <div class="img-box"> <responsive-image class="hd01" :small-image="hd01.smallImage1" :medium-image="hd01.mediumImage1" :large-image="hd01.largeImage1" alt-text="Description of image" /> <!-- <img src="../../assets/experience/hd-01.png" alt="" /> --> </div> <div class="text-box"> <p class="title-zh text-center" :class="{ textEn: $i18n.locale === 'en' }"> {{ $t('Business') }}</p> <p class="content margin-top-20" :class="{ textEn: $i18n.locale === 'en' }"> {{ $t('text7') }} </p> <p class="more" :class="{ textEn: $i18n.locale === 'en' }"> {{ $t("more14") }} </p> </div> </div> <!-- 旅游度假 --> <div class="tourism margin-top-50"> <div class="text-box"> <p class="title-zh text-center" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('trip') }}</p> <p class="content margin-top-20" :class="{ textEn: $i18n.locale === 'en' }"> {{ $t('text8') }} </p> <p class="more" :class="{ textEn: $i18n.locale === 'en' }"> {{ $t("more15") }} </p> </div> <div class="img-box"> <responsive-image class="hd02" :small-image="hd02.smallImage2" :medium-image="hd02.mediumImage2" :large-image="hd02.largeImage2" alt-text="Description of image" /> <!-- <img src="../../assets/experience/hd-02.png" alt="" /> --> </div> </div> </div> <!-- 查看客房 --> <div class="content-swiper"> <div class="content-kefang"> <p class="title-zh text-center" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('Guest') }}</p> <!-- 轮播图 --> <div class="foot-swiper-box margin-top-50"> <RoomSwiper :bannerList="roomBannerList" /> </div> </div> <div class="content-kefang"> <p class="title-zh text-center" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('Apartment') }}</p> <!-- 轮播图 --> <div class="foot-swiper-box margin-top-50"> <RoomSwiper :bannerList="apartBannerList" /> </div> </div> <div class="device"> <p class="title-zh text-center" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('Facilities') }}</p> <div class="device-content margin-top-50"> <div class="img-box"> <img src="../../assets/experience/hd-01.png" alt="" /> </div> <div class="text-box"> <ul class="device-list"> <li class="text" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('WiFi') }}</li> <li class="text" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('individually') }}</li> <li class="text" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('TV') }}</li> <li class="text" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('laundry') }}</li> <li class="text" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('safes') }}</li> <li class="text" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('coffee') }}</li> <li class="text" :class="{ textEn: $i18n.locale === 'en' }">{{ $t('Minibar') }}</li> </ul> </div> </div> </div> </div> </div> <!-- 滚动宣传图文本页面 --> <!-- <div v-for="item in roomBannerList" :key="item.id"> <h2>{{ $t(item.titleKey) }}</h2> <p>{{ $t(item.promptKey) }}</p> </div> --> <!-- 底部导航栏 --> <Footer /> </div> </template> <script> import RoomSwiper from "@/components/swiper/RoomSwiper.vue"; export default { name: "experience", components: { RoomSwiper, }, data() { return { msg: "Welcome to Your Vue.js App", // 响应式图片数据 hd01: { smallImage1: require("../../assets/experience/hd-01-mobile.jpg"), mediumImage1: require("../../assets/experience/hd-01.png"), largeImage1: require("../../assets/experience/hd-01.png"), }, hd02: { smallImage2: require("../../assets/experience/hd-02-mobile.jpg"), mediumImage2: require("../../assets/experience/hd-02.png"), largeImage2: require("../../assets/experience/hd-02.png"), }, roomBannerList: [ { id: 1, imgUrl: require("../../assets/room/room-01.png"), title: "豪华套房", prompt: "尊享私人空间,尽享奢华体验", }, { id: 2, imgUrl: require("../../assets/room/room-02.png"), title: "豪华楼层/豪华雅致大床房", prompt: "面积约为42平方米,装饰现代,舒适典雅。卧室和大理石浴室设气派的落地窗玻璃,可以俯瞰草原城市胜景或乌兰木伦湖滨美景。", }, { id: 3, imgUrl: require("../../assets/room/room-03.png"), title: "豪华双床房", prompt: "面积约为42平方米,装饰现代,舒适典雅。卧室和大理石浴室设气派的落地窗玻璃,可以俯瞰草原城市胜景或乌兰木伦湖滨美景。", }, ], apartBannerList: [ { id: 1, imgUrl: require("../../assets/room/room-01.png"), title: "豪华套房", prompt: "尊享私人空间,尽享奢华体验", }, { id: 2, imgUrl: require("../../assets/room/room-02.png"), title: "豪华楼层/豪华雅致大床房", prompt: "面积约为42平方米,装饰现代,舒适典雅。卧室和大理石浴室设气派的落地窗玻璃,可以俯瞰草原城市胜景或乌兰木伦湖滨美景。", }, { id: 3, imgUrl: require("../../assets/room/room-03.png"), title: "豪华双床房", prompt: "面积约为42平方米,装饰现代,舒适典雅。卧室和大理石浴室设气派的落地窗玻璃,可以俯瞰草原城市胜景或乌兰木伦湖滨美景。", }, ], }; }, }; </script> <style scoped> .content-banner { width: 100vw; height: 72rem; background-image: url("../../assets/banner/banner-02.png"); background-size: 100% 100%; } .business { width: 130rem; margin: 0 auto; display: flex; justify-content: space-between; margin-bottom:10rem; } .title-en, .title-zh { font-size: 3.6rem; color: rgb(202, 171, 98); text-align: left; } .content { width: 60rem; font-size: 2rem; line-height: 2; font-family: "Fangsong"; text-align: justify; } .img-box { width: 50rem; height: 30rem; } .more { width: 15rem; font-size: 2rem; line-height: 2em; color: rgb(202, 171, 98); text-align: center; cursor: pointer; background-color: rgb(238, 235, 235); } /* 通用属性 */ /* 文本居中 */ .text-center { text-align: center; } /* div居中 */ .div-center { margin: 2rem auto; } /* 上外边距2rem */ .margin-top-20 { margin-top: 2rem; } /* 上外边距5rem */ .margin-top-50 { margin-top: 5rem; } /* 下外边距2rem */ .margin-bottom-20 { margin-bottom: 2rem; } /* 度假旅行 */ .tourism { width: 120rem; margin: 0 auto; display: flex; justify-content: space-between; margin-bottom: 10rem; } /* 查看客房 */ .content-kefang { width: 100vw; height: 85rem; } /* 客房设施 */ .device-content { width: 100rem; margin: 10rem auto; display: flex; margin-bottom: 1rem; } .device-list { margin-left: 2rem; font-size: 2rem; text-align: left; line-height: 2em; font-family: 'FangSong'; } .device { width: 100rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 10rem; } .textEn { font-family: "Times New Roman", Times, serif !important; } /* 1024px以下 */ @media screen and (max-width: 1024px) { .content-banner { height: 70rem; } .business { flex-direction: column; align-items: center; } .tourism { flex-direction: column; align-items: center; } .content-wrapper { width: 160rem; } .title-en { font-size: 4.8rem; } .title-zh { font-size: 5.6rem; } .content { width: 74rem; font-size: 3rem; } .img-box{ width: 74rem; height: 42rem; } .more { width: 20rem; font-size: 2.4rem; } } .device-content { width: 100rem; margin: 10rem auto; display: flex; margin-bottom: 1rem; } .device-list { margin-left: 2rem; font-size: 2rem; text-align: left; line-height: 2em; font-family: 'FangSong'; } .device { width: 100rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 10rem; } @media screen and (max-width: 768px) { .content-banner { height: 82rem; background-image: url("../../assets/banner/banner-02-mobile.jpg"); } .business { flex-direction: column; align-items: center; } .tourism { flex-direction: column; align-items: center; } .content-wrapper { width: 190rem; } .img-box { order: 2; } .text-box { order: 1; } .title-en { font-size: 6rem; } .title-zh { font-size: 6.2rem; } .content { width: 160rem; font-size: 4rem; } .img-box { width: 110rem; height: 60rem; } .more { width: 30rem; font-size: 3.2rem; margin-bottom: 5rem; margin-left: 80rem; } } .device-content { width: 120rem; margin: 10rem auto; display: flex; margin-bottom: 1rem; flex-direction: row; margin-right: 10rem; } .device-list { margin-left: 10rem; font-size: 2rem; text-align: left; line-height: 2em; font-family: 'FangSong'; margin-right: 10rem; } .device { width: 150rem; margin: 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 10rem; margin-right: 10rem; } </style>
06-14
我需要解决一个问题,主要内容区域,不管设备大小是多大,都要默认展示三行,这是我的页面文件代码:/** * @Date: 2023-12-20 09:59:06 * @LastEditTime: 2024-01-09 18:22:35 * @FilePath: \工作\xinsheng-chasiwu-legacy-front\src\h5\components\Detail\modules\VideoSummaryH5\index.js * @Description: 智能视频摘要 */ import { useState, useRef, useEffect } from 'react'; import PropTypes from 'prop-types'; import SvgIcon from '@src/components/SvgIcon'; import css from './style.m.css'; import eventBus from '@src/utils/eventBus'; import { useLocalStorage } from '@src/components/Detail/modules/VideoPlayer/modules/VideoSummary/summaryHooks'; import { getNls, locale } from '@src/utils/i18n'; import { useTypeWriterHooks } from '@src/components/Detail/modules/VideoPlayer/modules/VideoSummary/summaryHooks.js'; import { DownOutlined, UpOutlined } from '@ant-design/icons'; import Panel, { PanelItem } from '@hui/react-mobile/Panel'; const isEn = locale === 'en'; const dict = getNls('components_LiveDetail_modules_Content_modules_Summary'); // 添加/移除评论区 class const addCommentsClass = ({ seth5VideoHeight, h5VideoHeight, type = 0 }) => { const commentDom = document.querySelector('#content-main .ev_tab_container'); if (!commentDom) return; if (type === 1) { commentDom.classList.remove('live-comments-top'); } else if (!commentDom.classList.contains('live-comments-top')) { commentDom.classList.add('live-comments-top'); if (seth5VideoHeight) seth5VideoHeight(h5VideoHeight + 56); } }; const renderExpandTitle = (item) => { return ( <div className={css.summaryTitleBox}> <span className={`${css.summaryTimeItem} h5ap-font-12`}>{item.time.split('~')[0]}</span> <span className={`${css.summaryTitleItem} h5ap-font-14`}>{item.title}</span> </div> ); }; function renderContent(props) { const { showAll, aiSummaryTitle, aiSummaryContent, aiSummaryContentEn, keyWordsTitle, keyWordsContent, keyList, keyListEn, selectedIndex, setSelectedIndex, summaryRef, contentSumRef, } = props; const keyListContent = isEn ? keyListEn : keyList; return ( <div ref={summaryRef} className={`${css.summaryContent} ${css.summaryContentWidth} h5ap-font-14`}> <div ref={contentSumRef}> <div className={`${css.label} h5ap-font-14`}>{aiSummaryTitle}</div> <div className={css.description}>{isEn ? aiSummaryContentEn : aiSummaryContent}</div> {keyWordsContent && ( <> <div className={`${css.label} ${css.keywordsLabel}`}>{keyWordsTitle}</div> <p className={css.keywords}>{keyWordsContent}</p> </> )} {showAll && ( <Panel enableMultiExpand={true} selectedIndex={selectedIndex} onExpand={(index, event, isExpand) => { if (!isExpand) { setSelectedIndex([...selectedIndex, index]); } }} onClose={(index, event, isExpand) => { const indexArr = selectedIndex.filter((f) => f !== index); if (isExpand) { setSelectedIndex(indexArr); } }} > {keyListContent.map((item, index) => ( <PanelItem titlePosition="left" key={index} closable={false} expandTitle={renderExpandTitle(item)} shrinkTitle={renderExpandTitle(item)} > {item.content} </PanelItem> ))} </Panel> )} </div> </div> ); } function VideoSummaryH5(props) { const { videoId, videoUuids, columnType, seth5VideoHeight, h5VideoHeight } = props; const [isNotFirstClosed, setIsNotFirstClosed] = useLocalStorage(videoUuids, 'isNotFirstClosed'); const [isFirstClosed, setIsFirstClosed] = useState(isNotFirstClosed); const [visible, setVisible] = useState(false); const [showAll, setShowAll] = useState(false); const [selectedIndex, setSelectedIndex] = useState([0]); const [isOneScreen, setIsOneScreen] = useState(0); // 是否一屏可显示全部 1:可一屏 const [reloadCompoent, setReloadCompoent] = useState(0); // 更新副作用函数 const [expandClickState, setExpandClickState] = useState(false); const summaryRef = useRef(null); const contentSumRef = useRef(null); const contentRef = useRef(null); const containerRef = useRef(null); const { aiSummaryTitle, aiSummaryContent, aiSummaryContentEn, keyWordsTitle, keyWordsContent, isShowGenerateBtn, keyList, keyListEn, } = useTypeWriterHooks(props); const params = { aiSummaryTitle, aiSummaryContent, aiSummaryContentEn, keyWordsTitle, keyWordsContent, keyList, keyListEn, showAll, setShowAll, selectedIndex, setSelectedIndex, summaryRef, contentSumRef, }; // 检测是否可以在一屏内显示全部内容 useEffect(() => { let element = summaryRef?.current; if (!element && !contentSumRef?.current) return; if (!contentSumRef?.current || !containerRef?.current) return; // 获取视口高度 const viewportHeight = window.innerHeight; const contentHeight = contentSumRef.current.offsetHeight; // 获取元素的位置信息 const rect = containerRef?.current.getBoundingClientRect(); const elementBottomPos = rect.top; let flag = contentHeight <= viewportHeight - elementBottomPos - 130; setIsOneScreen(flag ? 1 : 2); if (flag) return; // 获取元素距离文档顶部的位置 const elementRect = element.getBoundingClientRect(); // 获取元素距离视口顶部的位置 const elementTopFromViewport = elementRect.top; // 计算剩余可用高度 const availableHeight = viewportHeight - elementTopFromViewport; element.style.height = `${availableHeight - 30}px`; // 设置摘要高度 document.body.style.overflow = 'hidden'; // 关闭body滚动 }, [summaryRef?.current, containerRef?.current, reloadCompoent]); const handleClickClose = () => { eventBus.emit(`showFloatWindow${videoId}`, true, 'click'); document.body.style.overflow = 'auto'; // 开启body滚动 eventBus.emit('options_show', true); setVisible(false); setShowAll(false); setIsFirstClosed(true); setIsNotFirstClosed(true); if (columnType !== 'live') return; addCommentsClass({ seth5VideoHeight, h5VideoHeight, type: 1 }); }; useEffect(() => { if (isOneScreen === 2 && expandClickState) { eventBus.emit('options_show', false); // 一屏展示不完隐藏操作栏 } }, [isOneScreen, expandClickState]); useEffect(() => { eventBus.removeAllListeners('evt_showSummaryH5'); eventBus.on('evt_showSummaryH5', (value) => { setVisible(value); if (columnType !== 'live') return; if (!isFirstClosed && value) { addCommentsClass({ seth5VideoHeight, h5VideoHeight }); } else { addCommentsClass({ seth5VideoHeight, h5VideoHeight, type: 1 }); } }); return () => { eventBus.removeAllListeners('evt_showSummaryH5'); }; }, [columnType, isFirstClosed, seth5VideoHeight, h5VideoHeight, videoId]); if (!visible) return null; return ( <div ref={containerRef} className={`${css.videoSummaryH5} video-summary-h5 ${locale === 'en' ? css.summaryH5En : ''}`} > {/* 标题与关闭按钮 */} <div className={css.summaryH5Notice}> <div className={css.summaryH5Left}> <SvgIcon iconClass="summaryIcon" svgClass={css.svg} svg /> <div className={css.title}>{dict.aiSummary}</div> </div> <div className={css.summaryH5Right}> <SvgIcon iconClass="close" click={handleClickClose} /> </div> </div> {/* 内容区域 */} <div className={css.summaryH5Container}> {/* 主要内容 */} <div ref={contentRef} className={showAll ? css.summaryH5Expanded : css.summaryH5Clamp}> {renderContent(params)} </div> {/* 按钮容器:根据是否一屏显示决定位置 */} <div className={css.actionButton}> {!showAll ? ( <span className={css.expandIcon} onClick={(e) => { e.stopPropagation(); setShowAll(true); setReloadCompoent((pre) => pre + 1); // 执行副作用函数 setExpandClickState(true); }} > <DownOutlined /> </span> ) : ( <span className={css.foldButtonInline} onClick={(e) => { e.stopPropagation(); eventBus.emit('options_show', true); document.body.style.overflow = 'auto'; // 开启body滚动 setShowAll(false); setExpandClickState(false); setSelectedIndex([0]); }} > <UpOutlined /> </span> )} </div> </div> </div> ); } VideoSummaryH5.propTypes = { videoId: PropTypes.string, videoUuids: PropTypes.string, columnType: PropTypes.string, seth5VideoHeight: PropTypes.func, h5VideoHeight: PropTypes.number, }; export default VideoSummaryH5; 这是我的样式文件代码:.videoSummaryH5 { background: rgba(0, 65, 211, 0.05); padding: 8px 24px; line-height: 1.5; font-size: 14px; } .svg { font-size: 22px; margin-right: 4px; } .summaryH5Notice { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2px; } .summaryH5Right, .summaryH5Left { display: flex; align-items: center; } .summaryH5Left { color: #000; } /* 三行截断,单词不断开 */ .summaryH5Clamp { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; /* 精确控制 */ font-size: 14px; height: 90px; overflow: hidden; text-overflow: ellipsis; word-break: break-word; box-sizing: border-box; /* 防止外部样式干扰 */ white-space: normal; margin: 0; padding: 0; } /* 展开后:全文显示 */ .summaryH5Expanded { white-space: pre-wrap; overflow: visible; text-overflow: unset; display: block; } /* 容器定位图标 */ .summaryH5Container { position: relative; padding-right: 20px; } .actionButton { position: absolute; right: 0; bottom: 0; color: #0041d3; } /* 展开/收起图标 */ .expandIcon { position: absolute; right: 0; bottom: 0; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; z-index: 1; cursor: pointer; color: #0041d3; font-size: 12px; } /* 收起按钮:内联 vs 固定到底部 */ .foldButtonInline { position: relative; text-align: center; margin: 8px 0; display: flex; justify-content: flex-end; align-items: center; width: 327px; } .foldButtonFixed { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); background: rgba(0, 65, 211, 0.1); padding: 4px 12px; border-radius: 20px; z-index: 1000; } /* 内容样式 */ .summaryContent { overflow-y: auto; border-radius: 0.8rem; padding-bottom: 1.6rem; width: 32rem; font-size: 1.4rem; line-height: 2.4rem; /* 阻止滚动链 */ overscroll-behavior: contain; } .summaryContent::-webkit-scrollbar { display: none; } .summaryContentWidth { width: 28.8rem; } .label { color: #666666; margin-bottom: 4px; } .description, .keywords { color: #000000; text-align: justify; word-break: break-word; } .keywordsLabel { margin-top: 16px; } /* Panel 样式覆盖 */ .summaryContent :global .ev_Panel { margin-top: 24px; } .summaryContent :global .ev_Panel .ev_PanelItem:not(:first-child) { margin-top: 16px; } .summaryContent :global .ev_Panel .ev_PanelItem_title { flex-direction: row-reverse; justify-content: space-between; height: auto; } .summaryContent :global .ev_Panel .ev_PanelItem_title .ev_PanelItem_title_titleInfo { flex: 1; font-size: 14px; color: #666666; line-height: 24px; word-break: break-all; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .ev_PanelItem_title_showChange { margin-right: 0; align-self: flex-start; margin-left: 4px; width: 24px !important; height: 24px !important; line-height: 24px !important; display: flex; align-items: center; justify-content: center; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .panelHide { justify-content: flex-start; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .panelShow { justify-content: flex-end; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .ev_PanelItem_title_showChange > .ev_icon { display: flex; align-items: center; justify-content: center; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .ev_PanelItem_title_showChange svg { width: 12px; height: 12px; } .summaryContent :global .ev_Panel .ev_PanelItem_container { padding: 0; margin-top: 6px; font-size: 14px; color: #000000; text-align: justify; line-height: 24px; } /* 时间标题样式 */ .summaryTitleBox { display: flex; } .summaryTimeItem { text-wrap: nowrap; margin-right: 8px; max-width: 60px; white-space: nowrap; } .summaryTitleItem { flex: 1; word-break: break-all; } /* 图标类 */ .operationIcon { margin-left: 12px; font-size: 18px; color: #666; } /* 英文适配 */ .summaryH5En .title { line-height: 22px; font-size: 14px; color: #000; } .summaryH5En .operationIcon { margin-left: 8px; } /* 全局兼容 */ :global(.video-summary-h5 .summaryTest) { width: max-content !important; white-space: nowrap !important; max-width: max-content !important; } 请你将修改好的完整代码发我
最新发布
11-04
现在我给你提供页面代码:/** @Date: 2023-12-20 09:59:06 @LastEditTime: 2024-01-09 18:22:35 @FilePath: \工作\xinsheng-chasiwu-legacy-front\src\h5\components\Detail\modules\VideoSummaryH5\index.js @Description: 智能视频摘要 @ @Copyright © 2023 by ${git_name_email}, All Rights Reserved. */ import { useState, useRef } from ‘react’; import PropTypes from ‘prop-types’; import SvgIcon from ‘@src/components/SvgIcon’; import css from ‘./style.m.css’; import eventBus from ‘@src/utils/eventBus’; import { useLocalStorage } from ‘@src/components/Detail/modules/VideoPlayer/modules/VideoSummary/summaryHooks’; import { getNls, locale } from ‘@src/utils/i18n’; import { useEffect } from ‘react’; const dict = getNls(‘components_LiveDetail_modules_Content_modules_Summary’); import { useTypeWriterHooks } from ‘@src/components/Detail/modules/VideoPlayer/modules/VideoSummary/summaryHooks.js’; import { DownOutlined, UpOutlined } from ‘@ant-design/icons’; import Panel, { PanelItem } from ‘@hui/react-mobile/Panel’; const isEn = locale === ‘en’; /** @description: 添加回放视频下方的评论组件的class @param {number} type 0 添加 1 删除 @return {*} */ const addCommentsClass = ({ seth5VideoHeight, h5VideoHeight, type = 0 }) => { const commentDom = document.querySelector(‘#content-main .ev_tab_container’); if (!commentDom) return; if (type === 1) { commentDom.classList.remove(‘live-comments-top’); } else if (!commentDom.classList.contains(‘live-comments-top’)) { commentDom.classList.add(‘live-comments-top’); if (seth5VideoHeight) seth5VideoHeight(h5VideoHeight + 56); // 兼容包含视频字幕的场景 } }; const renderExpandTitle = (item) => { return ( {item.time.split(‘~’)[0]} {item.title} ); }; function renderContent(props) { const { showAll, aiSummaryTitle, aiSummaryContent, aiSummaryContentEn, keyWordsTitle, keyWordsContent, keyList, keyListEn, selectedIndex, setSelectedIndex, } = props; const keyListContent = isEn ? keyListEn : keyList; return ( <div className={${css.summaryContent} h5ap-font-14}> <div className={${css.label} h5ap-font-14}>{aiSummaryTitle} {isEn ? aiSummaryContentEn : aiSummaryContent} {keyWordsContent && ( <> <div className={`${css.label} ${css.keywordsLabel}`}>{keyWordsTitle}</div> <p className={css.keywords}>{keyWordsContent}</p> </> )} {showAll && ( <Panel enableMultiExpand={true} selectedIndex={selectedIndex} onExpand={(index, event, isExpand) => { if (!isExpand) { setSelectedIndex([...selectedIndex, index]); } }} onClose={(index, event, isExpand) => { const indexArr = selectedIndex.filter((f) => f !== index); if (isExpand) { setSelectedIndex(indexArr); } }} > {keyListContent.map((item, index) => { return ( <PanelItem titlePosition="left" key={index} closable={false} expandTitle={renderExpandTitle(item)} shrinkTitle={renderExpandTitle(item)} > {item.content} </PanelItem> ); })} </Panel> )} </div> </div> ); } function VideoSummaryH5(props) { const { videoId, videoUuids, columnType, seth5VideoHeight, h5VideoHeight } = props; const [isNotFirstClosed, setIsNotFirstClosed] = useLocalStorage(videoUuids, ‘isNotFirstClosed’); const [isFirstClosed, setIsFirstClosed] = useState(isNotFirstClosed); // 首次是否关闭 const [visible, setVisible] = useState(false); const [showAll, setShowAll] = useState(false); // 展示全部 const [selectedIndex, setSelectedIndex] = useState([0]); const [isOverflow, setIsOverflow] = useState(false); // 是否超出三行 const contentRef = useRef(null); // 获取ai摘要的相关内容 const { aiSummaryTitle, aiSummaryContent, aiSummaryContentEn, keyWordsTitle, keyWordsContent, isShowGenerateBtn, keyList, keyListEn, } = useTypeWriterHooks(props); let params = { aiSummaryContent, aiSummaryContentEn, keyWordsTitle, keyWordsContent, showAll, setShowAll }; params = { …params, aiSummaryTitle, isShowGenerateBtn, keyList, keyListEn, selectedIndex, setSelectedIndex }; useEffect(() => { const el = contentRef.current; if (!el) return; const checkOverflow = () => { const isOverflowing = el.scrollHeight > el.clientHeight; setIsOverflow(isOverflowing); }; const timer = setTimeout(checkOverflow, 50); const resizeObserver = new ResizeObserver(checkOverflow); resizeObserver.observe(el); return () => { clearTimeout(timer); resizeObserver.unobserve(el); }; }, [showAll]); const click = () => { eventBus.emit(showFloatWindow${videoId}, true); setIsFirstClosed(true); setIsNotFirstClosed(true); if (columnType !== ‘live’) return; addCommentsClass({ seth5VideoHeight, h5VideoHeight, type: 1 }); }; useEffect(() => { eventBus.removeAllListeners(evt_showSummaryH5); eventBus.on(evt_showSummaryH5, (value) => { setVisible(value); if (columnType !== ‘live’) return; if (!isFirstClosed && value) { addCommentsClass({ seth5VideoHeight, h5VideoHeight }); } else { addCommentsClass({ seth5VideoHeight, h5VideoHeight, type: 1 }); } }); return () => { eventBus.removeAllListeners(evt_showSummaryH5); }; }, []); if (isFirstClosed || !visible) return null; return ( <div className={${css.videoSummaryH5} video-summary-h5 ${locale === 'en' ? css.summaryH5En : ''}}> {dict.aiSummary} <SvgIcon iconClass=“close” {…{ click }} /> {/* 主体:带展开功能的内容区 */} <div className={css.summaryH5Container}> {/* 文本容器 */} <div ref={contentRef} className={showAll ? css.summaryH5Expanded : css.summaryH5Clamp}> {renderContent({ ...params, showAll })} </div> {/* 条件渲染:只有在折叠状态下且内容溢出时才显示展开按钮 */} {!showAll && isOverflow && ( <span className={css.expandIcon} onClick={(e) => { e.stopPropagation(); setShowAll(true); }} > <DownOutlined /> </span> )} {/* 收起按钮:始终显示上拉箭头(可选) */} {showAll && ( <span className={css.expandIcon} onClick={(e) => { e.stopPropagation(); setShowAll(false); }} > <UpOutlined /> </span> )} </div> </div> ); } VideoSummaryH5.propTypes = { videoId: PropTypes.string, videoUuids: PropTypes.string, columnType: PropTypes.string, seth5VideoHeight: PropTypes.func, h5VideoHeight: PropTypes.number, }; export default VideoSummaryH5; 以及对应的样式文件:.videoSummaryH5 { /* height: 40px; */ background: rgba(0, 65, 211, 0.05); padding: 8px 24px; line-height: 1.5; } .svg { font-size: 16px; margin-right: 4px; } .summaryH5Notice { display: flex; justify-content: space-between; align-items: center; } .summaryH5Right, .summaryH5Left { display: flex; align-items: center; } .summaryH5Left { color: #0041d3; } /* 三行截断 / .summaryH5Clamp { white-space: normal; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 3 !important; -webkit-box-orient: vertical; word-break: break-all; box-sizing: border-box; font-size: 14px; line-height: 1.4em; max-height: 6.2em; / 关键!强制最多三行高 */ } /* 展开后全文显示 */ .summaryH5Expanded { white-space: pre-wrap; overflow: visible; text-overflow: unset; display: block; } /* 平滑过渡动画 */ .summaryH5Clamp, .summaryH5Expanded { line-height: 1.4em; transition: max-height 0.3s ease; } /* 新增:容器用于定位图标 / .summaryH5Container { position: relative; padding-right: 20px; / 给图标留位置 */ } /* 新增:展开图标 */ .expandIcon { position: absolute; right: 0; bottom: 0; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; z-index: 1; cursor: pointer; color: #0041d3; font-size: 12px; } .summaryContent { overflow-y: auto; border-radius: 0.8rem; padding-bottom: 1.6rem; width: 32rem; font-size: 1.4rem; line-height: 2.4rem; position: relative; } .summaryContentWidth { width: 28.8rem; } .label { color: #666666; margin-bottom: 4px; } .description, .keywords { color: #000000; text-align: justify; } .keywordsLabel { margin-top: 16px; } .summaryContent :global .ev_Panel { margin-top: 24px; } .summaryContent :global .ev_Panel .ev_PanelItem:not(:first-child) { margin-top: 16px; } .summaryContent :global .ev_Panel .ev_PanelItem_title { flex-direction: row-reverse; justify-content: space-between; height: auto; } .summaryContent :global .ev_Panel .ev_PanelItem_title .ev_PanelItem_title_titleInfo { flex: 1; font-size: 14px; color: #666666; line-height: 24px; word-break: break-all; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .ev_PanelItem_title_showChange { margin-right: 0; align-self: flex-start; margin-left: 4px; width: 24px !important; height: 24px !important; line-height: 24px !important; display: flex; align-items: center; justify-content: center; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .panelHide { justify-content: flex-start; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .panelShow { justify-content: flex-end; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .ev_PanelItem_title_showChange > .ev_icon { display: flex; align-items: center; justify-content: center; } .summaryContent :global .ev_Panel .ev_PanelItem .ev_PanelItem_title .ev_PanelItem_title_showChange svg { width: 12px; height: 12px; } .summaryContent :global .ev_Panel .ev_PanelItem_container { padding: 0; margin-top: 6px; font-size: 14px; color: #000000; text-align: justify; line-height: 24px; } .summaryTitleBox { display: flex; } .summaryTimeItem { text-wrap: nowrap; margin-right: 8px; max-width: 60px; } .summaryTitleItem { flex: 1; word-break: break-all; } .test { background: #ffffff; border-radius: 4px; padding: 6px 10px; font-size: 16px; height: 24px; transform: scale(0.5) translateX(10%); color: #0041d3; line-height: 12px; position: absolute; top: -12px; text-wrap: nowrap; } .button { background: #0041d3; border-radius: 12px; font-size: 11px; color: #ffffff; text-align: center; height: 24px; padding: 0 16px; line-height: 24px; margin-right: 24px; position: relative; } .summaryH5En .title { font-size: 12px; } .summaryH5En .button { padding: 0 8px; margin-right: 20px; } .summaryH5En .test { transform: scale(0.5) translateX(100%); } :global .video-summary-h5 .summaryTest { width: max-content !important; white-space: nowrap !important; max-width: max-content !important; } 你需要实现下面的几个需求:展开交互说明: 1)展开时:摘要总结内容和段落摘要都显示,段落摘要默认按段落折叠(如图示)。 2)一屏显示全时,摘要全部显示,收起按钮浮动显示在屏幕的最下方,分享、点赞、收藏操作栏隐藏。 3)一屏显示不全时,收起按钮显示在摘要下方(紧挨着),分享、点赞、收藏等操作栏显示。 4)点击收起按钮,回到初始状态。5)AI摘要默认显示3行,单词不折行显示。 6) 点击向下箭头展开全部,请将修改后的两个文件完整的发给我
11-01
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值