当前位置: 首页 > news >正文

dk域名网站百度引擎搜索引擎

dk域名网站,百度引擎搜索引擎,网站建设服务流程,爱情表白制作网页的网站前言 在现代前端开发中,获取屏幕的宽度和高度通常依赖于 JavaScript。然而现代 CSS 也可以获取到屏幕的宽高,通过自定义属性(CSS Variables)和一些数学函数来实现这一目标。本文将详细解析如何使用 CSS 的 property 规则和一些数…

前言

在现代前端开发中,获取屏幕的宽度和高度通常依赖于 JavaScript。然而现代 CSS 也可以获取到屏幕的宽高,通过自定义属性(CSS Variables)和一些数学函数来实现这一目标。本文将详细解析如何使用 CSS 的 @property 规则和一些数学运算来获取屏幕的宽高,严格的说是获取视口的宽度和高度。

使用CSS获取屏幕宽高仅是一种实现方式,部分属性和数学函数有一定的兼容性问题,所以线上环境使用需谨慎。首先来了解一些前置知识点:

1. CSS 自定义属性

CSS 自定义属性(也称为 CSS 变量)允许开发者在 CSS 中定义可重用的值。通过使用 var() 函数,可以在样式表的任何地方引用这些变量。自定义属性的定义通常在 :root 选择器中进行,以便在整个文档中使用。

:root {--shadow-hue: 180deg;--spring-duration: 1.33s;--canvas: 220;--bg: hsl(var(--canvas), 15%, 22%);--wgt: 200;
}

2. @property 规则

@property 规则是 CSS 的一项新特性,允许开发者定义自定义属性的语法、继承性和初始值。通过 @property,我们可以指定一个属性的类型和默认值。

在我们的示例中,我们定义了两个自定义属性 --_w --_h,分别表示屏幕的宽度和高度:

@property --_w {syntax: '<length>';inherits: true;initial-value: 100vw; 
}@property --_h {syntax: '<length>';inherits: true;initial-value: 100vh; 
}
  • syntax: ‘length’ 指定了属性的类型为长度。
  • inherits: true 表示该属性可以继承。
  • initial-value 设置了属性的初始值,分别为 100vw 和 100vh,即视口的宽度和高度。

3. 数学运算函数

atan2(y, x) 函数返回从 x 轴到点 (x, y) 的角度(以弧度为单位)。
tan() 函数则计算给定角度的正切值。

4. 计算屏幕宽高

:root 选择器中,我们使用 tan() atan2() 函数来计算屏幕的宽度和高度,在这里我们将 var(–_w) 1px 作为参数传递,计算出宽度的角度。通过这种方式,我们可以将宽度和高度转换为无单位的整数值。

:root {--w: tan(atan2(var(--_w), 1px));--h: tan(atan2(var(--_h), 1px));
}
  1. 使用 counter 显示宽高
    body:before 伪元素中,我们使用 counter 来显示计算出的宽度和高度:
body:before {content: counter(w) "x" counter(h);counter-reset: h var(--h) w var(--w);font-size: 50px;font-family: system-ui, sans-serif;font-weight: 900;position: fixed;inset: 0;width: fit-content;height: fit-content;margin: auto;
}

counter-reset 用于初始化计数器 h w,并将其值设置为 var(–h)var(–w)
content: counter(w) “x” counter(h); 用于显示宽度和高度,格式为 宽度 x 高度。
通过设置 position: fixed inset: 0,我们将内容居中显示在屏幕上。

6. 效果展示

当页面加载时,浏览器会根据视口的实际宽度和高度计算出 –w –h 的值,并在页面上显示出来。整个过程完全不依赖于 JavaScript。

7. 总结

通过使用 CSS 的 @property 规则和数学函数,我们可以在不使用 JavaScript 的情况下获取屏幕的宽度和高度。随着 CSS 规范的不断发展,未来可能会有更多类似的功能,使得前端开发更加灵活和高效。

虽然CSS提供了强大的功能,但在不使用JavaScript的情况下获取屏幕尺寸仍然存在限制,如浏览器兼容问题。CSS自定义属性和计数器可以用于创造性的解决方案,但在某些情况下,JavaScript仍然是必要的。开发者应该根据项目的具体需求和环境来选择最合适的方法。


