“自动换列”的CSS设计
来源:互联网 发布:淘宝卖家的钱怎么提 编辑:程序博客网 时间:2024/04/29 22:19
CSS中只有自动换行的概念,常规流中的东西如果无法塞入当前行盒子中就会另起新行来放置。但对于列满的情况并没有“自动换列”的概念,因为对于一个容器而言,行盒子只有一列,即使这一列行盒子超出容器的范围,它也只是撑开或超出容器,不会产生新的列。
但实现起来有点猥琐了。既然CSS有自动换行的性质,那么我们把行和列的概念互换不就可以得到“自动换列”了吗?我们需要对行列转置,并且为了保持内容的方向,也需要让内容反方向转置。这可以直接使用CSS3中的transition来做。<!DOCTYPE html>
<style>
ol {
width:80px;/*表示容器的高度*/
height:450px;/*表示容器的宽度*/
border:1px solid red;overflow:hidden;padding:0px;margin:0px;
margin-bottom:-370px;/*这个值为width-height*/
-webkit-transform-origin:0px 0px;
transform-origin:0px 0px;
-webkit-transform:rotate(-90deg) translate(-80px/*这个值为负的width*/);
transform:rotate(-90deg) translate(-80px/*这个值为负的width*/);
}
li {
width:150px;height:150px;/*这两个值相等,表示子项的宽度*/
margin-right:-130px;/*这个值为lineHeight-width*/
line-height:20px;
list-style-position:inside;float:right;
-webkit-transform-origin:0px 0px;
transform-origin:0px 0px;
-webkit-transform:rotate(90deg) translateY(-20px/*这个值为lineHeight*/);
transform:rotate(90deg) translateY(-20px/*这个值为lineHeight*/);
}
</style>
<ol id="list"></ol>
<input type="button" value="添加项" id="btn" />
<script>
btn.onclick=function(){
var li=document.createElement("li");
li.innerHTML=Date.now();
list.appendChild(li);
};
</script>
转置会带来一些副作用,我们需用用margin来调整。另外由于容器是转置的,所以实际上width表示高度、height表示宽度。
最后是关于低版本IE的兼容问题,我们只用了一些CSS3的变换,这些操作在IE上使用滤镜也能实现,只是性能可能跟不上。但是IE中有其特有的writing-mode样式,它可以直接修改文本的方向,而不需要转置每一个子元素。具体的代码我就不写了,这东西我压根就没打算做低版本IE的兼容,但是非要实现并不是不可以。
- “自动换列”的CSS设计
- div+css 横排自动换列显示
- 三列等宽,自动扩展的 div css
- 陈勇写的换行、换列排放
- 将列的Name换为Comment
- 批处理自动换IP,给经常换IP的人们
- 网页设计:css自动换行
- css隔行换色的方法
- Div+css下HTML设计三列自适应宽度出现换行的解决办法
- DataGrid的自动编号列
- ORACLE的自动增长列
- 自动换行的css
- css三列浮动中间宽度自动适应浏览器
- 用CSS、HTML编写一个两列布局的网页,右侧宽度为200px,左侧自动扩展。
- html css编写一个两列布局的网页,左侧宽度为200px,右侧自动扩展
- 用CSS、HTML编写一个两列布局的网页,右侧宽度为200px,左侧自动扩展。
- css隔行换色
- CSS换肤技术
- hive mapjoin使用
- C语言
- SpringMVC+Hibernate+Spring整合实例(二)
- IT学习资源汇总
- 多线程-linux
- “自动换列”的CSS设计
- C++中try_catch_throw的做异常处理用法
- Android 项目组织和代码的重用
- 法令纹出卖年龄 该如何消除?
- ubuntu常见命令
- Eclipse 没有Existing Folder as New Project
- Android 开发之多线程处理、Handler 详解
- SRM 572 D1L2:EllysBulls,Brute Force,meet in the middle
- 详细解析接口和抽象类的区别——Java