【前端】iframe是inline元素,inline元素也可以设置尺寸
2017-01-11 00:00
253 查看
起源:html5文档规范,框架中tab组件里使用url定义内容时,出现了双层滚动条。而使用html 4.01 transitional则无此现象。
简化代码后,div(overflow:auto)中放置一个iframe,宽高均设为100%,就会出现滚动条,iframe下表现出一小段留白。这个现象曾经出现在<img>标签上,基本是源于inline或inline-block元素的默认vertical-align为baseline。解决办法是:display:block 或 vertical-align:top。
到此这个问题已经解决,但是审查元素的时候,不小心看到<iframe>默认的display是inline,而不是inline-block,再深究,甚至连<img>也是inline的。
一直以来都认为<img>是inline-block的元素,因为它允许设置宽高。而<span>之类的inline元素是不支持尺寸的设置的。但为什么审查元素时看到的默认样式是inline呢?
- img元素通过src属性的值来读取图片信息并显示出来,而如果查看(x)html代码,却看不到图片的实际内容,而且img元素的内容通常会被src属性指定的图像替换掉;
- input元素的type属性决定是显示输入框,还是单选按钮等。
使用CSS的content属性插入的对象是匿名替换元素。
以上这些元素都没有实际的内容。
与之相对的,其他元素被称为非替换元素,行内非替换(inline no-replace )元素的宽是不确定的。
=======================举 栗 子=======================
示例以HTML5规范展现
替换元素可以设置尺寸:
非替换元素设置padding不会影响父元素的尺寸:
=======================小 贴 士=======================
要想替换元素居中,可以设置:
line-height = height
或
vertral-align = middle
要想消除inline或inline-block元素下方的留白,可以设置:
display:block
或
vertical-align:top|middle|bottom
或为父元素添加样式:
font-size:0
简化代码后,div(overflow:auto)中放置一个iframe,宽高均设为100%,就会出现滚动条,iframe下表现出一小段留白。这个现象曾经出现在<img>标签上,基本是源于inline或inline-block元素的默认vertical-align为baseline。解决办法是:display:block 或 vertical-align:top。
到此这个问题已经解决,但是审查元素的时候,不小心看到<iframe>默认的display是inline,而不是inline-block,再深究,甚至连<img>也是inline的。
一直以来都认为<img>是inline-block的元素,因为它允许设置宽高。而<span>之类的inline元素是不支持尺寸的设置的。但为什么审查元素时看到的默认样式是inline呢?
这里就需要引入另一个概念:替换元素,就是浏览器根据元素的标签和属性,来决定元素的具体显示内容。CSS渲染模型不考虑替换元素内容的渲染。这些替换元素的展现独立于CSS。
html中的img , input , textarea , select , object, iframe等都是替换元素。- img元素通过src属性的值来读取图片信息并显示出来,而如果查看(x)html代码,却看不到图片的实际内容,而且img元素的内容通常会被src属性指定的图像替换掉;
- input元素的type属性决定是显示输入框,还是单选按钮等。
使用CSS的content属性插入的对象是匿名替换元素。
以上这些元素都没有实际的内容。
与之相对的,其他元素被称为非替换元素,行内非替换(inline no-replace )元素的宽是不确定的。
=======================举 栗 子=======================
示例以HTML5规范展现
<div style="background: #f00;"> <input class="el" type="button" value="替换元素" /> </div> <p></p> <p></p> <div style="background: #f00;"> <span class="el">非替换元素</span> </div>
替换元素可以设置尺寸:
.el{ height:50px; background:#ff0; }
非替换元素设置padding不会影响父元素的尺寸:
el{ padding:10px; background:#ff0; }
=======================小 贴 士=======================
要想替换元素居中,可以设置:
line-height = height
或
vertral-align = middle
要想消除inline或inline-block元素下方的留白,可以设置:
display:block
或
vertical-align:top|middle|bottom
或为父元素添加样式:
font-size:0
相关文章推荐
- HTML5_CSS入门(尺寸大小、颜色单位、溢出、哪些元素可以设置尺寸、边框,边框倒角、边框阴影,轮廓)
- 可以设置inline元素的padding和margin吗?
- 【前端攻城狮之路】为何img、input等内联元素可以设置宽、高?——替换元素的引出
- CSS实现垂直居中的常用方法 在前端开发过程中,盒子居中是常常用到的。其中 ,居中又可以分为水平居中和垂直居中。水平居中是比较容易的,直接设置元素的margin: 0 auto就可以实现。但是垂直
- CSS3 GENERATOR可以同时为一个元素完成border-radius、box-shadow、gradient和opacity多项属性的设置
- 怎样使绝对定位的子元素铺满父元素并且子元素可以设置padding
- 关于行内元素可以设置padding,border的测试
- 关于行内元素可以设置padding,border的测试
- extjs中Toolbar的items元素,可以设置宽度么
- 设置Iframe 中某元素的值
- (转)获取/设置IFRAME内对象元素的几种JS方法
- 怎么设置iframe的style让看起来没有凹下去?IFRAME 跟FRAME 一样可以拖动大小?
- 行内元素在为什么设置浮动后可以设置高宽??
- 【转】获取/设置IFRAME内对象元素的几种JS方法
- jquery盒模型元素尺寸设置
- 2015.5.2-2015.5.8 Tip jQuery ,前端组件库,inline-block元素间距等
- (转)css 相对定位 绝对定位 浮动 CSS 相对定位 相对定位是一个非常容易掌握的概念。如果对一个元素进行相对定位,它将出现在它所在的位置上。然后,可以通过设置垂直或水平位置,让这个元素“相对于”
- 可以给img元素设置背景图
- javascript 如何查询、设置元素尺寸
- 前端新手——适配不同手机端页面的方案,动态查询dpr设置根元素font-size