萌新的HTML5 入门指南(3)
<body> <header><h1>Welcome to HTML5 World!</h1></header> <section class="designerContainer"> <aside class="designerAside"> <div style="width:180px">Aside</div> </aside> <main class="designerMain"> </main> </section> <footer><h3>Copyright © 2020 GrapeCity inc.</h3></footer> </body> css: html, body{ margin: 0; padding: 0; } body{ height: 100vh; display: flex; flex-direction: column; } h1, h2, h3 { font-family: Avenir, Helvetica, Arial, sans-serif; text-align: center; color: #2c3e50; margin-block-start: 0; margin-block-end: 0; padding: 15px; } .designerContainer{ padding: 10px; flex: 1; display: flex; background: gray; } .designerAside{ text-align: center; background: gold; } .designerMain{ display: flex; flex: 1 100%; padding: 0 0 0 10px; background: pink; } 效果如下: 对比自适应布局,上面的代码有以下特点: 页面使用HTML5语义化标签,页面各部分功能清晰。 body设置高度 100vh, 这里使用了CSS3 的新单位vh,即 view height 视窗高度,100vh相当于html, body 高度100%,同样还有vw代表视窗宽度 body设置flex布局,方向从上到下叠放 designerContainer 设置flex 1,自动充满header和footer之外剩余空间 container内部依旧flex布局,designerMain 设置 flex 1,自动充满aside剩余空间 Flex兼容性注意事项: l IE9不支持FLEX,建议IE11 l Safari 和 IOS 需要加 -webkit- (编辑:ASP站长网) |