CSS方案总结

一、Sticky Footer效果

无论页面内容高度如何变化,footer始终在页面底部的固定位置

body { 
    display: flex; //父元素设为flex布局
    flex-flow: column; //设为列布局,否则所有元素会在一行显示
    min-height: 100vh; //设置body最小高度,让<body>内容不足视窗高度时也能占据整个视窗
  } 

/*高度会变化的主要部分,footer就会被挤到下一行,从而实现
footer在页面高度变化时始终在页面底部的固定位置*/
.main { 
    flex: 1; 
  }

二、垂直居中

1、绝对定位实现

.main { 
  position: absolute; 
  top: 50%; 
  left: 50%; 
  transform: translate(-50%, -50%); 
}

缺点:

  • 绝对定位通常不是一个很好的选择,因为它对整体的布局影响相当的大。
  • 如果垂直居中元素的内容比视窗高度更高的话,它的顶部会被裁剪掉。但是这个问题可以解决,只不过需要使用一些Hack手段。
  • 在一些浏览器中,可能会导致元素出现略微的模糊,那是因为元素有可能被放置在半个像素位置上。我们可以通过transform-style:preserve-3d来解决,尽管这是一个Hack手段,不能保证它不会过时。

2、在视窗中垂直居中

main { 
  width: 18em; 
  padding: 1em 1.5em; 
  margin: 50vh auto 0; 
  transform: translateY(-50%); 
}

三、流体背景,固定宽度内容

  • 有多个内容部分<section>,每个内容都占据整个视窗宽度而且都有不同的背景。
  • 固定宽度的内容,即使宽度会根据不同的媒体查询修改。在某些情况之下,不同的区域<section>会有不同的内容宽度著作权归作者所有。
    完成这样的效果最常见的方法就是使用两个元素,一个用于流体的背景,另一个用于固定宽度的内容。后者使用margin: auto,让内容保持水平居中。例如,页脚的区域,他的结构如下:
<footer>
    <div class="wrapper">
        <!-- 这里放页脚的内容 -->
    </div>
</footer>

CSS通常这样写:

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

四、

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,294评论 1 92
  • 1. 前言 前端圈有个“梗”:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在...
    YjWorld阅读 4,991评论 5 15
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 2,187评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,479评论 0 11
  • 一棵长满故事的树 不知多久以前 脑海里总浮现出 一棵长满故事的树 也许是从第一个故事开始的时候 …… 每一个故事都...
    赤脚小人鱼阅读 520评论 0 1

友情链接更多精彩内容