首页 > 代码库 > 为什么在input中加了display:inline;再加宽,还有作用?
为什么在input中加了display:inline;再加宽,还有作用?
以前一直一位input是个行内元素,但是,行内元素的特性就是没有宽高的概念,元素多高,多宽,全凭内容撑起来的。
但是今天写了个demo,用chrome控制台显示:display:inline-block。
但是给label和input同时加上宽度和高度,input的高宽居然变了,但是奇怪的是在IE6.0下居然也生效,IE6.0不是不支持inline-block么?demo如下:
<!DOCTYPE html>
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <style type="text/css"> label {width:500px;height:50px;} input {width:200px;height:50px;} </style> </head> <body> <label for="mail">email</label> <input id="mail" type="text" /> </body> </html>
搜翻看论坛的过程中,得到的解释是:input和img属于可置换inline元素(Replaced element),可置换元素拥有内在尺寸(intrinsic dimensions),所以说他是天生的inline-block。
另外了解到inline-block就是由 替换元素 演变而来,IE没有将二者区分开,此外,inline-block 在 CSS 2.1 中才正式确定,而 IE6 的诞生远早于 CSS 2.1。
通过审查元素,IE7下input是属于inline标签,IE8及以上就都是display:inline-block;
下图是关于display的声明,网站原地址
另外label标签是是属于inline元素,这个没啥问题。
当然了,你如果将input人为设置为block,它自然是独占一行了,如下图
当你将input设置了float属性,它会脱离文档流,就没有换行,多个input会在一行上面。 如下图:
为什么在input中加了display:inline;再加宽,还有作用?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。