【HTML+CSS】教你切图篇4-iframe布局、多列布局实现
2017-08-22 17:51
253 查看
iframe框架布局;
项目中经常会使用到iframe,iframe虽然比较多毛病,也比较老了,但是有些项目还是需要,一般项目情况如下图:
![](http://note.youdao.com/yws/res/703/WEBRESOURCEc8456cfa8bca64d192a9f1a8c86215d9)
一般需求:让iframe区域填充满内容div区域,并且窗口大小改变时自适应。
以往的解决方法是通过js判断window的宽高,然后使用窗口宽高减去左侧和头部的尺寸得到iframe的高度,并且添加窗口resize事件函数,当窗口尺寸改变时,重新执行宽高计算方法。这种方式缺点是js运行开销大,每次窗口改变大小都需要重新执行js,对浏览器极不友好。
改进方法:通过css进行布局,重点强调一个原则:能用css进行布局绝不用js控制。
实现方式图解如下:通过利用css的border-box属性,在iframe区域外面套一个iframe-content类名div,box-sizing从IE8开始兼容,IE7的同学,还是乖乖写js吧。
![](http://note.youdao.com/yws/res/693/WEBRESOURCE0a1ba2e2ebe821111b488400526c73a4)
具体css如下:
.frame-content{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
padding-top: 80px;//头部高度
padding-left:200px;//左侧菜单宽度
box-sizing:border-box;
}
.frame-content iframe{
display: block;
width: 100%;
height: 100%;
}
.header{
position:absolute;
left:0;
top:0;
width:100%;
height:80px;
z-index:2;
}
.left-menu{
position:absolute;
left:0;
top:0;
padding-top:80px;
width:200px;
height:100%;
overflow-y:auto;
z-index:1;
box-sizing:border-box;
}
多列布局;
多列布局参考bootstrap栅格结构,审查元素就可以知道实现方法。
以12列为例,实现原理是将总体宽度分成12等分,通过div占比设定宽度,块与块之间间距用padding模拟,这样的话在屏幕分辨率改变时,媒体查询分辨率,设置相应的块占比大小,可以达到自适应的效果。
下面简单介绍一种实现:
![](http://note.youdao.com/yws/res/741/WEBRESOURCE69f573e6e1039fca5cd3df0fa07a28a4)
body{
background-color:#f5f5f5;
padding:20px 10px 10px 10px;
}
.col-1{width: 8.33%;}
.col-2{width: 16.66%;}
.col-3{width: 25%;}
.col-4{width: 33.33%;}
.col-5{width: 41.66%;}
.col-6{width: 50%;}
.col-7{width: 58.33%;}
.col-8{width: 66.66%;}
.col-9{width: 75%;}
.col-10{width: 83.33%;}
.col-11{width: 91.66%;}
.col-12{width: 100%;}
.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{
float: left;
box-sizing:border-box;
padding-right: 10px;//左右加起来20px间距
padding-left: 10px;
margin-bottom: 20px;//下间距为20px
}
鼠标移入显示多色图片;
最近在网上看到灰色赞助商图标,鼠标移入变成彩色的效果。
![](http://note.youdao.com/yws/res/760/WEBRESOURCE6a34b16e6511719cd35b4204dc91f0e9)
审查元素,看到实现方式也比较简单,分享css如下:
img {
transition: all 0.3s ease;
filter: grayscale(100%);//关键属性,将图片变成灰度图
opacity: 0.66;
}
img:hover {
filter: none;
opacity: 1;
}
有木有很神奇。
Author:事始
Sign:只要你还在尝试,就不算失败。
项目中经常会使用到iframe,iframe虽然比较多毛病,也比较老了,但是有些项目还是需要,一般项目情况如下图:
一般需求:让iframe区域填充满内容div区域,并且窗口大小改变时自适应。
以往的解决方法是通过js判断window的宽高,然后使用窗口宽高减去左侧和头部的尺寸得到iframe的高度,并且添加窗口resize事件函数,当窗口尺寸改变时,重新执行宽高计算方法。这种方式缺点是js运行开销大,每次窗口改变大小都需要重新执行js,对浏览器极不友好。
改进方法:通过css进行布局,重点强调一个原则:能用css进行布局绝不用js控制。
实现方式图解如下:通过利用css的border-box属性,在iframe区域外面套一个iframe-content类名div,box-sizing从IE8开始兼容,IE7的同学,还是乖乖写js吧。
具体css如下:
.frame-content{
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
padding-top: 80px;//头部高度
padding-left:200px;//左侧菜单宽度
box-sizing:border-box;
}
.frame-content iframe{
display: block;
width: 100%;
height: 100%;
}
.header{
position:absolute;
left:0;
top:0;
width:100%;
height:80px;
z-index:2;
}
.left-menu{
position:absolute;
left:0;
top:0;
padding-top:80px;
width:200px;
height:100%;
overflow-y:auto;
z-index:1;
box-sizing:border-box;
}
多列布局;
多列布局参考bootstrap栅格结构,审查元素就可以知道实现方法。
以12列为例,实现原理是将总体宽度分成12等分,通过div占比设定宽度,块与块之间间距用padding模拟,这样的话在屏幕分辨率改变时,媒体查询分辨率,设置相应的块占比大小,可以达到自适应的效果。
下面简单介绍一种实现:
body{
background-color:#f5f5f5;
padding:20px 10px 10px 10px;
}
.col-1{width: 8.33%;}
.col-2{width: 16.66%;}
.col-3{width: 25%;}
.col-4{width: 33.33%;}
.col-5{width: 41.66%;}
.col-6{width: 50%;}
.col-7{width: 58.33%;}
.col-8{width: 66.66%;}
.col-9{width: 75%;}
.col-10{width: 83.33%;}
.col-11{width: 91.66%;}
.col-12{width: 100%;}
.col-1,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-10,.col-11,.col-12{
float: left;
box-sizing:border-box;
padding-right: 10px;//左右加起来20px间距
padding-left: 10px;
margin-bottom: 20px;//下间距为20px
}
鼠标移入显示多色图片;
最近在网上看到灰色赞助商图标,鼠标移入变成彩色的效果。
审查元素,看到实现方式也比较简单,分享css如下:
img {
transition: all 0.3s ease;
filter: grayscale(100%);//关键属性,将图片变成灰度图
opacity: 0.66;
}
img:hover {
filter: none;
opacity: 1;
}
有木有很神奇。
Author:事始
Sign:只要你还在尝试,就不算失败。
相关文章推荐
- 利用HTML和CSS实现常见的布局
- HTML CSS + DIV实现局部布局
- 利用HTML和CSS实现常见的布局
- HTML CSS + DIV实现整体布局
- 根据HTML+CSS完成一个三列布局,左右侧栏宽为180px,高为300px;中间栏自适应,高为300px;中间栏子元素(宽高不确定)实现水平、垂直居中。
- HTML/CSS实现文字环绕图片布局
- 利用html和css实现常见的布局
- HTML CSS + DIV实现局部布局
- 利用HTML和CSS实现常见的布局
- 利用HTML和CSS实现常见的布局
- 【前端】纯html+css+javascript实现楼层跳跃式的页面布局
- .使用 HTML+CSS 实现如图布局,border-widht 5px,一个格子大小是 50*50,hover时候边框变为红色(兼容IE6+,考虑语义化的结构)
- 利用HTML和CSS实现常见的布局
- HTML CSS + DIV实现整体布局
- 【小细节】利用基础HTML和CSS实现企业最常见的布局
- 利用HTML和CSS实现常见的布局
- HTML CSS + DIV实现整体布局
- html+css 实现图片整体布局效果
- 利用HTML+CSS实现常见的单列布局
- html+css:一个自适应的两栏布局的实现