第 29 章 CSS3 弹性伸缩布局[上]_html/css_WEB-ITnose
学习要点:
1.布局简介
2.旧版本
主讲教师:李炎恢
本章主要探讨 HTML5 中 CSS3 提供的用来实现未来响应式弹性伸缩布局方案,这里做一个初步的了解。
一.布局简介
CSS3 提供一种崭新的布局方式:Flexbox 布局,即弹性伸缩布局模型(Flexible Box)。用来提供一个更加有效的方式实现响应式布局。但是用于这个布局方式还处于 W3C 的草案阶段,并且它还分为旧版本、新版本以及混合过渡版本三种不同的编码方式。在发展中,可能还有各种改动,浏览器的兼容性还存在问题。所以,本节课作为初步了解即可。
首先,我们来看下旧版本的浏览器兼容情况:
Flexbox 旧版本兼容情况
属性 | IE | Firefox | Chrome | Opera | Safari |
带前缀 | 无 | 4 ~ 25 | 4 ~ 31 | 15 ~ 18 | 5.17+ |
不带前缀 | 无 | 无 | 无 | 无 | 无 |
以上的数据,我们摘自 CSS3 手册上的。当然,不同的教材和文章的会略有不同。但误差率也就一到两个版本,影响不大。
首先,第一步:先创建一段内容,分成三个区域。
//HTML 部分
<div> <p> 第一段内容... </p> <p> 第二段内容... </p> <p> 第三段内容... </p></div>
//CSS 部分
p { width: 150px; border: 1px solid gray; margin: 5px; padding: 5px;}div { display: -moz-box; display: -webkit-box; display: box;}
通过以上设置,在除了 IE 浏览器外,布局实现了水平分布。那么下面,我们就重点研究一下这些属性的含义。
二.旧版本
如果属性和属性值为:display:box,那么就是 2009 年 7 月份设定的工作草案,属于旧版本。它面向的是一些早期浏览器的弹性布局方案。
首先,我们要将几个需要布局模块的父元素设置一下容器属性 display。
属性值 | 说明 |
box | 将容器盒模型作为块级弹性伸缩盒显示(旧版本) |
inline-box | 将容器盒模型作为内联级弹性伸缩盒显示(旧版本) |
我们知道块级它是占用整行的,类似
//设置弹性,以火狐为例
div { display: -moz-box;}
1.box-orient 属性
box-orient 主要实现盒子内部元素的流动方向。
//设置垂直流动
div { -webkit-box-orient: vertical;}
属性值 | 说明 |
horizontal | 伸缩项目从左到右水平排列 |
vertical | 伸缩项目从上到下垂直排列 |
inline-axis | 伸缩项目沿着内联轴排列显示 |
block-axis | 伸缩项目沿着块轴排练显示 |
2.box-direction
box-direction 属性主要是设置伸缩容器中的流动顺序。
//设置逆序
div { -moz-box-direction: reverse;}
属性值 | 说明 |
normal | 默认值,正常顺序 |
reverse | 逆序 |
3.box-pack
box-pack 属性用于伸缩项目的分布方式。
//分布方式已结束位置靠齐
div { -moz-box-pack: end;}
属性值 | 说明 |
start | 伸缩项目以起始点靠齐 |
end | 伸缩项目以结束点靠齐 |
center | 伸缩项目以中心点靠齐 |
justify | 伸缩项目平局分布,-webkit-支持,-moz-不支持 |
4.box-align
box-align 属性用来处理伸缩容器的额外空间。//居中对齐,清理上下额外空间
div { -moz-box-align: center;}
属性值 | 说明 |
start | 伸缩项目以顶部为基准,清理下部额外空间 |
end | 伸缩项目以底部为基准,清理上部额外空间 |
center | 伸缩项目以中部为基准,平均清理上下部额外空间 |
baseline | 伸缩项目以基线为基准,清理额外的空间 |
stretch | 伸缩项目填充整个容器,默认 |
5.box-flex
box-flex 属性可以使用浮点数分配伸缩项目的比例//设置每个伸缩项目占用的比例
p:nth-child(1) { -moz-box-flex: 1;}p:nth-child(2) { -moz-box-flex: 2.5;}p:nth-child(3) { -moz-box-flex: 1;}
6.box-ordinal-group
box-ordinal-group 属性可以设置伸缩项目的显示位置。
//将第一个位置的元素,跳转到第三个位置
p:nth-child(1) { -moz-box-ordinal-group: 3;}

热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

本文讨论了HTML&lt; Progress&gt;元素,其目的,样式和与&lt; meter&gt;元素。主要重点是使用&lt; progress&gt;为了完成任务和LT;仪表&gt;对于stati

本文讨论了html&lt; datalist&gt;元素,通过提供自动完整建议,改善用户体验并减少错误来增强表格。Character计数:159

本文讨论了HTML&lt; meter&gt;元素,用于在一个范围内显示标量或分数值及其在Web开发中的常见应用。它区分了&lt; meter&gt;从&lt; progress&gt;和前

本文讨论了视口元标签,这对于移动设备上的响应式Web设计至关重要。它解释了如何正确使用确保最佳的内容缩放和用户交互,而滥用可能会导致设计和可访问性问题。

本文讨论了&lt; iframe&gt;将外部内容嵌入网页,其常见用途,安全风险以及诸如对象标签和API等替代方案的目的。

HTML适合初学者学习,因为它简单易学且能快速看到成果。1)HTML的学习曲线平缓,易于上手。2)只需掌握基本标签即可开始创建网页。3)灵活性高,可与CSS和JavaScript结合使用。4)丰富的学习资源和现代工具支持学习过程。

HTML定义网页结构,CSS负责样式和布局,JavaScript赋予动态交互。三者在网页开发中各司其职,共同构建丰富多彩的网站。

AnexampleOfAstartingTaginHtmlis,beginSaparagraph.startingTagSareEssentialInhtmlastheyInitiateEllements,defiteTheeTheErtypes,andarecrucialforsstructuringwebpages wepages webpages andConstructingthedom。
