CSS3区域模块region相关编写示例


Posted in HTML / CSS onAugust 28, 2015

印刷媒体,例如一本杂志或一份报纸,相比网站最大的优势是完全灵活的安排页面和段落布局。例如,印刷媒体已经能够优雅地在多个列中填充内容,甚至复杂到如下面屏幕截图所示。
CSS3区域模块region相关编写示例

然而,由于Web的内容结构,试图在web上模仿类似的布局非常棘手。
为了使页面布局更加灵活到如印刷媒体一般,一个新的CSS3模块出现了——CSS3 regions。相比通常的在多个元素中放置内容,此模块允许内容流在页面的指定区域(regions)放置。

让我们看看这个模块是如何工作的。

大家在理解css region的时候,可以这么理解,我在文档中放了一个容器,这个容器装满了水。但是我想把水分到a区域 b区域 c区域,我不需要人工去“分”这个水,而是让浏览器去分配这些水到这些区域内。因此水装到哪个容器是无所谓的,分完了就不显示了,你只需要告诉区域跟大容器,区域是放水的地方,容器是取水的地方即可。
启用浏览器实验特性

此模块仍处于实验阶段,目前只在Google Chrome和ie下面支持带前缀的属性。如果您使用的是Google Chrome首先需要启用实验特性。在地址栏输入chrome:/ /flags/。设置”启用实验WebKit特性”为enabled状态。
CSS3区域模块region相关编写示例

基本用例

在这个例子中,我们将有两个类型的内容:主要内容和次要内容。区域1,2和4中我们填充主要内容,而次要内容将显示在区域3,见下图。
CSS3区域模块region相关编写示例

HTML

让我们开始写HTML结构。

CSS3区域模块是不受结构限制的,因此我们可以简单地把次要内容部分的html添加到主要内容外,正如我们上面提到的,我们将在主要内容的中部显示次要内容。

XML/HTML Code复制内容到剪贴板
  1. <header class="cf">  
  2.     <h1><span>Lorem ipsum dolor sit amet,</span> consectetur adipisicing elit, sed do eiusmod tempor incididunt ut.</h1>  
  3.     <h2>labore et dolore magna aliqua</h2>  
  4. </header>  
  5.   
  6. <article class="cf">  
  7.     <p>Lorem ipsum dolor sit amet, consectetur ...</p>  
  8. </article>  
  9.   
  10. <aside>  
  11.     <p><img src="img/stat.jpg" width="500" height="300"></p>  
  12.     <p>Lorem ipsum dolor sit amet, consectetur ...</p>  
  13. </aside>  

然后,我们需要添加区域标记来标记内容流向什么区域。添加标记的区域是否高于或低于实际内容是没有什么影响的。

这里的意思是 假设有个div里面装了很多文字,你要把这些文字流向另一个div中,这个div放到哪都是无所谓的。

XML/HTML Code复制内容到剪贴板
  1. <div class="regions cf">   
  2.     <div id="region-1" class="region cf"></div>   
  3.     <div id="region-2" class="region"></div>   
  4.     <div id="region-3" class="region"></div>   
  5.     <div id="region-4" class="region cf"></div>   
  6. </div>   

CSS

在样式表中,我们指定区域的宽度和高度。高度是必须的,因为高度指定内容断点,否则内容不会流向其他区域。

这里的意思是高度规定这个容器能容纳多少内容,超过了则会流向其他容器。——@99

CSS Code复制内容到剪贴板
  1. .demo-wrapper #region-1,   
  2. .demo-wrapper #region-4  {   
  3.     width: 100%;   
  4.     height250px;   
  5. }   
  6. .demo-wrapper #region-4 {   
  7.     height400px;   
  8. }   
  9. .demo-wrapper #region-2,   
  10. .demo-wrapper #region-3 {   
  11.     width: 50%;   
  12.     height700px;   
  13.     margin-bottom25px;   
  14. }  

为了在区域内添加内容,我们使用新的CSS属性flow-into和flow-from。这些属性建立了内容和区域的桥梁。我们可以如下编写样式规则来使内容流向区域。

