我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用calc()函数怎么实现满屏背景定宽内容

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用calc()函数怎么实现满屏背景定宽内容

这期内容当中小编将会给大家带来有关使用calc()函数怎么实现满屏背景定宽内容,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<footer><div class="wrapper"><!-- 页脚的内容写在这里 --></div></footer>

同时用 CSS 来设置这两层元素的样式:

footer {background: #333;}.wrapper {max-width: 900px;margin: 1em auto;}

看起来很眼熟对不对?目前绝大多数的前端工程师都是这样写的。难道为了这个效果就一定要添加一层额外的元素?我们能否在现代 CSS的帮助下彻底抛弃这个累赘?

我们先来想一想,margin: auto 在这个场景下到底发挥了什么作用。这条声明所产生的左右外边距实际上都等于视口宽度的一半减去内容宽度的一半。由于百分比在这里是基于视口宽度来解析的(假设所有祖先元素都没有显式指定宽度),我们可以把这个外边距的值表达为 50% &ndash; 450px。幸好CSS3定义了这样一个 calc() 函数,它允许我们在 CSS 中直接以这种简单的算式来指定属性的值。如果用 calc() 取代原先的 auto,这个内层容器的样式就会变成:

.wrapper {max-width: 900px;margin: 1em calc(50% - 450px);}

之所以要在页脚内加一层容器元素,唯一的原因就是为了给它的margin 指定神奇的 auto 关键字,从而实现内容的水平居中布局。不过,现在我们已经用 calc() 替代了这个神奇的 auto,而且这个新值实际上可以作为一个通用的 CSS 长度值应用到任何一个接受长度值的属性上。这意味着如果我们愿意,还可以把这个长度值应用到父元素的 padding 上,而整个效果是保持不变的:

footer {max-width: 900px;padding: 1em calc(50% - 450px);background: #333;}.wrapper {}

经过这一番改造之后,我们已经把内层容器上的所有 CSS代码都剥离干净了。也就是说,它其实已经不需要参与布局了,我们可以安全地把它从结构代码中去掉。终于,我们在纯净无冗余的 HTML 结构上实现了想要的设计风格。这个方案还有进一步优化的空间吗?没错。你要相信,追求卓越的道路是永无止境的!

如果把 width 这一行声明注释掉,你会发现其实没有影响。视觉效果是完全一样的,而且不论视口尺寸如何变化都是如此。这是为什么呢?因为当内边距是 50% &ndash; 450px 时,只可能给内容留出 900px(2&times;450px)的可用空间。只有把 width 显式地设置为 900px 之外(或大或小)的其他值,我们才有可能看出区别。由于我们想要得到的内容宽度本来就是 900px,这一行声明其实就是冗余的,我们可以把它去掉,让代码更加简洁。

另一个可以优化的地方在于,我们可以增加一条回退样式来增强向后兼容性。这样即使浏览器不支持 calc(),我们也至少可以得到一个相对合理的内边距:

footer {padding: 1em;padding: 1em calc(50% - 450px);background: #333;}

上述就是小编为大家分享的使用calc()函数怎么实现满屏背景定宽内容了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用calc()函数怎么实现满屏背景定宽内容

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用calc()函数怎么实现满屏背景定宽内容

这期内容当中小编将会给大家带来有关使用calc()函数怎么实现满屏背景定宽内容,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。