css 布局

摘要:
3、元素默认以何种display属性值显示出来,这个其实更多的时候是由浏览器决定的,下面是部分浏览器input元素默认CSS:IE6、IE7、IE8、IE9(部分)background-color:#FFF;border-2px;font-family:sans-serif;font-size:10pt;overflow:hidden;padding:1px;zoom:1;Webkit-r61376input,textarea,keygen,select,button,isindex,datagrid{margin:0__qem;font:-webkit-small-control;color:initial;letter-spacing:normal;word-spacing:normal;line-height:normal;text-transform:none;text-indent:0;text-shadow:none;display:inline-block;text-align:-webkit-auto;}input[type="search"]{-webkit-appearance:searchfield;-webkit-box-sizing:border-box;}我们可以看到在IE中,input默认样式zoom:1;overflow:hidden;都是触发了hasLayout或者Blockformattingcontexts。webkit内核浏览器中是默认定义为inline-block的,firefox和opera默认没有定义任何display属性值。

http://www.iyunlu.com/view/css-xhtml/64.html

作者:一丝
链接:https://www.zhihu.com/question/20495297/answer/15288789
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
我还是那句话,把某个事物简单的归结为单一的观点都是片面的。
1、楼主主观的认为 input 就是 inline 元素是片面的。
2、@丁小倪 说是 inline-block 也是不全面的,因为 IE8 之前 CSS2.0 标准中是没有 inline-block 这个概念的,但并不代表 IE6-7 不支持 inline-block 的某些特性,详见《inline-block 前世今生》http://www.iyunlu.com/view/css-xhtml/64.html
3、元素默认以何种 display 属性值显示出来,这个其实更多的时候是由浏览器决定的(不同浏览器的差异性,导致我们需要 reset CSS),下面是部分浏览器 input 元素默认 CSS:
IE6、IE7、IE8、IE9(部分)
background-color: #FFF;
border- 2px;
font-family: sans-serif;
font-size: 10pt;
overflow: hidden;
padding: 1px;
zoom: 1;


Webkit-r61376
input, textarea, keygen, select, button, isindex, datagrid {
margin: 0__qem;
font: -webkit-small-control;
color: initial;
letter-spacing: normal;
word-spacing: normal;
line-height: normal;
text-transform: none;
text-indent: 0;
text-shadow: none;
display: inline-block;
text-align: -webkit-auto;
}
input[type="search"] {
-webkit-appearance: searchfield;
-webkit-box-sizing: border-box;
}
我们可以看到在IE中,input 默认样式zoom:1; overflow: hidden;都是触发了 hasLayout 或者 Block formatting contexts。webkit 内核浏览器中是默认定义为 inline-block 的,firefox 和 opera 默认没有定义任何 display 属性值。所以 IE 中 input display 默认属性值并不是 inline-block,只是触发了 hasLayout 或者 BFC使其具有了 inline-block 类似的特性(可设置宽高)。webkit 中如果 input type=search,由于默认的 box-sizing 是 border-box,对其设置宽高和其他浏览器表现出来也是有差异的,所以有时候我们会重置为:
input[type="search"] {
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
-webkit-appearance: textfield;
}
对于@李振洲 的答案无疑是不科学的,没有理论依据。W3C 的具体规范我就不引用了,可以自己去看看。

免责声明:文章转载自《css 布局》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Robot Framework+adb框架实现Android集成自动化测试案例⑶——L3公共层ios 多线程下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

css3动画:执行前不显示,执行后显示

今天做一个轮播,轮播图上使用animation。需求是当滚动到当前图片时,图片中的div从无到有逐渐显示, 遇到的问题是:页面刷新时,此图片上的div可以从无到有,但第二次滚动到此图片时,总是先显示一下div,然后再执行动画 网上查的方法: 1.使用animation-fill-mode,失败 2.animationStart、animationIter...

css动画效果之transition(动画过渡效果属性)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <!-- transition:动画过渡效果属性 功能:使cs...

用css画图标

css3的属性 transform(转换) 用途很广泛,功能也很强大,为了熟悉它的各种转换方式(平移 translate,旋转 rotate,扭曲 skew,放缩 scale),我做了一些平常常用的一些简单的图标。 这些图标很多是通过三角形来拼贴起来的,所以我们需要知道怎么样画三角形。 1. 我们要将该 div 的 width 和 height 都设置为...

JS与CSS阻止元素被选中及清除选中的方法总结

有时候,我们希望阻止用户选中我们指定区域的文字或内容。 举个栗子,有时候用户在一个区域执行频繁的点击操作,一不小心傲娇地点多了,就会选中当前区域的内容。 再举个栗子,制作轮播组件的时候,点击下一页,若点击的快的话,浏览器会识别为双击。 双击的默认效果是选中整片区域,这时候轮播图组件就会被表示忧郁的蓝色幕布盖住,多忧桑啊~ 你看,这妹子多赞啊,可是你一紧张...

vue cli 3

介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统 通过 @vue/cli 搭建交互式的项目脚手架。 通过 @vue/cli + @vue/cli-service-global 快速开始零配置原型开发。 一个运行时依赖 (@vue/cli-service) 一个开发环境依赖,局部安装在每个 @vue/cli 创建的项目中。 可升...

10个顶级的CSS UI开源框架

随着CSS3和HTML5的流行,我们的WEB页面不仅需要更人性化的设计理念,而且需要更酷的页面特效和用户体验。作为开发者,我们需要了解一些宝贵的CSS UI开源框架资源,它们可以帮助我们更快更好地实现一些现代化的界面,包括一些移动设备的网页界面风格设计。本文分享了10个顶级的CSS UI开源框架,有几个确实不错,一起来看看。 1、Bootstrap – 最...