position: fixed;

这是 fixed 在 MDN 里面的文档;

不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置。元素的位置在屏幕滚动时不会改变。打印时,元素会出现在的每页的固定位置。fixed 属性会创建新的层叠上下文。当元素祖先的 transform 属性非 none 时,容器由视口改为该祖先。

现在有这样的一段 HTML 结构

<body>
  <header>
  </header>
  <main>
  </main>
  <footer>
  </footer>
</body>

我希望 <footer> 是固定定位的的 position: fixed; width: 100%;body 的宽度没有限制的时候是没有问题的, 但是加以限制, 比如最大的宽度是 780px 的时候 <footer> 就会在右侧溢出来 这里的宽度没有跟随 body 变动, 而是整个文档的宽度, 把代码里的注释消掉就会发现这种变化. 元素在固定定位之后, 不加方位属性限定, 默认是贴在最上, bottom top left 以及 right 属性的值具体是多少由父元素决定. 元素的 100% 宽度并非是相对于父元素, 而是相对于整个文档而言。

那么如何调整固定定位元素的宽度? 可以给该元素的父元素加 transformnone 的值。比如 scale(1) , 但是这样的话, fixed 就只去了本身的意义, 变得跟 absolute 一样,简直蛋疼, 还不如直接用绝对定位。jsbin 的代码在这儿 Here
。 所以第二个方案就是用 js 把元素的宽度直接赋值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,868评论 1 92
  • 本文为纯理论文章,没有 Demo,没有配图,可能会略微枯燥。大家都知道,position:fixed在日常的页面布...
    __越过山丘__阅读 898评论 1 2
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,523评论 0 5
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,110评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,288评论 19 139