首页 > 其他分享 >quasar <q-page>下面<div>自动计算height的问题

quasar <q-page>下面<div>自动计算height的问题

时间:2024-01-14 09:05:15浏览次数:33  
标签:style ad quasar height adsense responsive 自动 data

由于要解决adsense引起的CLS issue,根据 https://web.dev/articles/optimize-cls?utm_source=lighthouse&utm_medium=lr给出的建议,在广告的container上加上min-height。

            <div
              v-if="$q.platform.is.mobile"
              class="adsenseunitdetail q-pa-xs"
              style="min-height: 340px !important"
            >
              <!-- in-article-aquare2 -->
              <ins
                class="adsbygoogle"
                style="display: block"
                data-ad-client="ca-pub-3935005489954231"
                data-ad-slot="6650477400"
                data-ad-format="auto"
                data-full-width-responsive="true"
              ></ins>
            </div>

这段代码在<q-page>下面,实际展现出来之后,页面代码会变成下面,因为会重新计算高度:

<div class="adsenseunitdetail q-pa-xs" style="min-height: 0px !important; height: auto !important;">
  <ins class="adsbygoogle" data-ad-client="ca-pub-3935005489954231" data-ad-slot="6650477400" data-ad-format="auto" data-full-width-responsive="true" style="display: block; height: 200px;" data-adsbygoogle-status="done" data-ad-status="unfilled"><div id="aswift_1_host" tabindex="0" title="Advertisement" aria-label="Advertisement" style="border: none; height: 200px; width: 526px; margin: 0px; padding: 0px; position: relative; visibility: visible; background-color: transparent; display: inline-block; overflow: visible;"><iframe id="aswift_1" name="aswift_1" browsingtopics="true" style="left:0;position:absolute;top:0;border:0;width:526px;height:200px;" sandbox="allow-forms allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" width="526" height="200" frameborder="0" marginwidth="0" marginheight="0" vspace="0" hspace="0" allowtransparency="true" scrolling="no" allow="attribution-reporting" src="https://googleads.g.doubleclick.net/pagead/ads?client=ca-pub-3935005489954231&amp;output=html&amp;h=200&amp;slotname=6650477400&amp;adk=3488760136&amp;adf=3452056682&amp;pi=t.ma~as.6650477400&amp;w=526&amp;fwrn=11&amp;fwrnh=100&amp;lmt=1705176099&amp;rafmt=1&amp;format=526x200&amp;url=https%3A%2F%2Fwww.hjdang.com%2Fd%2F1746216722043543554&amp;fwr=0&amp;fwrattr=true&amp;rpe=1&amp;resp_fmts=3&amp;sfro=1&amp;wgl=1&amp;uach=WyJtYWNPUyIsIjE0LjIuMSIsIng4NiIsIiIsIjEyMC4wLjYwOTkuMjE2IixudWxsLDAsbnVsbCwiNjQiLFtbIk5vdF9BIEJyYW5kIiwiOC4wLjAuMCJdLFsiQ2hyb21pdW0iLCIxMjAuMC42MDk5LjIxNiJdLFsiR29vZ2xlIENocm9tZSIsIjEyMC4wLjYwOTkuMjE2Il1dLDBd&amp;dt=1705176099850&amp;bpp=2&amp;bdt=318069&amp;idt=3&amp;shv=r20240109&amp;mjsv=m202401080101&amp;ptt=9&amp;saldr=aa&amp;abxe=1&amp;cookie=ID%3Ddaefebd3d133c581%3AT%3D1704470921%3ART%3D1705175584%3AS%3DALNI_MbdMv_25U53z_6P-qjgeXQnMXu2kQ&amp;gpic=UID%3D00000d389bb3e176%3AT%3D1704470921%3ART%3D1705175584%3AS%3DALNI_Ma4bEGfu9M5AZXY_tyK2MYMZ4tZ2g&amp;prev_fmts=0x0%2C726x280%2C234x600&amp;nras=1&amp;correlator=894032714487&amp;frm=20&amp;pv=1&amp;ga_vid=865370504.1688932039&amp;ga_sid=1705175783&amp;ga_hid=276704057&amp;ga_fc=1&amp;u_tz=480&amp;u_his=7&amp;u_h=932&amp;u_w=430&amp;u_ah=932&amp;u_aw=430&amp;u_cd=24&amp;u_sd=3&amp;dmc=8&amp;adx=12&amp;ady=487&amp;biw=430&amp;bih=932&amp;scr_x=0&amp;scr_y=0&amp;eid=44759875%2C44759926%2C95320239%2C31080264%2C31080410%2C44807406%2C95320378%2C95320894%2C95321626%2C31078663%2C31078665%2C31078668%2C31078670&amp;oid=2&amp;pvsid=3170054804342355&amp;tmod=1358442691&amp;uas=3&amp;nvt=2&amp;fc=1920&amp;brdim=0%2C0%2C0%2C0%2C430%2C0%2C430%2C932%2C430%2C932&amp;vis=1&amp;rsz=%7Cm%7CpEe%7Cp&amp;abl=XS&amp;pfx=0&amp;fu=1152&amp;bc=31&amp;td=1&amp;nt=1&amp;ifi=4&amp;uci=a!4&amp;fsb=1&amp;dtd=18" data-google-container-id="a!4" data-google-query-id="CLGX8P2T24MDFUYqewcdMR8Iug" data-load-complete="true"></iframe></div>
  </ins>