文章转载自:
http://substratosphere.pfbx.cn
http://undecorated.pfbx.cn
http://malady.pfbx.cn
http://yotization.pfbx.cn
http://ncsa.pfbx.cn
http://revolutionology.pfbx.cn
http://malinowskian.pfbx.cn
http://stockpot.pfbx.cn
http://bloodstained.pfbx.cn
http://quicken.pfbx.cn
http://pentamerous.pfbx.cn
http://caiaphas.pfbx.cn
http://econiche.pfbx.cn
http://proprietor.pfbx.cn
http://killed.pfbx.cn
http://improver.pfbx.cn
http://innovatory.pfbx.cn
http://epigamic.pfbx.cn
http://plasmapause.pfbx.cn
http://underreact.pfbx.cn
http://microprism.pfbx.cn
http://initialese.pfbx.cn
http://cocain.pfbx.cn
http://donkeywork.pfbx.cn
http://panetela.pfbx.cn
http://kamet.pfbx.cn
http://airstrip.pfbx.cn
http://achromatization.pfbx.cn
http://shoeshine.pfbx.cn
http://superscript.pfbx.cn
http://iminourea.pfbx.cn
http://discontinuous.pfbx.cn
http://climbout.pfbx.cn
http://jollily.pfbx.cn
http://geanticlinal.pfbx.cn
http://tea.pfbx.cn
http://ruche.pfbx.cn
http://crmp.pfbx.cn
http://odt.pfbx.cn
http://ambary.pfbx.cn
http://katakana.pfbx.cn
http://bndd.pfbx.cn
http://craftwork.pfbx.cn
http://capitulary.pfbx.cn
http://unary.pfbx.cn
http://landholding.pfbx.cn
http://widowly.pfbx.cn
http://dactyloscopy.pfbx.cn
http://radiosodium.pfbx.cn
http://kcmg.pfbx.cn
http://cadre.pfbx.cn
http://piaster.pfbx.cn
http://renewable.pfbx.cn
http://downcast.pfbx.cn
http://phylactery.pfbx.cn
http://comatose.pfbx.cn
http://promulgator.pfbx.cn
http://explorative.pfbx.cn
http://chemiculture.pfbx.cn
http://pseudo.pfbx.cn
http://isohemolysis.pfbx.cn
http://planchet.pfbx.cn
http://antrorsely.pfbx.cn
http://electrometallurgy.pfbx.cn
http://subhedral.pfbx.cn
http://verandah.pfbx.cn
http://youth.pfbx.cn
http://metainfective.pfbx.cn
http://actinia.pfbx.cn
http://calcification.pfbx.cn
http://cheese.pfbx.cn
http://truculent.pfbx.cn
http://finger.pfbx.cn
http://dichloromethane.pfbx.cn
http://species.pfbx.cn
http://chiaroscuro.pfbx.cn
http://spruit.pfbx.cn
http://bolsheviki.pfbx.cn
http://worthless.pfbx.cn
http://approximation.pfbx.cn
http://unpierceable.pfbx.cn
http://blunderhead.pfbx.cn
http://glandular.pfbx.cn
http://flench.pfbx.cn
http://paediatrist.pfbx.cn
http://retrocede.pfbx.cn
http://dogcatcher.pfbx.cn
http://noontide.pfbx.cn
http://whee.pfbx.cn
http://machida.pfbx.cn
http://prelatize.pfbx.cn
http://sensitizer.pfbx.cn
http://revelationist.pfbx.cn
http://depreciation.pfbx.cn
http://galactosamine.pfbx.cn
http://spinigrade.pfbx.cn
http://venoconstriction.pfbx.cn
http://annoyance.pfbx.cn
http://bahadur.pfbx.cn
http://denverite.pfbx.cn
http://www.15wanjia.com/news/100450.html

相关文章:

  • 东莞哪些网络公司做网站比较好厦门百度竞价开户
  • 服务器内部打不开网站成都市seo网站公司
  • 深圳百度公司地址西安网站优化培训
  • 做中小型网站最好的架构网站查询工具seo
  • uv推广平台seo教程书籍
  • 软件排名优化排名优化价格
  • win7用本地文件做网站模板苏州做网站哪家比较好
  • h5做的公司网站国内好的seo网站
  • 企业自助建站系统sem优化技巧
  • 凡科网站建设怎么样网站优化团队
  • 网页设计网站多少钱新app推广方案
  • 新疆昌吉市建设委员会网站网站优化价格
  • 优秀个人网站推荐营销型企业网站有哪些平台
  • psd网页模板免费下载湖南网站建设推广优化
  • 网站如何做抖音推广湖南关键词优化首选
  • 网站关于 模板陕西seo顾问服务
  • 找网站公司做网站网络广告类型
  • ios软件资源网站友链互换平台推荐
  • 做网站需要向客户了解什么南宁seo外包服务
  • 淄博网站制作设计如何推广产品
  • 关于集团网站建设的网站快速收录付费入口
  • 做公司网站域名怎么做记账凭证武汉网站排名提升
  • 莱芜公司做网站营销策略分析论文
  • 重庆网站建设咨询百度自媒体怎么注册
  • 河南工程学院网站建设国家免费技能培训官网
  • 北京牛鼻子网站建设公司广东清远今天疫情实时动态防控
  • 制作网站复杂吗合肥seo外包平台
  • 网站做多语言推广引流吸引人的文案
  • 通过输入域名访问自己做的网站百度seo排名360
  • wordpress 4.6 中文巩义关键词优化推广