这个地方flow-into跟flow-from后面的单词是你自己定义的!比如说我想把a容器的文字流b c区域,我可以设置flow-into:a或者你能想象到的任何名称,之后用flow-from:你刚才用的名称。

CSS Code复制内容到剪贴板
  1. article {   
  2.     -webkit-flow-into: article;   
  3.     flow-into: article;   
  4. }   
  5. .demo-wrapper aside {   
  6.     -webkit-flow-into: aside;   
  7.     flow-into: aside;   
  8. }   
  9. #region-1,   
  10. #region-2,   
  11. #region-4 {   
  12.     -webkit-flow-from: article;   
  13.     flow-from: article;   
  14. }   
  15. #region-3 {   
  16.     -webkit-flow-from: aside;   
  17.     flow-from: aside;   
  18. }  

添加一些额外的css,我们将在浏览器中得到下面的结果。
CSS3区域模块region相关编写示例

HTML / CSS 相关文章推荐
CSS3弹性盒模型开发笔记(三)
Apr 26 HTML / CSS
css3 中实现炫酷的loading效果
Apr 26 HTML / CSS
使用css3实现超炫的loading加载动画效果
May 07 HTML / CSS
HTML5应用之文件上传
Dec 30 HTML / CSS
socket.io 和canvas 实现的共享画板功能
May 22 HTML / CSS
html5实现canvas阴影效果示例
May 07 HTML / CSS
HTML5无刷新改变当前url的代码
Mar 15 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
Jan 10 HTML / CSS
canvas线条的属性详解
Mar 27 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
May 08 HTML / CSS
详解如何解决H5开发使用wx.hideMenuItems无效果不生效
Jan 20 HTML / CSS
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
Apr 07 HTML / CSS
使用CSS3来实现滚动视差效果的教程
Aug 24 #HTML / CSS
CSS3中的opacity属性使用教程
Aug 19 #HTML / CSS
实例讲解CSS3中的border-radius属性
Aug 18 #HTML / CSS
详解CSS3中使用gradient实现渐变效果的方法
Aug 18 #HTML / CSS
全方位了解CSS3的Regions扩展
Aug 07 #HTML / CSS
CSS3中Animation属性的使用详解
Aug 06 #HTML / CSS
利用CSS3的transition属性实现滑动效果
Aug 05 #HTML / CSS
You might like
php中通过smtp发邮件的类,测试通过
2007/01/22 PHP
PHP pathinfo()获得文件的路径、名称等信息说明
2011/09/13 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
php中AES加密解密的例子小结
2014/02/18 PHP
PHP判断上传文件类型的解决办法
2015/10/20 PHP
javascript 的Document属性和方法集合
2010/01/25 Javascript
JavaScript下利用fso判断文件是否存在的代码
2010/12/11 Javascript
基于jquery实现的移入页面上空文本框时,让它变为焦点,移出清除焦点
2011/07/26 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
js实现支持手机滑动切换的轮播图片效果实例
2015/04/29 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
TinyMCE汉化及本地上传图片功能实例详解
2016/05/31 Javascript
使用JS在浏览器中判断当前网络连接状态的几种方法
2017/05/05 Javascript
深入理解react 组件类型及使用场景
2019/03/07 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
[46:47]完美世界DOTA2联赛PWL S2 FTD vs Magma 第二场 11.20
2020/11/23 DOTA
[04:15]DOTA2-DPC中国联赛1月19日Recap集锦
2021/03/11 DOTA
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
解决python 输出是省略号的问题
2018/04/19 Python
Python中logging.NullHandler 的使用教程
2018/11/29 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
对Python的zip函数妙用,旋转矩阵详解
2018/12/13 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Python 3 使用Pillow生成漂亮的分形树图片
2019/12/24 Python
Python连接mysql方法及常用参数
2020/09/01 Python
Django-celery-beat动态添加周期性任务实现过程解析
2020/11/26 Python
纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
2012/12/28 HTML / CSS
MIS软件工程师的面试题
2016/04/22 面试题
给实习单位的感谢信
2014/02/01 职场文书
中班开学寄语
2014/04/04 职场文书
俞敏洪励志演讲稿
2014/04/29 职场文书
支部书记四风对照材料
2014/08/28 职场文书
会计工作检讨书
2015/02/19 职场文书