</div>

但奇怪的是,在没有广告的情况下刷新页面确实会预留出空间,但如果不是刷新,而是页面点进去,预留的空间就没了,会看到明显的页面漂移现象。(ps:这里我就很疑惑??,因为我看两者生成的代码是一样的,而且ins和ins下面的ifram都有height)后来仔细比对发现线上后者iframe 的height=0,而本地的iframe的height还是有值的,但还是不显示,可能是position的问题?

后来尝试把<div>改成<q-item>,这样quasar不会把样式修改为in-line style. 但是这样adsense报错:No slot size for availableWidth=0,原因是:About the responsive behavior of display ad units - Google AdSense Help

  • The parent container has no width set. If you place your responsive ad code within a parent container that doesn’t have an explicit width set, for example, within a floating element, then our ad code won’t be able to calculate the required size for the responsive ad unit. In this case, you’ll need to modify your code and use CSS media queries to set the size of the parent container. Find out how to modify your responsive ad code.
  • The parent container has fixed or limited height. Responsive ads should not be placed inside containers with a fixed or limited height, as they may be taller on some devices or browsers. If you need to limit the height of your responsive ads,  you’ll need to modify your code and use CSS media queries to set the height of the parent container. Find out how to modify your responsive ad code.

这里说要用CSS media queries,经实验,解决方法是不要提供min-height,而是提供height,改成这样就可以了,

            <div
              v-if="$q.platform.is.mobile"
              class="adsenseunitdetail q-pa-xs mobile_adsense_dimension"
            >
              <!-- in-article-aquare2 -->
              <ins
                class="adsbygoogle mobile_adsense_dimension"
                style="display: block"
                data-ad-client="ca-pub-3935005489954231"
                data-ad-slot="6650477400"
                data-ad-format="auto"
                data-full-width-responsive="true"
              ></ins>
            </div>

            <div
              v-if="$q.platform.is.desktop"
              class="adsenseunitdetail q-pa-xs pc_adsense_dimension"
            >
              <!-- in-article-aquare2 -->
              <ins
                class="adsbygoogle pc_adsense_dimension"
                style="display: block"
                data-ad-client="ca-pub-3935005489954231"
                data-ad-slot="6650477400"
                data-ad-format="auto"
                data-full-width-responsive="true"
              ></ins>
            </div>


.mobile_adsense_dimension
  height: 345px
  @media(min-width: 429px)
    height: 358px
  @media(max-width: 380px)
    height: 312px
.pc_adsense_dimension
  height: 280px

 注意 mobile_adsense_dimension和pc_adsense_dimension这两个class在ins标签上也要有。实际测试, 加上class之后quasar就不会加上 style="min-height: 0px !important; height: auto !important;" 了。但如果把class里面的样式从height

改成min-height则还是会改。而且奇怪的是,不用class,直接写in-line style,如下面。经本地测试,mobile的会被quasar改成"style="height: auto !important;",pc的就不会,神不神奇??可能两个元素位置不同有关吧。

            <div
              v-if="$q.platform.is.mobile"
              class="adsenseunitdetail q-pa-xs"
              style="height: 345px"
            >
              <!-- in-article-aquare2 -->
              <ins
                class="adsbygoogle mobile_adsense_dimension"
                style="display: block"
                data-ad-client="ca-pub-3935005489954231"
                data-ad-slot="6650477400"
                data-ad-format="auto"
                data-full-width-responsive="true"
              ></ins>
            </div>

            <div
              v-if="$q.platform.is.desktop"
              class="adsenseunitdetail q-pa-xs"
              style="height: 280px"
            >
              <!-- in-article-aquare2 -->
              <ins
                class="adsbygoogle pc_adsense_dimension"
                style="display: block"
                data-ad-client="ca-pub-3935005489954231"
                data-ad-slot="6650477400"
                data-ad-format="auto"
                data-full-width-responsive="true"
              ></ins>
            </div>

 

