当前位置:  开发笔记 > 前端 > 正文

Firefox/Safari设置高度为[指定高度 - 填充 - 边框]输入[type = button]

如何解决《Firefox/Safari设置高度为[指定高度-填充-边框]输入[type=button]》经验,为你挑选了1个好方法。

当我使用以下CSS时:

input[type=button] {
  background-color: white;
  border: 1px solid black;
  font-size: 15px;
  height: 20px;
  padding: 7px;
}

使用此HTML:


我希望看到这个,所以总高度变成36px:

1px  border
7px  padding
20px content (with 15px text)
7px  padding
1px  border

但是Firefox 3.6和Safari 4都显示了这一点:(未在其他浏览器中测试过)

截图http://labs.spiqr.nl/upload/files/1223ef9cbae3ab6e43bd1f9215ebedb157ac7b22.png

1px border
7px padding
4px content (with 15px text) => height - 2 * border - 2 * padding
7px padding
1px border

有谁知道为什么会这样?

(即使它是预期的行为,它背后的逻辑是什么?)



1> bobince..:

表单元素传统上有一个width/ height包括它们的填充/边框,因为它们最初是由浏览器实现的OS本机UI小部件,其中CSS对装饰没有影响.

要重现此行为,Firefox和其他人会渲染一些表单字段(选择,按钮/输入类型按钮),并将CSS3 框大小调整样式设置为border-box,以便该width属性反映整个渲染区域宽度,包括边框和填充.

您可以使用以下命令禁用此行为

select, button {
    box-sizing: content-box;
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
}

(或者,对于要使用'100%'宽度的液体形式布局更常见,您可以将其他布局设置为border-box.)

在标准化过程到目前为止,-browser前缀版本必须用于捕获实现此功能的浏览器.但这对IE6-7无效.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有