千家信息网

css如何实现自适布局

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要为大家展示了"css如何实现自适布局",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"css如何实现自适布局"这篇文章吧。自适布局自适布局指相对视
千家信息网最后更新 2025年01月20日css如何实现自适布局

这篇文章主要为大家展示了"css如何实现自适布局",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"css如何实现自适布局"这篇文章吧。

自适布局

自适布局指相对视窗任何尺寸都能占据特定百分比的占位布局。自适布局的容器都是根据视窗尺寸计算,即使父节点祖先节点的尺寸发生变化也不会影响自适布局的容器尺寸。

搭建自适布局就离不开视窗比例单位。在CSS3里增加了与viewport相关的四个长度单位,随着时间推移,目前大部分浏览器对这四个长度单位都有较好的兼容性,这也是未来最建议在伸缩方案里使用的长度单位。

  • 1vw表示1%视窗宽度

  • 1vh表示1%视窗高度

  • 1vmin表示1%视窗宽度和1%视窗高度里最小者

  • 1vmax表示1%视窗宽度和1%视窗高度里最大者

视窗宽高在JS里分别对应window.innerWdithwindow.innerHeight。若不考虑低版本浏览器兼容性,完全可用一行CSS代码秒杀所有移动端的伸缩方案。

/* 基于UI width=750px DPR=2的网页 */html {    font-size: calc(100vw / 7.5);}

上述代码使用calc()实现font-size的动态计算。calc()自适布局里的核心存在,无它就不能愉快地实现自适布局所有动态计算了。

calc()用于动态计算单位,数值长度角度时间百分比都能作为参数。由于执行数学表达式后返回运算后的计算值,所以可减少大量人工计算甚至无需人工计算。

calc()饥不择食,所有计量单位都能作为参数参加整个动态计算。

  • 数值整数浮点数

  • 长度pxemremvwvh

  • 角度degturn

  • 时间sms

  • 百分比%

calc()虽然好用,但新手难免会遇到一些坑,谨记以下特点,相信就能玩转calc()了。

  • 四则运算:只能使用+-*/作为运算符号

  • 运算顺序:遵循加减乘除运算顺序,可用()提升运算等级

  • 符号连接:每个运算符号必须使用空格间隔起来

  • 混合计算:可混合不同计量单位动态计算

第三点尤为重要,若未能遵守,浏览器直接忽略该属性。

上述font-size:calc(100vw / 7.5)其实就是根据设计图与浏览器视窗的比例动态计算font-size100/750 = x/100vw

在SPA里有遇过因为有滚动条或无滚动条而导致页面路由在跳转过程里发生向左或向右的抖动吗?这让强迫症患者很难受,此时可用calc()巧妙解决该问题。

.elem {    padding-right: calc(100vw - 100%);}

不直接声明padding-right为滚动条宽度是因为每个浏览器的默认滚动条宽度都可能不一致。100vw是视窗宽度,100%内容宽度,那么100vw - 100%就是滚动条宽度,声明padding-right用于保留滚动条出现的位置,这样滚动条出不出现都不会让页面抖动了。

有了calc()做保障就可迅速实现一些与视窗尺寸相关的布局了。例如实现一个视窗宽度都为50%的弹窗。

.modal {    display: flex;    position: fixed;    left: 0;    right: 0;    top: 0;    bottom: 0;    justify-content: center;    align-items: center;    background-color: rgba(0, 0, 0, .5);    &-wrapper {        width: 50vw;        height: 200px;        background-color: #f66;    }}

当然使用calc()也不一定结合视窗比例单位计算。例如自适布局已知部分节点高度,不想手动计算最后节点高度但又想其填充布局剩余空间。

.selfadaption-layout {    width: 200px;    height: 567px;    .box-1 {        height: 123px;        background-color: #f66;    }    .box-2 {        height: 15%;        background-color: #3c9;    }    .box-3 {        height: calc(100% - 123px - 15%);        background-color: #09f;    }}

以上是"css如何实现自适布局"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

视窗 布局 宽度 单位 运算 动态 尺寸 浏览器 长度 高度 浏览 内容 节点 时间 比例 百分 百分比 符号 篇文章 人工 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 查看服务器有几个cpu 软件开发报价怎么报合适 签订软件开发合同注意什么 海西州网络技术价格多少 长宁区网络技术服务市场报价 为啥端游吃鸡总服务器繁忙 奉贤区网络软件开发服务优势 软件开发是商业企业吗 金山区网络软件开发质量 数据库安全性是指什么 软件开发技能测评指标 分析差异表达的公共数据库 数据库营销技术案例 db2删除数据库所有表 滁州软件开发培训怎么样 群晖服务器接投影仪 带有数据库安装程序 淘宝上的数据库怎么做营销 vscode重启服务器 pyqt5办公软件开发 造价工程师转软件开发的多吗 联想服务器能进入安全模式吗 洪安镇开展网络安全周宣传活动 服务器安全连是什么接 二三级数据库技术及应用 北京海量数据库怎么样 丽水制造软件开发工程师 进服务器找文件管理 导航怎么看服务器名字 画一幅网络安全警察的图片
0