前言
在使用 CSS 进行布局的时候,我们通常会用到 div 布局和 float padding margin position 之类的CSS属性,使用不同的组合可以得出很多的布局方案。本篇介绍的是三栏布局方案中的双飞翼布局和圣杯布局,它们解决的问题是一样的:左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化。它们的实现方案在前半部分大同小异,不同之处是如何使中间部分的内容不被两侧遮挡。
准备阶段
此部分属于双飞翼布局和圣杯布局实现方案的前半部分,实现原理是利用 float 和 negative margin 技术。可以按以下步骤进行:
-
按 middle left right 的顺序写出三个 div ,设置 left 和 right 固定宽度分别为 190px , 220px (可以给这三栏都加上 min-height ,让它们的初始高度一致。还可以给作为容器的 container 加上 min-width ,以避免窗口宽度缩小时,中间部分消失的问题)
-
给这三栏都加上 float: left
-
给 middle 加上 width: 100% ,这时候 left 和 right 会被挤下去
-
给 left 加上 margin-left: -100% ,拉到 middle 的左边
-
给 right 加上 margin-left: -220 px ,拉到 middle 的右边
在准备阶段完成后,中间部分的内容会被两侧遮挡到,接下来分别介绍两种布局对于该问题的解决方案。
解决方案
双飞翼布局
给 middle 加一层包裹 middle-wrap ,并设置其 margin: 0 220px 0 190px
以下是完整的代码实现:
<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="UTF-8"> <title>双飞翼布局</title> <styletype="text/css"> *{ margin: 0; padding: 0; } .middle, .left, .right{ float: left; min-height: 200px; } .middle{ width: 100%; background-color: green; } .middle-wrap{ margin: 0 220px 0 190px; } .left{ width: 190px; margin-left: -100%; background-color: red; } .right{ width: 220px; margin-left: -220px; background-color: blue; } .container{ min-width: 600px; } .header, .footer{ text-align: center; background-color: yellow; } .footer{ clear: both; } </style></head> <body> <divclass="header"> <h2 id="header">header</h2> </div> <divclass="container"> <divclass="middle"> <divclass="middle-wrap"> <h2 id="middle">middle</h2> </div> </div> <divclass="left"> <h2 id="left">left</h2> </div> <divclass="right"> <h2 id="right">right</h2> </div> </div> <divclass="footer"> <h2 id="footer">footer</h2> </div></body> </html>
圣杯布局
-
给这三栏的容器 container 加上 padding: 0 220px 0 190px,这会使整个容器左右两边各留出 190px 和 220px 的 padding 。
-
对 left 和 right 设置相对定位 position: relative 和偏移量,从而将它们移动到左右两边的 padding 中。
以下是完整的代码实现:
<!DOCTYPEhtml><htmllang="en"> <head> <metacharset="UTF-8"> <title>圣杯布局</title> <styletype="text/css"> *{ margin: 0; padding: 0; } .middle, .left, .right{ float: left; min-height: 200px; } .left, .right{ position: relative; } .middle{ width: 100%; background-color: green; } .left{ width: 190px; margin-left: -100%; left: -190px; background-color: red; } .right{ width: 220px; margin-left: -220px; right: -220px; background-color: blue; } .container{ padding: 0 220px 0 190px; min-width: 600px; } .header, .footer{ text-align: center; background-color: yellow; } .footer{ clear: both; } </style></head> <body> <divclass="header"> <h2 id="header">header</h2> </div> <divclass="container"> <divclass="middle"> <h2 id="middle">middle</h2> </div> <divclass="left"> <h2 id="left">left</h2> </div> <divclass="right"> <h2 id="right">right</h2> </div> </div> <divclass="footer"> <h2 id="footer">footer</h2> </div></body> </html>
结论
-
两种布局都可以实现中间内容最先加载。
-
相比圣杯布局,双飞翼布局多创建了一个 div ,但不用相对定位。双飞翼布局兼容性很好,可以兼容到IE6。此处的圣杯布局经个人测试,可以兼容到IE8。
参考文章
CSS布局 — 圣杯布局 & 双飞翼布局
双飞翼布局介绍-始于淘宝UED
圣杯布局
CSS布局终极方案之–圣杯布局
HTML、CSS和JavaScript是构建现代网页的核心技术:1.HTML定义网页结构,2.CSS负责网页外观,3.JavaScript提供网页动态和交互性,它们共同作用,打造出用户体验良好的网站。

HTML的功能是定义网页的结构和内容,其目的在于提供一种标准化的方式来展示信息。1)HTML通过标签和属性组织网页的各个部分,如标题和段落。2)它支持内容与表现分离,提升维护效率。3)HTML具有可扩展性,允许自定义标签增强SEO。

HTML的未来趋势是语义化和Web组件,CSS的未来趋势是CSS-in-JS和CSSHoudini,JavaScript的未来趋势是WebAssembly和Serverless。1.HTML的语义化提高可访问性和SEO效果,Web组件提升开发效率但需注意浏览器兼容性。2.CSS-in-JS增强样式管理灵活性但可能增大文件体积,CSSHoudini允许直接操作CSS渲染。3.WebAssembly优化浏览器应用性能但学习曲线陡,Serverless简化开发但需优化冷启动问题。

HTML、CSS和JavaScript在Web开发中的作用分别是:1.HTML定义网页结构,2.CSS控制网页样式,3.JavaScript添加动态行为。它们共同构建了现代网站的框架、美观和交互性。

HTML的未来充满了无限可能。1)新功能和标准将包括更多的语义化标签和WebComponents的普及。2)网页设计趋势将继续向响应式和无障碍设计发展。3)性能优化将通过响应式图片加载和延迟加载技术提升用户体验。

HTML、CSS和JavaScript在网页开发中的角色分别是:HTML负责内容结构,CSS负责样式,JavaScript负责动态行为。1.HTML通过标签定义网页结构和内容,确保语义化。2.CSS通过选择器和属性控制网页样式,使其美观易读。3.JavaScript通过脚本控制网页行为,实现动态和交互功能。

HTMLISNOTAPROGRAMMENGUAGE; ITISAMARKUMARKUPLAGUAGE.1)htmlStructures andFormatSwebContentusingtags.2)itworkswithcsssforstylingandjavascript for Interactivity,增强WebevebDevelopment。

HTML是构建网页结构的基石。1.HTML定义内容结构和语义,使用、、等标签。2.提供语义化标记,如、、等,提升SEO效果。3.通过标签实现用户交互,需注意表单验证。4.使用、等高级元素结合JavaScript实现动态效果。5.常见错误包括标签未闭合和属性值未加引号,需使用验证工具。6.优化策略包括减少HTTP请求、压缩HTML、使用语义化标签等。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载
最流行的的开源编辑器

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Linux新版
SublimeText3 Linux最新版