标签:style,ad,quasar,height,adsense,responsive,自动,data
From: https://www.cnblogs.com/zjhgx/p/17963308

相关文章

  • python | 小游戏 开局托儿所 自动化脚本 pyautogui
    小游戏开局托儿所自动化脚本pyautogui纯sb游戏,我脚本都不是总能上100分。当然,跟我算法不是最优肯定也有关系。别玩这游戏,纯浪费时间。好久不写这种带算法的代码了,调了半天。importpyautoguideflike(boxa,boxb): ifabs(boxa.top-boxb.top)<10andabs(boxa.left-box......
  • 现代 CSS 解决方案:文字颜色自动适配背景色!
    现代CSS解决方案:文字颜色自动适配背景色! 在23年的CSS新特性中,有一个非常重要的功能更新-- 相对颜色。简单而言,相对颜色的功能,让我们在CSS中,对颜色有了更为强大的掌控能力。其核心功能就是,让我们能够基于一个现有颜色A,通过一定的转换规则,快速生成我们想要的颜色......
  • jQuery自动加载更多程序
    jQuery自动加载更多程序 1.1.1摘要现在,我们经常使用的微博、微信或其他应用都有异步加载功能,简而言之,就是我们在刷微博或微信时,移动到界面的顶端或低端后程序通过异步的方式进行加载数据,这种方式加快了数据的加载速度,由于它每次只加载一部分数据,当我们有大量的数据,但不能显......
  • Shell编程自动化之if、for、while和函数
    一、if语句1.单分支格式if[条件判断式];then当条件判断成立时,执行的命令内容fiif[条件判断式]then当条件判断成立时,执行的命令内容fi2.双分支格式if[条件判断式];then当条件判断成立时,执行的命令内容else当条件判断......
  • Shell编程自动化之Shell编程基础
    一、Shell可以用来做什么1.自动化批量系统初始化程序;2.自动化批量软件部署程序;3.应用程序管理;4.日志分析处理程序;5.自动化备份恢复程序;6.自动化信息采集及监控程序;7.自动化管理程序;二、Shell概述1.Shell是操作系统的外壳,是用户操作系统的命令接口,是一个介于用户和系统内核......
  • 速通 形式语言与自动机
    有啥要学的?DFA/NFA的记号:\((Q,\Sigma,\delta,q_0,F)\)。NFA到DFA:子集构造(到\(2^n\)级别的构造:所有最后第\(n\)位为\(1\)的01串)。\(\varepsilon-\)NFA到DFA:类似地进行子集构造,每次转移时考虑对应\(\varepsilon-\)闭包。文本搜索:trie树(记得加上根到自身的\(\Si......
  • # yyds干货盘点 # 盘点一个Python自动化办公实战案例的问题
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas日期数据生成的问题,问题如下:大佬们,有个难度高的新需求,现实生活中也蛮实用的,原始数据和想要的结果是下面这样子,先进先出这样子的表现形式如下:当然商品不会只有一种,有办法吗?下面是他的原始代码:data=[......
  • 自动点赞脚本的功能设计和代码分享!
    随着社交媒体的普及,点赞已成为人们互动交流的重要方式之一,自动点赞脚本应运而生,它可以帮助用户快速、自动地为他人的帖子点赞,节省时间,本文将为您详细介绍自动点赞脚本的功能设计以及源代码分享。一、自动点赞脚本的功能设计1、自动检测新帖自动点赞脚本需要具备自动检测新帖的功能,......
  • Python中有哪些常用的工具可以用于接口自动化
    接口自动化测试是测试的重要一部分,Python作为一种流行的编程语言,提供了许多用于接口自动化测试的工具。本文将介绍一些常用的Python工具,用于接口自动化测试。1.RequestsRequests是一个Python库,用于发送HTTP请求和处理响应。它提供了一种简单而优雅的方式来发送HTTP/1.1请求,并自动处......
  • AD域办公电脑启用WIFI自动链接
    环境:AD/winSer2019STD域控/辅域,NPS+CA/winSer2016STD成员服务器,AC是H3CWX2520X-LI,AP任选兼容的效果:加域的办公电脑在集团各城市据点自动接入Office之WiFi信号首先,AD域配置(AD服务器搭建过程自行搜索)。对各城市计算机对象OU分组,比如区域-生产区域办公、生产设备、办公电脑、VIP等等,......